add ohos ext base on v1.3.231

Signed-off-by: andrew0229 <zhangzhao62@huawei.com>
Change-Id: I6c0b028f981dd4c70fd34004cdf0c12737ce84e1
This commit is contained in:
andrew0229 2023-03-03 06:49:21 +00:00
parent 62046e31a8
commit 883655e658
14 changed files with 423 additions and 9 deletions

View File

@ -13,17 +13,30 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import("//build_overrides/vulkan_headers.gni")
import("//build/ohos.gni")
is_ohos = current_os == "ohos"
is_android = current_os == "android"
is_mac = current_os == "ios" || current_os == "tvos" || current_os == "mac"
is_win = current_os == "win" || current_os == "mingw"
is_linux = current_os == "linux"
is_fuchsia = current_os == "fuchsia"
config("vulkan_headers_config") {
include_dirs = [ "include" ]
defines = []
if (is_ohos) {
defines += [ "VK_USE_PLATFORM_OHOS_OPENHARMONY" ]
}
if (is_win) {
defines += [ "VK_USE_PLATFORM_WIN32_KHR" ]
}
if (defined(vulkan_use_x11) && vulkan_use_x11) {
defines += [ "VK_USE_PLATFORM_XCB_KHR" ]
if (is_linux) {
if (defined(vulkan_use_x11) && vulkan_use_x11) {
defines += [ "VK_USE_PLATFORM_XCB_KHR" ]
}
}
if (defined(vulkan_use_wayland) && vulkan_use_wayland) {
defines += [ "VK_USE_PLATFORM_WAYLAND_KHR" ]
@ -55,8 +68,7 @@ source_set("vulkan_headers") {
"include/vulkan/vulkan.h",
"include/vulkan/vulkan.hpp",
"include/vulkan/vulkan_core.h",
"include/vulkan/vulkan_screen.h",
"include/vulkan/vulkan_ohos.h",
]
public_configs = [ ":vulkan_headers_config" ]
}

View File

@ -3,7 +3,7 @@
"Name": "Vulkan",
"License": "Apache-2.0",
"License File": "LICENSE",
"Version Number": "v1.2.201",
"Version Number": "v1.3.231",
"Owner": "mengzhaobing@huawei.com",
"Upstream URL": "https://github.com/KhronosGroup/Vulkan-Headers.git",
"Description": "Vulkan header files and API registry"

View File

@ -123,6 +123,7 @@ typedef enum {
VK_ICD_WSI_PLATFORM_VI,
VK_ICD_WSI_PLATFORM_GGP,
VK_ICD_WSI_PLATFORM_SCREEN,
VK_ICD_WSI_PLATFORM_OPENHARMONY,
} VkIcdWsiPlatform;
typedef struct {
@ -242,4 +243,10 @@ typedef struct {
} VkIcdSurfaceScreen;
#endif // VK_USE_PLATFORM_SCREEN_QNX
#ifdef VK_USE_PLATFORM_OHOS_OPENHARMONY
typedef struct {
VkIcdSurfaceBase base;
struct NativeWindow *window;
} VkIcdSurfaceOpenHarmony;
#endif // VK_USE_PLATFORM_OHOS_OPENHARMONY
#endif // VKICD_H

View File

@ -84,6 +84,10 @@
#include "vulkan_screen.h"
#endif
#ifdef VK_USE_PLATFORM_OHOS_OPENHARMONY
#include "vulkan_ohos.h"
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS
#include "vulkan_beta.h"
#endif

View File

@ -2991,6 +2991,18 @@ namespace VULKAN_HPP_NAMESPACE
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
VkResult vkCreateOHOSSurfaceOpenHarmony(VkInstance instance,
const VkOHOSSurfaceCreateInfoOpenHarmony * pCreateInfo,
const VkAllocationCallbacks * pAllocator,
VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
{
return ::vkCreateOHOSSurfaceOpenHarmony( instance, pCreateInfo, pAllocator, pSurface );
}
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
VkResult vkCreateDebugReportCallbackEXT( VkInstance instance,
@ -12401,6 +12413,13 @@ namespace VULKAN_HPP_NAMESPACE
PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
PFN_vkCreateOHOSSurfaceOpenHarmony vkCreateOHOSSurfaceOpenHarmony = 0;
#else
PFN_dummy vkCreateOHOSSurfaceOpenHarmony_placeholder = 0;
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
@ -13499,6 +13518,12 @@ namespace VULKAN_HPP_NAMESPACE
PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
vkCreateOHOSSurfaceOpenHarmony =
PFN_vkCreateOHOSSurfaceOpenHarmony( vkGetInstanceProcAddr( instance, "vkCreateOHOSSurfaceOpenHarmony" ) );
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );

View File

@ -422,6 +422,16 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY = 1000451000,
VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_USAGE_OPENHARMONY = 1000452000,
VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_PROPERTIES_OPENHARMONY = 1000452001,
VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_FORMAT_PROPERTIES_OPENHARMONY = 1000452002,
VK_STRUCTURE_TYPE_IMPORT_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY = 1000452003,
VK_STRUCTURE_TYPE_MEMORY_GET_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY = 1000452004,
VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OPENHARMONY = 1000452005,
VK_STRUCTURE_TYPE_NATIVE_BUFFER_OPENHARMONY = 1000453001,
VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OPENHARMONY = 1000453002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OPENHARMONY = 1000453003,
VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
@ -4926,6 +4936,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OPENHARMONY = 0x00002000,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,

View File

@ -3078,6 +3078,19 @@ namespace VULKAN_HPP_NAMESPACE
};
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_ohos_surface ===
enum class OHOSSurfaceCreateFlagsBitsOpenHarmony : VkOHOSSurfaceCreateFlagsOpenHarmony
{
};
VULKAN_HPP_INLINE std::string to_string( OHOSSurfaceCreateFlagsBitsOpenHarmony )
{
return "(void)";
}
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
@ -5902,6 +5915,17 @@ namespace VULKAN_HPP_NAMESPACE
using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
using OHOSSurfaceCreateFlagsOpenHarmony = Flags<OHOSSurfaceCreateFlagsBitsOpenHarmony>;
VULKAN_HPP_INLINE std::string to_string( OHOSSurfaceCreateFlagsOpenHarmony )
{
return "{}";
}
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
template <>

View File

@ -9042,6 +9042,67 @@ namespace VULKAN_HPP_NAMESPACE
}
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
template <typename Dispatch>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
Instance::createOHOSSurfaceOpenHarmony( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony * pCreateInfo,
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateOHOSSurfaceOpenHarmony( m_instance,
reinterpret_cast<const VkOHOSSurfaceCreateInfoOpenHarmony *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
}
# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template <typename Dispatch>
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
Instance::createOHOSSurfaceOpenHarmony( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony & createInfo,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
Dispatch const & d ) const
{
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateOHOSSurfaceOpenHarmony( m_instance,
reinterpret_cast<const VkOHOSSurfaceCreateInfoOpenHarmony *>( &createInfo ),
reinterpret_cast<const VkAllocationCallbacks *>(
static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createOHOSSurfaceOpenHarmony" );
}
# ifndef VULKAN_HPP_NO_SMART_HANDLE
template <typename Dispatch>
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
Instance::createOHOSSurfaceOpenHarmonyUnique( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony & createInfo,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
Dispatch const & d ) const
{
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateOHOSSurfaceOpenHarmony( m_instance,
reinterpret_cast<const VkOHOSSurfaceCreateInfoOpenHarmony *>( &createInfo ),
reinterpret_cast<const VkAllocationCallbacks *>(
static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>(
result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createOHOSSurfaceOpenHarmonyUnique", deleter );
}
# endif /*VULKAN_HPP_NO_SMART_HANDLE*/
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
template <typename Dispatch>

View File

@ -520,6 +520,11 @@ namespace VULKAN_HPP_NAMESPACE
struct Win32SurfaceCreateInfoKHR;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
struct OHOSSurfaceCreateInfoOpenHarmony;
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
struct DebugReportCallbackCreateInfoEXT;
@ -13831,6 +13836,34 @@ namespace VULKAN_HPP_NAMESPACE
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
VULKAN_HPP_NODISCARD Result
createOHOSSurfaceOpenHarmony( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony * pCreateInfo,
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createOHOSSurfaceOpenHarmony( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony & createInfo,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
# ifndef VULKAN_HPP_NO_SMART_HANDLE
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createOHOSSurfaceOpenHarmonyUnique( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony & createInfo,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
# endif /*VULKAN_HPP_NO_SMART_HANDLE*/
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>

View File

@ -18,7 +18,7 @@ extern "C" {
#endif
#define VK_OpenHarmony_OHOS_surface 1
struct NativeWindow;
typedef struct NativeWindow OHNativeWindow;
#define VK_OPENHARMONY_OHOS_SURFACE_SPEC_VERSION 1
#define VK_OPENHARMONY_OHOS_SURFACE_EXTENSION_NAME "VK_OpenHarmony_OHOS_surface"
// VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY
@ -27,7 +27,7 @@ typedef struct VkOHOSSurfaceCreateInfoOpenHarmony {
VkStructureType sType;
const void* pNext;
VkOHOSSurfaceCreateFlagsOpenHarmony flags;
NativeWindow* window;
OHNativeWindow* window;
} VkOHOSSurfaceCreateInfoOpenHarmony;
typedef VkResult (VKAPI_PTR *PFN_vkCreateOHOSSurfaceOpenHarmony)(VkInstance instance, const VkOHOSSurfaceCreateInfoOpenHarmony* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);

View File

@ -186,6 +186,12 @@ namespace VULKAN_HPP_NAMESPACE
vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
vkCreateOHOSSurfaceOpenHarmony =
PFN_vkCreateOHOSSurfaceOpenHarmony( vkGetInstanceProcAddr( instance, "vkCreateOHOSSurfaceOpenHarmony" ) );
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_KHR_device_group ===
vkGetPhysicalDevicePresentRectanglesKHR =
PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
@ -488,6 +494,13 @@ namespace VULKAN_HPP_NAMESPACE
PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
PFN_vkCreateOHOSSurfaceOpenHarmony vkCreateOHOSSurfaceOpenHarmony = 0;
# else
PFN_dummy vkCreateOHOSSurfaceOpenHarmony_placeholder = 0;
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_KHR_device_group ===
PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
@ -2661,6 +2674,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createOHOSSurfaceOpenHarmony(
VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony const & createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT
@ -13282,6 +13303,17 @@ namespace VULKAN_HPP_NAMESPACE
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR Instance::createOHOSSurfaceOpenHarmony(
VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony const & createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
}
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT

View File

@ -401,6 +401,11 @@ def makeGenOpts(args):
'VK_EXT_metal_objects' ], commonSuppressExtensions ],
[ 'vulkan_screen.h', [ 'VK_QNX_screen_surface' ], commonSuppressExtensions ],
[ 'vulkan_beta.h', betaRequireExtensions, betaSuppressExtensions ],
[ 'vulkan_ohos.h', [ 'VK_OpenHarmony_OHOS_surface',
'VK_OpenHarmony_external_memory_ohos_native_buffer'
], commonSuppressExtensions +
[ 'VK_KHR_format_feature_flags2',
] ],
]
for platform in platforms:

View File

@ -49220,6 +49220,46 @@
}
]
},
"vkCreateOHOSSurfaceOpenHarmony": {
"(VK_KHR_surface)+(VK_OpenHarmony_OHOS_surface)": [
{
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-instance-parameter",
"text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
},
{
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-pCreateInfo-parameter",
"text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOHOSSurfaceCreateInfoOpenHarmony\">VkOHOSSurfaceCreateInfoOpenHarmony</a> structure"
},
{
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-pAllocator-parameter",
"text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
},
{
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-pSurface-parameter",
"text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
}
]
},
"VkOHOSSurfaceCreateInfoOpenHarmony": {
"(VK_KHR_surface)+(VK_OpenHarmony_OHOS_surface)": [
{
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-window-01248",
"text": " <code>window</code> <strong class=\"purple\">must</strong> point to a valid OHOS <code>ANativeWindow</code>"
},
{
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY</code>"
},
{
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-pNext-pNext",
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
},
{
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-flags-zerobitmask",
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
}
]
},
"vkDestroySurfaceKHR": {
"(VK_KHR_surface)": [
{

View File

@ -34,6 +34,7 @@ branch of the member gitlab server.
<platform name="ggp" protect="VK_USE_PLATFORM_GGP" comment="Google Games Platform"/>
<platform name="provisional" protect="VK_ENABLE_BETA_EXTENSIONS" comment="Enable declarations for beta/provisional extensions"/>
<platform name="screen" protect="VK_USE_PLATFORM_SCREEN_QNX" comment="QNX Screen Graphics Subsystem"/>
<platform name="OHOS" protect="VK_USE_PLATFORM_OHOS_OPENHARMONY" comment="OpenHarmony Graphics Subsystem"/>
</platforms>
<tags comment="Vulkan vendor/author tags for extensions and layers">
@ -74,6 +75,8 @@ branch of the member gitlab server.
<tag name="JUICE" author="Juice Technologies, Inc." contact="David McCloskey @damcclos, Dean Beeler @canadacow"/>
<tag name="FB" author="Facebook, Inc" contact="Artem Bolgar @artyom17"/>
<tag name="RASTERGRID" author="RasterGrid Kft." contact="Daniel Rakos @aqnuep1"/>
<tag name="OpenHarmony" author="Huawei Technologies Co. Ltd." contact="Xindong Shi @stonehwsxd"/>
<tag name="OpenHarmony" author="Huawei Technologies Co. Ltd." contact="Zhao Zhang @andrew0229"/>
</tags>
<types comment="Vulkan type definitions">
@ -200,6 +203,8 @@ branch of the member gitlab server.
<type category="basetype">struct <name>ANativeWindow</name>;</type>
<type category="basetype">struct <name>AHardwareBuffer</name>;</type>
<type category="basetype">struct <name>OHNativeWindow</name>;</type>
<type category="basetype">struct <name>OH_NativeBuffer</name>;</type>
<type category="basetype">#ifdef __OBJC__
@class CAMetalLayer;
#else
@ -377,6 +382,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="bitmask">typedef <type>VkFlags</type> <name>VkStreamDescriptorSurfaceCreateFlagsGGP</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkHeadlessSurfaceCreateFlagsEXT</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkScreenSurfaceCreateFlagsQNX</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkOHOSSurfaceCreateFlagsOpenHarmony</name>;</type>
<type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type>
<type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/>
<type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type>
@ -479,7 +485,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type requires="VkVideoEncodeH265OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265OutputModeFlagsEXT</name>;</type>
<type requires="VkVideoEncodeH265CtbSizeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CtbSizeFlagsEXT</name>;</type>
<type requires="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265TransformBlockSizeFlagsEXT</name>;</type>
<type requires="VkSwapchainImageUsageFlagBitsOpenHarmony" category="bitmask">typedef <type>VkFlags</type> <name>VkSwapchainImageUsageFlagsOpenHarmony</name>;</type>
<comment>Types which can be void pointers or class pointers, selected at compile time</comment>
<type category="handle" objtypeenum="VK_OBJECT_TYPE_INSTANCE"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type>
<type category="handle" parent="VkInstance" objtypeenum="VK_OBJECT_TYPE_PHYSICAL_DEVICE"><type>VK_DEFINE_HANDLE</type>(<name>VkPhysicalDevice</name>)</type>
@ -792,6 +798,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkOpticalFlowSessionCreateFlagBitsNV" category="enum"/>
<type name="VkOpticalFlowExecuteFlagBitsNV" category="enum"/>
<type name="VkDeviceFaultAddressTypeEXT" category="enum"/>
<type name="VkSwapchainImageUsageFlagBitsOpenHarmony" category="enum"/>
<comment>Enumerated types in the header, but not used by the API</comment>
<type name="VkVendorId" category="enum"/>
@ -2031,6 +2038,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member noautovalidity="true">struct <type>_screen_context</type>* <name>context</name></member>
<member noautovalidity="true">struct <type>_screen_window</type>* <name>window</name></member>
</type>
<type category="struct" name="VkOHOSSurfaceCreateInfoOpenHarmony">
<member values="VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkOHOSSurfaceCreateFlagsOpenHarmony</type> <name>flags</name></member>
<member noautovalidity="true">struct <type>OHNativeWindow</type>* <name>window</name></member>
</type>
<type category="struct" name="VkSurfaceFormatKHR" returnedonly="true">
<member><type>VkFormat</type> <name>format</name><comment>Supported pair of rendering format</comment></member>
<member><type>VkColorSpaceKHR</type> <name>colorSpace</name><comment>and color space for the surface</comment></member>
@ -3467,16 +3480,31 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>int</type> <name>usage</name></member>
<member><type>VkNativeBufferUsage2ANDROID</type> <name>usage2</name></member>
</type>
<type category="struct" name="VkNativeBufferOpenHarmony">
<member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member>const <type>void</type>* <name>handle</name></member>
</type>
<type category="struct" name="VkSwapchainImageCreateInfoANDROID">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkSwapchainImageUsageFlagsANDROID</type> <name>usage</name></member>
</type>
<type category="struct" name="VkSwapchainImageCreateInfoOpenHarmony">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkSwapchainImageUsageFlagsOpenHarmony</type> <name>usage</name></member>
</type>
<type category="struct" name="VkPhysicalDevicePresentationPropertiesANDROID">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>sharedImage</name></member>
</type>
<type category="struct" name="VkPhysicalDevicePresentationPropertiesOpenHarmony">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>sharedImage</name></member>
</type>
<type category="struct" name="VkShaderResourceUsageAMD" returnedonly="true">
<member><type>uint32_t</type> <name>numUsedVgprs</name></member>
<member><type>uint32_t</type> <name>numUsedSgprs</name></member>
@ -3866,22 +3894,43 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member>struct <type>AHardwareBuffer</type>* <name>buffer</name></member>
</type>
<type category="struct" name="VkImportOHOSNativeBufferInfoOpenHarmony" structextends="VkMemoryAllocateInfo">
<member values="VK_STRUCTURE_TYPE_IMPORT_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member>struct <type>OH_NativeBuffer</type>* <name>buffer</name></member>
</type>
<type category="struct" name="VkAndroidHardwareBufferUsageANDROID" structextends="VkImageFormatProperties2" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>uint64_t</type> <name>androidHardwareBufferUsage</name></member>
</type>
<type category="struct" name="VkOHOSNativeBufferUsageOpenHarmony" structextends="VkImageFormatProperties2" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_USAGE_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>uint64_t</type> <name>OHOSNativeBufferUsage</name></member>
</type>
<type category="struct" name="VkAndroidHardwareBufferPropertiesANDROID" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceSize</type> <name>allocationSize</name></member>
<member><type>uint32_t</type> <name>memoryTypeBits</name></member>
</type>
<type category="struct" name="VkOHOSNativeBufferPropertiesOpenHarmony" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_PROPERTIES_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceSize</type> <name>allocationSize</name></member>
<member><type>uint32_t</type> <name>memoryTypeBits</name></member>
</type>
<type category="struct" name="VkMemoryGetAndroidHardwareBufferInfoANDROID">
<member values="VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceMemory</type> <name>memory</name></member>
</type>
<type category="struct" name="VkMemoryGetOHOSNativeBufferInfoOpenHarmony">
<member values="VK_STRUCTURE_TYPE_MEMORY_GET_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceMemory</type> <name>memory</name></member>
</type>
<type category="struct" name="VkAndroidHardwareBufferFormatPropertiesANDROID" structextends="VkAndroidHardwareBufferPropertiesANDROID" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
@ -3894,6 +3943,18 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
<member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
</type>
<type category="struct" name="VkOHOSNativeBufferFormatPropertiesOpenHarmony" structextends="VkOHOSNativeBufferPropertiesOpenHarmony" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_FORMAT_PROPERTIES_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkFormat</type> <name>format</name></member>
<member><type>uint64_t</type> <name>externalFormat</name></member>
<member><type>VkFormatFeatureFlags</type> <name>formatFeatures</name></member>
<member><type>VkComponentMapping</type> <name>samplerYcbcrConversionComponents</name></member>
<member><type>VkSamplerYcbcrModelConversion</type> <name>suggestedYcbcrModel</name></member>
<member><type>VkSamplerYcbcrRange</type> <name>suggestedYcbcrRange</name></member>
<member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
<member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
</type>
<type category="struct" name="VkCommandBufferInheritanceConditionalRenderingInfoEXT" structextends="VkCommandBufferInheritanceInfo">
<member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
@ -3904,6 +3965,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>uint64_t</type> <name>externalFormat</name></member>
</type>
<type category="struct" name="VkExternalFormatOpenHarmony" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo">
<member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>uint64_t</type> <name>externalFormat</name></member>
</type>
<type category="struct" name="VkPhysicalDevice8BitStorageFeatures" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
@ -8332,6 +8398,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enums name="VkSwapchainImageUsageFlagBitsANDROID" type="bitmask">
<enum bitpos="0" name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"/>
</enums>
<enums name="VkSwapchainImageUsageFlagBitsOpenHarmony" type="bitmask">
<enum bitpos="0" name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_OPENHARMONY"/>
</enums>
<enums name="VkTimeDomainEXT" type="enum">
<enum value="0" name="VK_TIME_DOMAIN_DEVICE_EXT"/>
<enum value="1" name="VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"/>
@ -10479,6 +10548,19 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
<param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NATIVE_WINDOW_IN_USE_KHR">
<proto><type>VkResult</type> <name>vkCreateOHOSSurfaceOpenHarmony</name></proto>
<param><type>VkInstance</type> <name>instance</name></param>
<param>const <type>VkOHOSSurfaceCreateInfoOpenHarmony</type>* <name>pCreateInfo</name></param>
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
<param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR">
<proto><type>VkResult</type> <name>vkGetOHOSNativeBufferPropertiesOpenHarmony</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const struct <type>OH_NativeBuffer</type>* <name>buffer</name></param>
<param><type>VkOHOSNativeBufferPropertiesOpenHarmony</type>* <name>pProperties</name></param>
</command>
<command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
<proto><type>VkResult</type> <name>vkGetPhysicalDeviceDisplayPropertiesKHR</name></proto>
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@ -11369,6 +11451,13 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkImageUsageFlags</type> <name>imageUsage</name></param>
<param><type>int</type>* <name>grallocUsage</name></param>
</command>
<command>
<proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsageOpenHarmony</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkFormat</type> <name>format</name></param>
<param><type>VkImageUsageFlags</type> <name>imageUsage</name></param>
<param><type>int</type>* <name>grallocUsage</name></param>
</command>
<command>
<proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsage2ANDROID</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
@ -11386,6 +11475,13 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkSemaphore</type> <name>semaphore</name></param>
<param><type>VkFence</type> <name>fence</name></param>
</command>
<command>
<proto><type>VkResult</type> <name>vkSetNativeFenceFdOpenHarmony</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>int32_t</type> <name>nativeFenceFd</name></param>
<param><type>VkSemaphore</type> <name>semaphore</name></param>
<param><type>VkFence</type> <name>fence</name></param>
</command>
<command>
<proto><type>VkResult</type> <name>vkQueueSignalReleaseImageANDROID</name></proto>
<param><type>VkQueue</type> <name>queue</name></param>
@ -11394,6 +11490,14 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkImage</type> <name>image</name></param>
<param><type>int</type>* <name>pNativeFenceFd</name></param>
</command>
<command>
<proto><type>VkResult</type> <name>vkGetNativeFenceFdOpenHarmony</name></proto>
<param><type>VkQueue</type> <name>queue</name></param>
<param><type>uint32_t</type> <name>waitSemaphoreCount</name></param>
<param len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></param>
<param><type>VkImage</type> <name>image</name></param>
<param><type>int32_t</type>* <name>pNativeFenceFd</name></param>
</command>
<command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_FEATURE_NOT_PRESENT,VK_ERROR_OUT_OF_HOST_MEMORY">
<proto><type>VkResult</type> <name>vkGetShaderInfoAMD</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
@ -11556,6 +11660,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param>const <type>VkMemoryGetAndroidHardwareBufferInfoANDROID</type>* <name>pInfo</name></param>
<param>struct <type>AHardwareBuffer</type>** <name>pBuffer</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
<proto><type>VkResult</type> <name>vkGetMemoryOHOSNativeBufferOpenHarmony</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkMemoryGetOHOSNativeBufferInfoOpenHarmony</type>* <name>pInfo</name></param>
<param>struct <type>OH_NativeBuffer</type>** <name>pBuffer</name></param>
</command>
<command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" tasks="action">
<proto><type>void</type> <name>vkCmdDrawIndirectCount</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
@ -20436,6 +20546,56 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_EXT_extension_499&quot;" name="VK_EXT_EXTENSION_499_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_OpenHarmony_OHOS_surface" number="500" type="instance" requires="VK_KHR_surface" platform="OHOS" author="OpenHarmony" contact="Xindong Shi @stonehwsxd" supported="vulkan">
<require>
<enum value="1" name="VK_OpenHarmony_OHOS_SURFACE_SPEC_VERSION"/>
<enum value="&quot;VK_OpenHarmony_OHOS_surface&quot;" name="VK_OpenHarmony_OHOS_SURFACE_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY"/>
<type name="VkOHOSSurfaceCreateFlagsOpenHarmony"/>
<type name="VkOHOSSurfaceCreateInfoOpenHarmony"/>
<command name="vkCreateOHOSSurfaceOpenHarmony"/>
</require>
</extension>
<extension name="VK_OpenHarmony_external_memory_OHOS_native_buffer" number="501" type="device" author="OpenHarmony" requires="VK_KHR_sampler_ycbcr_conversion,VK_KHR_external_memory,VK_EXT_queue_family_foreign,VK_KHR_dedicated_allocation" platform="OHOS" contact="Zhao Zhang @andrew0229" supported="vulkan">
<require>
<enum value="1" name="VK_OPENHARMONY_EXTERNAL_MEMORY_OHOS_NATIVE_BUFFER_SPEC_VERSION"/>
<enum value="&quot;VK_OpenHarmony_external_memory_OHOS_native_buffer&quot;" name="VK_OPENHARMONY_EXTERNAL_MEMORY_OHOS_NATIVE_BUFFER_EXTENSION_NAME"/>
<enum bitpos="14" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OPENHARMONY"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_USAGE_OPENHARMONY"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_PROPERTIES_OPENHARMONY"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_FORMAT_PROPERTIES_OPENHARMONY"/>
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY"/>
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_GET_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY"/>
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OPENHARMONY"/>
<type name="VkOHOSNativeBufferUsageOpenHarmony"/>
<type name="VkOHOSNativeBufferPropertiesOpenHarmony"/>
<type name="VkOHOSNativeBufferFormatPropertiesOpenHarmony"/>
<type name="VkImportOHOSNativeBufferInfoOpenHarmony"/>
<type name="VkMemoryGetOHOSNativeBufferInfoOpenHarmony"/>
<type name="VkExternalFormatOpenHarmony"/>
<command name="vkGetOHOSNativeBufferPropertiesOpenHarmony"/>
<command name="vkGetMemoryOHOSNativeBufferOpenHarmony"/>
<type name="OH_NativeBuffer"/>
</require>
</extension>
<extension name="VK_OHOS_native_buffer" number="502" type="device" author="OpenHarmony" platform="OHOS" contact="Zhao Zhang @andrew0229" supported="disabled">
<require>
<comment>VK_OHOS_native_buffer is used between the OpenharmonyOS Vulkan loader and drivers to implement the WSI extensions.</comment>
<enum value="1" name="VK_OHOS_NATIVE_BUFFER_SPEC_VERSION"/>
<enum value="&quot;VK_OHOS_native_buffer&quot;" name="VK_OHOS_NATIVE_BUFFER_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_OPENHARMONY"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OPENHARMONY"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OPENHARMONY"/>
<type name="VkNativeBufferOpenHarmony"/>
<type name="VkSwapchainImageCreateInfoOpenHarmony"/>
<type name="VkPhysicalDevicePresentationPropertiesOpenHarmony"/>
<type name="VkSwapchainImageUsageFlagBitsOpenHarmony"/>
<type name="VkSwapchainImageUsageFlagsOpenHarmony"/>
<command name="vkGetSwapchainGrallocUsageOpenHarmony"/>
<command name="vkAcquireImageOpenHarmony"/>
<command name="vkQueueSignalReleaseImageOpenHarmony"/>
</require>
</extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">