standardize OH extension api

Signed-off-by: shegangbin <shegangbin1@huawei.com>
Change-Id: I3ab59ea53b407620ad35de18048ffd30693c76a6
This commit is contained in:
shegangbin 2023-05-30 02:58:59 +00:00
parent 54c01b623e
commit 3684f76713
14 changed files with 334 additions and 349 deletions

View File

@ -27,7 +27,7 @@ config("vulkan_headers_config") {
defines = [] defines = []
if (is_ohos) { if (is_ohos) {
defines += [ "VK_USE_PLATFORM_OHOS_OPENHARMONY" ] defines += [ "VK_USE_PLATFORM_OHOS" ]
} }
if (is_win) { if (is_win) {

View File

@ -22,23 +22,23 @@ Vulkan Loader 会提供标准 Vulkan API 函数符号、OpenHarmony WSI扩展的
Vulkan-Loader成功加载Vulkan驱动程序的必要条件 Vulkan-Loader成功加载Vulkan驱动程序的必要条件
1.要参考[LoaderDriverInterface](https://gitee.com/openharmony/third_party_vulkan-loader/blob/master/docs/LoaderDriverInterface.md)实现对应的接口; 1.要参考[LoaderDriverInterface](https://gitee.com/openharmony/third_party_vulkan-loader/blob/master/docs/LoaderDriverInterface.md)实现对应的接口;
2.提供驱动程序描述json文件参考[加载GPU驱动](https://gitee.com/openharmony/third_party_vulkan-loader/blob/master/README_OpenHarmony.md#%E5%8A%A0%E8%BD%BDgpu%E9%A9%B1%E5%8A%A8); 2.提供驱动程序描述json文件参考[加载GPU驱动](https://gitee.com/openharmony/third_party_vulkan-loader/blob/master/README_OpenHarmony.md#%E5%8A%A0%E8%BD%BDgpu%E9%A9%B1%E5%8A%A8);
3.实现OpenHarmony平台的扩展包括`VK_OHOS_native_buffer`和`VK_OpenHarmony_external_memory_OHOS_native_buffer`扩展。 3.实现OpenHarmony平台的扩展包括`VK_OHOS_native_buffer`和`VK_OHOS_external_memory`扩展。
## 北向应用开发者 ## 北向应用开发者
### VK_OpenHarmony_OHOS_surface 扩展 ### VK_OHOS_surface 扩展
接口vkCreateOHOSSurfaceOpenHarmony 接口vkCreateSurfaceOHOS
VkResult vkCreateOHOSSurfaceOpenHarmony( VkResult vkCreateSurfaceOHOS(
VkInstance instance, VkInstance instance,
const VkOHOSSurfaceCreateInfoOpenHarmony pCreateInfo, const VkSurfaceCreateInfoOHOS pCreateInfo,
const VkAllocationCallbacks pAllocator, const VkAllocationCallbacks pAllocator,
VkSurfaceKHR pSurface) VkSurfaceKHR pSurface)
参数: 参数:
instance是要关联Surface的实例。 instance是要关联Surface的实例。
pCreateInfo是一个指向结构的指针该VkOHOSSurfaceCreateInfoOpenHarmony 结构包含影响表面对象创建的参数。 pCreateInfo是一个指向结构的指针该VkSurfaceCreateInfoOHOS 结构包含影响表面对象创建的参数。
pAllocator是用于在没有更多特定内存分配器可用时做为Surface对象分配的分配器。 pAllocator是用于在没有更多特定内存分配器可用时做为Surface对象分配的分配器。
pSurface是一个指向VkSurfaceKHR句柄的指针在该句柄中返回创建的Surface对象。 pSurface是一个指向VkSurfaceKHR句柄的指针在该句柄中返回创建的Surface对象。

View File

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

View File

@ -84,13 +84,12 @@
#include "vulkan_screen.h" #include "vulkan_screen.h"
#endif #endif
#ifdef VK_USE_PLATFORM_OHOS_OPENHARMONY
#include "buffer_handle.h"
#include "vulkan_ohos.h"
#endif
#ifdef VK_ENABLE_BETA_EXTENSIONS #ifdef VK_ENABLE_BETA_EXTENSIONS
#include "vulkan_beta.h" #include "vulkan_beta.h"
#endif #endif
#ifdef VK_USE_PLATFORM_OHOS
#include "vulkan_ohos.h"
#endif
#endif // VULKAN_H_ #endif // VULKAN_H_

View File

@ -2991,17 +2991,17 @@ namespace VULKAN_HPP_NAMESPACE
} }
# endif /*VK_USE_PLATFORM_WIN32_KHR*/ # endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) # if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_OHOS_surface === //=== VK_OHOS_surface ===
VkResult vkCreateOHOSSurfaceOpenHarmony(VkInstance instance, VkResult vkCreateSurfaceOHOS(VkInstance instance,
const VkOHOSSurfaceCreateInfoOpenHarmony * pCreateInfo, const VkSurfaceCreateInfoOHOS * pCreateInfo,
const VkAllocationCallbacks * pAllocator, const VkAllocationCallbacks * pAllocator,
VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
{ {
return ::vkCreateOHOSSurfaceOpenHarmony( instance, pCreateInfo, pAllocator, pSurface ); return ::vkCreateSurfaceOHOS( instance, pCreateInfo, pAllocator, pSurface );
} }
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ # endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_EXT_debug_report === //=== VK_EXT_debug_report ===
@ -12413,12 +12413,12 @@ namespace VULKAN_HPP_NAMESPACE
PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0; PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/ #endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) #if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_OHOS_surface === //=== VK_OHOS_surface ===
PFN_vkCreateOHOSSurfaceOpenHarmony vkCreateOHOSSurfaceOpenHarmony = 0; PFN_vkCreateSurfaceOHOS vkCreateSurfaceOHOS = 0;
#else #else
PFN_dummy vkCreateOHOSSurfaceOpenHarmony_placeholder = 0; PFN_dummy vkCreateSurfaceOHOS_placeholder = 0;
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ #endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_EXT_debug_report === //=== VK_EXT_debug_report ===
PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0; PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
@ -13518,11 +13518,11 @@ namespace VULKAN_HPP_NAMESPACE
PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) ); PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
#endif /*VK_USE_PLATFORM_WIN32_KHR*/ #endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) #if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_OHOS_surface === //=== VK_OHOS_surface ===
vkCreateOHOSSurfaceOpenHarmony = vkCreateSurfaceOHOS =
PFN_vkCreateOHOSSurfaceOpenHarmony( vkGetInstanceProcAddr( instance, "vkCreateOHOSSurfaceOpenHarmony" ) ); PFN_vkCreateSurfaceOHOS( vkGetInstanceProcAddr( instance, "vkCreateSurfaceOHOS" ) );
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ #endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_EXT_debug_report === //=== VK_EXT_debug_report ===
vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) ); vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );

View File

@ -422,16 +422,6 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002, VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003, 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_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
@ -1054,6 +1044,16 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002, VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000451000,
VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS = 1000453001,
VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS = 1000453002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS = 1000453003,
VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS = 1000452000,
VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS = 1000452001,
VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS = 1000452002,
VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS = 1000452003,
VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS = 1000452004,
VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS = 1000452005,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@ -4936,7 +4936,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, 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_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000, 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_OHOS_NATIVE_BUFFER_BIT_OHOS = 0x00002000,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, 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_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, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,

View File

@ -3078,10 +3078,10 @@ namespace VULKAN_HPP_NAMESPACE
}; };
#endif /*VK_USE_PLATFORM_WIN32_KHR*/ #endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) #if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_ohos_surface === //=== VK_OHOS_surface ===
enum class OHOSSurfaceCreateFlagsBitsOpenHarmony : VkOHOSSurfaceCreateFlagsOpenHarmony enum class OHOSSurfaceCreateFlagsBitsOpenHarmony : VkSurfaceCreateFlagsOHOS
{ {
}; };
@ -3089,7 +3089,7 @@ namespace VULKAN_HPP_NAMESPACE
{ {
return "(void)"; return "(void)";
} }
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ #endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_EXT_debug_report === //=== VK_EXT_debug_report ===
@ -5915,16 +5915,16 @@ namespace VULKAN_HPP_NAMESPACE
using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>; using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR>;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/ #endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) #if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_OHOS_surface === //=== VK_OHOS_surface ===
using OHOSSurfaceCreateFlagsOpenHarmony = Flags<OHOSSurfaceCreateFlagsBitsOpenHarmony>; using SurfaceCreateFlagsOHOS = Flags<OHOSSurfaceCreateFlagsBitsOpenHarmony>;
VULKAN_HPP_INLINE std::string to_string( OHOSSurfaceCreateFlagsOpenHarmony ) VULKAN_HPP_INLINE std::string to_string( SurfaceCreateFlagsOHOS )
{ {
return "{}"; return "{}";
} }
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ #endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_EXT_debug_report === //=== VK_EXT_debug_report ===

View File

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

View File

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

View File

@ -2,7 +2,7 @@
#define VULKAN_OHOS_H_ 1 #define VULKAN_OHOS_H_ 1
/* /*
** Copyright 2015-2021 The Khronos Group Inc. ** Copyright 2015-2022 The Khronos Group Inc.
** **
** SPDX-License-Identifier: Apache-2.0 ** SPDX-License-Identifier: Apache-2.0
*/ */
@ -17,121 +17,104 @@
extern "C" { extern "C" {
#endif #endif
#define VK_OpenHarmony_OHOS_surface 1
#define VK_OHOS_surface 1
typedef struct NativeWindow OHNativeWindow; typedef struct NativeWindow OHNativeWindow;
#define VK_OPENHARMONY_OHOS_SURFACE_SPEC_VERSION 1 #define VK_OHOS_SURFACE_SPEC_VERSION 1
#define VK_OPENHARMONY_OHOS_SURFACE_EXTENSION_NAME "VK_OpenHarmony_OHOS_surface" #define VK_OHOS_SURFACE_EXTENSION_NAME "VK_OHOS_surface"
// VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY typedef VkFlags VkSurfaceCreateFlagsOHOS;
typedef VkFlags VkOHOSSurfaceCreateFlagsOpenHarmony; typedef struct VkSurfaceCreateInfoOHOS {
typedef struct VkOHOSSurfaceCreateInfoOpenHarmony {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkOHOSSurfaceCreateFlagsOpenHarmony flags; VkSurfaceCreateFlagsOHOS flags;
OHNativeWindow* window; OHNativeWindow* window;
} VkOHOSSurfaceCreateInfoOpenHarmony; } VkSurfaceCreateInfoOHOS;
typedef VkResult (VKAPI_PTR *PFN_vkCreateOHOSSurfaceOpenHarmony)(VkInstance instance, const VkOHOSSurfaceCreateInfoOpenHarmony* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkResult (VKAPI_PTR *PFN_vkCreateSurfaceOHOS)(VkInstance instance, const VkSurfaceCreateInfoOHOS* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
#ifndef VK_NO_PROTOTYPES #ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkCreateOHOSSurfaceOpenHarmony( VKAPI_ATTR VkResult VKAPI_CALL vkCreateSurfaceOHOS(
VkInstance instance, VkInstance instance,
const VkOHOSSurfaceCreateInfoOpenHarmony* pCreateInfo, const VkSurfaceCreateInfoOHOS* pCreateInfo,
const VkAllocationCallbacks* pAllocator, const VkAllocationCallbacks* pAllocator,
VkSurfaceKHR* pSurface); VkSurfaceKHR* pSurface);
#endif #endif
#define VK_OHOS_native_buffer 1
#define VK_OHOS_native_buffer 1
struct OHBufferHandle;
#define VK_OHOS_NATIVE_BUFFER_SPEC_VERSION 1 #define VK_OHOS_NATIVE_BUFFER_SPEC_VERSION 1
#define VK_OHOS_NATIVE_BUFFER_EXTENSION_NAME "VK_OHOS_native_buffer" #define VK_OHOS_NATIVE_BUFFER_EXTENSION_NAME "VK_OHOS_native_buffer"
typedef VkFlags VkSwapchainImageUsageFlagsOpenHarmony; typedef enum VkSwapchainImageUsageFlagBitsOHOS {
typedef enum VkSwapchainImageUsageFlagBitsOpenHarmony { VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_OHOS = 0x00000001,
VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_OPENHARMONY = 0x00000001, VK_SWAPCHAIN_IMAGE_USAGE_FLAG_BITS_MAX_ENUM_OHOS = 0x7FFFFFFF
VK_SWAPCHAIN_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkSwapchainImageUsageFlagBitsOHOS;
} VkSwapchainImageUsageFlagBitsOpenHarmony; typedef VkFlags VkSwapchainImageUsageFlagsOHOS;
typedef struct VkNativeBufferOHOS {
typedef struct {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
BufferHandle* handle; struct OHBufferHandle* handle;
} VkNativeBufferOpenHarmony; } VkNativeBufferOHOS;
typedef struct { typedef struct VkSwapchainImageCreateInfoOHOS {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkSwapchainImageUsageFlagsOpenHarmony usage; VkSwapchainImageUsageFlagsOHOS usage;
} VkSwapchainImageCreateInfoOpenHarmony; } VkSwapchainImageCreateInfoOHOS;
typedef struct { typedef struct VkPhysicalDevicePresentationPropertiesOHOS {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkBool32 sharedImage; VkBool32 sharedImage;
} VkPhysicalDevicePresentationPropertiesOpenHarmony; } VkPhysicalDevicePresentationPropertiesOHOS;
typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainGrallocUsageOpenHarmony)( typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainGrallocUsageOHOS)(VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, uint64_t* grallocUsage);
typedef VkResult (VKAPI_PTR *PFN_vkAcquireImageOHOS)(VkDevice device, VkImage image, int32_t nativeFenceFd, VkSemaphore semaphore, VkFence fence);
typedef VkResult (VKAPI_PTR *PFN_vkQueueSignalReleaseImageOHOS)(VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore* pWaitSemaphores, VkImage image, int32_t* pNativeFenceFd);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainGrallocUsageOHOS(
VkDevice device, VkDevice device,
VkFormat format, VkFormat format,
VkImageUsageFlags imageUsage, VkImageUsageFlags imageUsage,
uint64_t* grallocUsage); uint64_t* grallocUsage);
typedef VkResult (VKAPI_PTR *PFN_vkSetNativeFenceFdOpenHarmony)( VKAPI_ATTR VkResult VKAPI_CALL vkAcquireImageOHOS(
VkDevice device, VkDevice device,
VkImage image,
int32_t nativeFenceFd, int32_t nativeFenceFd,
VkSemaphore semaphore, VkSemaphore semaphore,
VkFence fence); VkFence fence);
typedef VkResult (VKAPI_PTR *PFN_vkGetNativeFenceFdOpenHarmony)( VKAPI_ATTR VkResult VKAPI_CALL vkQueueSignalReleaseImageOHOS(
VkQueue queue, VkQueue queue,
uint32_t waitSemaphoreCount, uint32_t waitSemaphoreCount,
const VkSemaphore* pWaitSemaphores, const VkSemaphore* pWaitSemaphores,
VkImage image, VkImage image,
int32_t* pNativeFenceFd); int32_t* pNativeFenceFd);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainGrallocUsageOpenHarmony(
VkDevice device,
VkFormat format,
VkImageUsageFlags imageUsage,
uint64_t* grallocUsage
);
VKAPI_ATTR VkResult VKAPI_CALL vkSetNativeFenceFdOpenHarmony(
VkDevice device,
int32_t nativeFenceFd,
VkSemaphore semaphore,
VkFence fence
);
VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeFenceFdOpenHarmony(
VkQueue queue,
uint32_t waitSemaphoreCount,
const VkSemaphore* pWaitSemaphores,
VkImage image,
int32_t* pNativeFenceFd
);
#endif #endif
#define VK_OpenHarmony_external_memory_OHOS_native_buffer 1
#define VK_OHOS_external_memory 1
struct OH_NativeBuffer; struct OH_NativeBuffer;
#define VK_OPENHARMONY_EXTERNAL_MEMORY_OHOS_NATIVE_BUFFER_SPEC_VERSION 1 #define VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 1
#define VK_OPENHARMONY_EXTERNAL_MEMORY_OHOS_NATIVE_BUFFER_EXTENSION_NAME "VK_OpenHarmony_external_memory_OHOS_native_buffer" #define VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME "VK_OHOS_external_memory"
typedef struct VkOHOSNativeBufferUsageOpenHarmony { typedef struct VkNativeBufferUsageOHOS {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
uint64_t OHOSNativeBufferUsage; uint64_t OHOSNativeBufferUsage;
} VkOHOSNativeBufferUsageOpenHarmony; } VkNativeBufferUsageOHOS;
typedef struct VkOHOSNativeBufferPropertiesOpenHarmony { typedef struct VkNativeBufferPropertiesOHOS {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
VkDeviceSize allocationSize; VkDeviceSize allocationSize;
uint32_t memoryTypeBits; uint32_t memoryTypeBits;
} VkOHOSNativeBufferPropertiesOpenHarmony; } VkNativeBufferPropertiesOHOS;
typedef struct VkOHOSNativeBufferFormatPropertiesOpenHarmony { typedef struct VkNativeBufferFormatPropertiesOHOS {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
VkFormat format; VkFormat format;
@ -142,42 +125,41 @@ typedef struct VkOHOSNativeBufferFormatPropertiesOpenHarmony {
VkSamplerYcbcrRange suggestedYcbcrRange; VkSamplerYcbcrRange suggestedYcbcrRange;
VkChromaLocation suggestedXChromaOffset; VkChromaLocation suggestedXChromaOffset;
VkChromaLocation suggestedYChromaOffset; VkChromaLocation suggestedYChromaOffset;
} VkOHOSNativeBufferFormatPropertiesOpenHarmony; } VkNativeBufferFormatPropertiesOHOS;
typedef struct VkImportOHOSNativeBufferInfoOpenHarmony { typedef struct VkImportNativeBufferInfoOHOS {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
struct OH_NativeBuffer* buffer; struct OH_NativeBuffer* buffer;
} VkImportOHOSNativeBufferInfoOpenHarmony; } VkImportNativeBufferInfoOHOS;
typedef struct VkMemoryGetOHOSNativeBufferInfoOpenHarmony { typedef struct VkMemoryGetNativeBufferInfoOHOS {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
VkDeviceMemory memory; VkDeviceMemory memory;
} VkMemoryGetOHOSNativeBufferInfoOpenHarmony; } VkMemoryGetNativeBufferInfoOHOS;
typedef struct VkExternalFormatOpenHarmony { typedef struct VkExternalFormatOHOS {
VkStructureType sType; VkStructureType sType;
void* pNext; void* pNext;
uint64_t externalFormat; uint64_t externalFormat;
} VkExternalFormatOpenHarmony; } VkExternalFormatOHOS;
typedef VkResult (VKAPI_PTR *PFN_vkGetOHOSNativeBufferPropertiesOpenHarmony)(VkDevice device, const struct OH_NativeBuffer* buffer, VkOHOSNativeBufferPropertiesOpenHarmony* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetNativeBufferPropertiesOHOS)(VkDevice device, const struct OH_NativeBuffer* buffer, VkNativeBufferPropertiesOHOS* pProperties);
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryOHOSNativeBufferOpenHarmony)(VkDevice device, const VkMemoryGetOHOSNativeBufferInfoOpenHarmony* pInfo, struct OH_NativeBuffer** pBuffer); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryNativeBufferOHOS)(VkDevice device, const VkMemoryGetNativeBufferInfoOHOS* pInfo, struct OH_NativeBuffer** pBuffer);
#ifndef VK_NO_PROTOTYPES #ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetOHOSNativeBufferPropertiesOpenHarmony( VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeBufferPropertiesOHOS(
VkDevice device, VkDevice device,
const struct OH_NativeBuffer* buffer, const struct OH_NativeBuffer* buffer,
VkOHOSNativeBufferPropertiesOpenHarmony* pProperties); VkNativeBufferPropertiesOHOS* pProperties);
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryOHOSNativeBufferOpenHarmony( VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryNativeBufferOHOS(
VkDevice device, VkDevice device,
const VkMemoryGetOHOSNativeBufferInfoOpenHarmony* pInfo, const VkMemoryGetNativeBufferInfoOHOS* pInfo,
struct OH_NativeBuffer** pBuffer); struct OH_NativeBuffer** pBuffer);
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -186,11 +186,11 @@ namespace VULKAN_HPP_NAMESPACE
vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) ); vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) # if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_OHOS_surface === //=== VK_OHOS_surface ===
vkCreateOHOSSurfaceOpenHarmony = vkCreateSurfaceOHOS =
PFN_vkCreateOHOSSurfaceOpenHarmony( vkGetInstanceProcAddr( instance, "vkCreateOHOSSurfaceOpenHarmony" ) ); PFN_vkCreateSurfaceOHOS( vkGetInstanceProcAddr( instance, "vkCreateSurfaceOHOS" ) );
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ # endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_KHR_device_group === //=== VK_KHR_device_group ===
vkGetPhysicalDevicePresentRectanglesKHR = vkGetPhysicalDevicePresentRectanglesKHR =
@ -494,12 +494,12 @@ namespace VULKAN_HPP_NAMESPACE
PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0; PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) # if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_OHOS_surface === //=== VK_OHOS_surface ===
PFN_vkCreateOHOSSurfaceOpenHarmony vkCreateOHOSSurfaceOpenHarmony = 0; PFN_vkCreateSurfaceOHOS vkCreateSurfaceOHOS = 0;
# else # else
PFN_dummy vkCreateOHOSSurfaceOpenHarmony_placeholder = 0; PFN_dummy vkCreateSurfaceOHOS_placeholder = 0;
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ # endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_KHR_device_group === //=== VK_KHR_device_group ===
PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0; PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
@ -2674,13 +2674,13 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/ # endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) # if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_OHOS_surface === //=== VK_OHOS_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createOHOSSurfaceOpenHarmony( VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createSurfaceOHOS(
VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony const & createInfo, VULKAN_HPP_NAMESPACE::SurfaceCreateInfoOHOS const & createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ # endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_EXT_debug_report === //=== VK_EXT_debug_report ===
@ -13303,16 +13303,16 @@ namespace VULKAN_HPP_NAMESPACE
} }
# endif /*VK_USE_PLATFORM_WIN32_KHR*/ # endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY ) # if defined( VK_USE_PLATFORM_OHOS )
//=== VK_OpenHarmony_OHOS_surface === //=== VK_OHOS_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR Instance::createOHOSSurfaceOpenHarmony( VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR Instance::createSurfaceOHOS(
VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony const & createInfo, VULKAN_HPP_NAMESPACE::SurfaceCreateInfoOHOS const & createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
{ {
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator ); return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
} }
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/ # endif /*VK_USE_PLATFORM_OHOS*/
//=== VK_EXT_debug_report === //=== VK_EXT_debug_report ===

View File

@ -401,8 +401,9 @@ def makeGenOpts(args):
'VK_EXT_metal_objects' ], commonSuppressExtensions ], 'VK_EXT_metal_objects' ], commonSuppressExtensions ],
[ 'vulkan_screen.h', [ 'VK_QNX_screen_surface' ], commonSuppressExtensions ], [ 'vulkan_screen.h', [ 'VK_QNX_screen_surface' ], commonSuppressExtensions ],
[ 'vulkan_beta.h', betaRequireExtensions, betaSuppressExtensions ], [ 'vulkan_beta.h', betaRequireExtensions, betaSuppressExtensions ],
[ 'vulkan_ohos.h', [ 'VK_OpenHarmony_OHOS_surface', [ 'vulkan_ohos.h', [ 'VK_OHOS_surface',
'VK_OpenHarmony_external_memory_ohos_native_buffer' 'VK_OHOS_external_memory',
'VK_OHOS_native_buffer'
], commonSuppressExtensions + ], commonSuppressExtensions +
[ 'VK_KHR_format_feature_flags2', [ 'VK_KHR_format_feature_flags2',
] ], ] ],

View File

@ -49220,42 +49220,42 @@
} }
] ]
}, },
"vkCreateOHOSSurfaceOpenHarmony": { "vkCreateSurfaceOHOS": {
"(VK_KHR_surface)+(VK_OpenHarmony_OHOS_surface)": [ "(VK_KHR_surface)+(VK_OHOS_surface)": [
{ {
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-instance-parameter", "vuid": "VUID-vkCreateSurfaceOHOS-instance-parameter",
"text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle" "text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
}, },
{ {
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-pCreateInfo-parameter", "vuid": "VUID-vkCreateSurfaceOHOS-pCreateInfo-parameter",
"text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOHOSSurfaceCreateInfoOpenHarmony\">VkOHOSSurfaceCreateInfoOpenHarmony</a> structure" "text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkSurfaceCreateInfoOHOS\">VkSurfaceCreateInfoOHOS</a> structure"
}, },
{ {
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-pAllocator-parameter", "vuid": "VUID-vkCreateSurfaceOHOS-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" "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", "vuid": "VUID-vkCreateSurfaceOHOS-pSurface-parameter",
"text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle" "text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
} }
] ]
}, },
"VkOHOSSurfaceCreateInfoOpenHarmony": { "VkSurfaceCreateInfoOHOS": {
"(VK_KHR_surface)+(VK_OpenHarmony_OHOS_surface)": [ "(VK_KHR_surface)+(VK_OHOS_surface)": [
{ {
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-window-01248", "vuid": "VUID-VkSurfaceCreateInfoOHOS-window-01248",
"text": " <code>window</code> <strong class=\"purple\">must</strong> point to a valid OHOS <code>ANativeWindow</code>" "text": " <code>window</code> <strong class=\"purple\">must</strong> point to a valid OHOS <code>ANativeWindow</code>"
}, },
{ {
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-sType-sType", "vuid": "VUID-VkSurfaceCreateInfoOHOS-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY</code>" "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS</code>"
}, },
{ {
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-pNext-pNext", "vuid": "VUID-VkSurfaceCreateInfoOHOS-pNext-pNext",
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>" "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
}, },
{ {
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-flags-zerobitmask", "vuid": "VUID-VkSurfaceCreateInfoOHOS-flags-zerobitmask",
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>" "text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
} }
] ]

View File

@ -34,7 +34,7 @@ branch of the member gitlab server.
<platform name="ggp" protect="VK_USE_PLATFORM_GGP" comment="Google Games Platform"/> <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="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="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"/> <platform name="ohos" protect="VK_USE_PLATFORM_OHOS" comment="OpenHarmony Graphics Subsystem"/>
</platforms> </platforms>
<tags comment="Vulkan vendor/author tags for extensions and layers"> <tags comment="Vulkan vendor/author tags for extensions and layers">
@ -75,8 +75,7 @@ branch of the member gitlab server.
<tag name="JUICE" author="Juice Technologies, Inc." contact="David McCloskey @damcclos, Dean Beeler @canadacow"/> <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="FB" author="Facebook, Inc" contact="Artem Bolgar @artyom17"/>
<tag name="RASTERGRID" author="RasterGrid Kft." contact="Daniel Rakos @aqnuep1"/> <tag name="RASTERGRID" author="RasterGrid Kft." contact="Daniel Rakos @aqnuep1"/>
<tag name="OpenHarmony" author="Huawei Technologies Co. Ltd." contact="Xindong Shi @stonehwsxd"/> <tag name="OHOS" author="Huawei Technologies Co. Ltd." contact="Zhao Zhang @andrew0229"/>
<tag name="OpenHarmony" author="Huawei Technologies Co. Ltd." contact="Zhao Zhang @andrew0229"/>
</tags> </tags>
<types comment="Vulkan type definitions"> <types comment="Vulkan type definitions">
@ -91,6 +90,7 @@ branch of the member gitlab server.
<type category="include" name="xcb/xcb.h"/> <type category="include" name="xcb/xcb.h"/>
<type category="include" name="directfb.h"/> <type category="include" name="directfb.h"/>
<type category="include" name="zircon/types.h"/> <type category="include" name="zircon/types.h"/>
<type category="include" name="buffer_handle.h"/>
<type category="include" name="ggp_c/vulkan_types.h"/> <type category="include" name="ggp_c/vulkan_types.h"/>
<type category="include" name="screen/screen.h"/> <type category="include" name="screen/screen.h"/>
<comment> <comment>
@ -129,6 +129,7 @@ branch of the member gitlab server.
<type requires="directfb.h" name="IDirectFB"/> <type requires="directfb.h" name="IDirectFB"/>
<type requires="directfb.h" name="IDirectFBSurface"/> <type requires="directfb.h" name="IDirectFBSurface"/>
<type requires="zircon/types.h" name="zx_handle_t"/> <type requires="zircon/types.h" name="zx_handle_t"/>
<type requires="buffer_handle.h" name="BufferHandle"/>
<type requires="ggp_c/vulkan_types.h" name="GgpStreamDescriptor"/> <type requires="ggp_c/vulkan_types.h" name="GgpStreamDescriptor"/>
<type requires="ggp_c/vulkan_types.h" name="GgpFrameToken"/> <type requires="ggp_c/vulkan_types.h" name="GgpFrameToken"/>
<type requires="screen/screen.h" name="_screen_context"/> <type requires="screen/screen.h" name="_screen_context"/>
@ -203,7 +204,7 @@ branch of the member gitlab server.
<type category="basetype">struct <name>ANativeWindow</name>;</type> <type category="basetype">struct <name>ANativeWindow</name>;</type>
<type category="basetype">struct <name>AHardwareBuffer</name>;</type> <type category="basetype">struct <name>AHardwareBuffer</name>;</type>
<type category="basetype">struct <name>OHNativeWindow</name>;</type> <type category="basetype">typedef struct NativeWindow <name>OHNativeWindow</name>;</type>
<type category="basetype">struct <name>OH_NativeBuffer</name>;</type> <type category="basetype">struct <name>OH_NativeBuffer</name>;</type>
<type category="basetype">#ifdef __OBJC__ <type category="basetype">#ifdef __OBJC__
@class CAMetalLayer; @class CAMetalLayer;
@ -382,7 +383,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>VkStreamDescriptorSurfaceCreateFlagsGGP</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkHeadlessSurfaceCreateFlagsEXT</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>VkScreenSurfaceCreateFlagsQNX</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkOHOSSurfaceCreateFlagsOpenHarmony</name>;</type> <type category="bitmask">typedef <type>VkFlags</type> <name>VkSurfaceCreateFlagsOHOS</name>;</type>
<type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type> <type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type>
<type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/> <type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/>
<type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type> <type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type>
@ -485,7 +486,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type requires="VkVideoEncodeH265OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265OutputModeFlagsEXT</name>;</type> <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="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="VkVideoEncodeH265TransformBlockSizeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265TransformBlockSizeFlagsEXT</name>;</type>
<type requires="VkSwapchainImageUsageFlagBitsOpenHarmony" category="bitmask">typedef <type>VkFlags</type> <name>VkSwapchainImageUsageFlagsOpenHarmony</name>;</type> <type requires="VkSwapchainImageUsageFlagBitsOHOS" category="bitmask">typedef <type>VkFlags</type> <name>VkSwapchainImageUsageFlagsOHOS</name>;</type>
<comment>Types which can be void pointers or class pointers, selected at compile time</comment> <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" 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> <type category="handle" parent="VkInstance" objtypeenum="VK_OBJECT_TYPE_PHYSICAL_DEVICE"><type>VK_DEFINE_HANDLE</type>(<name>VkPhysicalDevice</name>)</type>
@ -798,7 +800,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkOpticalFlowSessionCreateFlagBitsNV" category="enum"/> <type name="VkOpticalFlowSessionCreateFlagBitsNV" category="enum"/>
<type name="VkOpticalFlowExecuteFlagBitsNV" category="enum"/> <type name="VkOpticalFlowExecuteFlagBitsNV" category="enum"/>
<type name="VkDeviceFaultAddressTypeEXT" category="enum"/> <type name="VkDeviceFaultAddressTypeEXT" category="enum"/>
<type name="VkSwapchainImageUsageFlagBitsOpenHarmony" category="enum"/> <type name="VkSwapchainImageUsageFlagBitsOHOS" category="enum"/>
<comment>Enumerated types in the header, but not used by the API</comment> <comment>Enumerated types in the header, but not used by the API</comment>
<type name="VkVendorId" category="enum"/> <type name="VkVendorId" category="enum"/>
@ -2038,11 +2040,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member noautovalidity="true">struct <type>_screen_context</type>* <name>context</name></member> <member noautovalidity="true">struct <type>_screen_context</type>* <name>context</name></member>
<member noautovalidity="true">struct <type>_screen_window</type>* <name>window</name></member> <member noautovalidity="true">struct <type>_screen_window</type>* <name>window</name></member>
</type> </type>
<type category="struct" name="VkOHOSSurfaceCreateInfoOpenHarmony"> <type category="struct" name="VkSurfaceCreateInfoOHOS">
<member values="VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member> <member values="VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member> <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkOHOSSurfaceCreateFlagsOpenHarmony</type> <name>flags</name></member> <member optional="true"><type>VkSurfaceCreateFlagsOHOS</type> <name>flags</name></member>
<member noautovalidity="true">struct <type>OHNativeWindow</type>* <name>window</name></member> <member noautovalidity="true"><type>OHNativeWindow</type>* <name>window</name></member>
</type> </type>
<type category="struct" name="VkSurfaceFormatKHR" returnedonly="true"> <type category="struct" name="VkSurfaceFormatKHR" returnedonly="true">
<member><type>VkFormat</type> <name>format</name><comment>Supported pair of rendering format</comment></member> <member><type>VkFormat</type> <name>format</name><comment>Supported pair of rendering format</comment></member>
@ -3480,28 +3482,28 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>int</type> <name>usage</name></member> <member><type>int</type> <name>usage</name></member>
<member><type>VkNativeBufferUsage2ANDROID</type> <name>usage2</name></member> <member><type>VkNativeBufferUsage2ANDROID</type> <name>usage2</name></member>
</type> </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"> <type category="struct" name="VkSwapchainImageCreateInfoANDROID">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID"><type>VkStructureType</type> <name>sType</name></member> <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 optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkSwapchainImageUsageFlagsANDROID</type> <name>usage</name></member> <member><type>VkSwapchainImageUsageFlagsANDROID</type> <name>usage</name></member>
</type> </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"> <type category="struct" name="VkPhysicalDevicePresentationPropertiesANDROID">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member> <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 optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>sharedImage</name></member> <member><type>VkBool32</type> <name>sharedImage</name></member>
</type> </type>
<type category="struct" name="VkPhysicalDevicePresentationPropertiesOpenHarmony"> <type category="struct" name="VkNativeBufferOHOS">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member> <member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>BufferHandle</type>* <name>handle</name></member>
</type>
<type category="struct" name="VkSwapchainImageCreateInfoOHOS">
<member values="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkSwapchainImageUsageFlagsOHOS</type> <name>usage</name></member>
</type>
<type category="struct" name="VkPhysicalDevicePresentationPropertiesOHOS">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member> <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>sharedImage</name></member> <member><type>VkBool32</type> <name>sharedImage</name></member>
</type> </type>
@ -3894,43 +3896,22 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true">const <type>void</type>* <name>pNext</name></member> <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member>struct <type>AHardwareBuffer</type>* <name>buffer</name></member> <member>struct <type>AHardwareBuffer</type>* <name>buffer</name></member>
</type> </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"> <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 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 optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>uint64_t</type> <name>androidHardwareBufferUsage</name></member> <member><type>uint64_t</type> <name>androidHardwareBufferUsage</name></member>
</type> </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"> <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 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 optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceSize</type> <name>allocationSize</name></member> <member><type>VkDeviceSize</type> <name>allocationSize</name></member>
<member><type>uint32_t</type> <name>memoryTypeBits</name></member> <member><type>uint32_t</type> <name>memoryTypeBits</name></member>
</type> </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"> <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 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 optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>VkDeviceMemory</type> <name>memory</name></member> <member><type>VkDeviceMemory</type> <name>memory</name></member>
</type> </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"> <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 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> <member optional="true"><type>void</type>* <name>pNext</name></member>
@ -3943,18 +3924,6 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member> <member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
<member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member> <member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
</type> </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"> <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 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> <member optional="true">const <type>void</type>* <name>pNext</name></member>
@ -3965,8 +3934,41 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true"><type>void</type>* <name>pNext</name></member> <member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>uint64_t</type> <name>externalFormat</name></member> <member><type>uint64_t</type> <name>externalFormat</name></member>
</type> </type>
<type category="struct" name="VkExternalFormatOpenHarmony" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo"> <type category="struct" name="VkImportNativeBufferInfoOHOS" structextends="VkMemoryAllocateInfo">
<member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member> <member values="VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS"><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="VkNativeBufferUsageOHOS" structextends="VkImageFormatProperties2" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS"><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="VkNativeBufferPropertiesOHOS" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS"><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="VkMemoryGetNativeBufferInfoOHOS">
<member values="VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS"><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="VkNativeBufferFormatPropertiesOHOS" structextends="VkNativeBufferPropertiesOHOS" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS"><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="VkExternalFormatOHOS" structextends="VkImageCreateInfo,VkSamplerYcbcrConversionCreateInfo">
<member values="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member> <member optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>uint64_t</type> <name>externalFormat</name></member> <member><type>uint64_t</type> <name>externalFormat</name></member>
</type> </type>
@ -8398,8 +8400,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enums name="VkSwapchainImageUsageFlagBitsANDROID" type="bitmask"> <enums name="VkSwapchainImageUsageFlagBitsANDROID" type="bitmask">
<enum bitpos="0" name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"/> <enum bitpos="0" name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID"/>
</enums> </enums>
<enums name="VkSwapchainImageUsageFlagBitsOpenHarmony" type="bitmask"> <enums name="VkSwapchainImageUsageFlagBitsOHOS" type="bitmask">
<enum bitpos="0" name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_OPENHARMONY"/> <enum bitpos="0" name="VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_OHOS"/>
</enums> </enums>
<enums name="VkTimeDomainEXT" type="enum"> <enums name="VkTimeDomainEXT" type="enum">
<enum value="0" name="VK_TIME_DOMAIN_DEVICE_EXT"/> <enum value="0" name="VK_TIME_DOMAIN_DEVICE_EXT"/>
@ -10548,19 +10550,6 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param> <param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
<param><type>VkSurfaceKHR</type>* <name>pSurface</name></param> <param><type>VkSurfaceKHR</type>* <name>pSurface</name></param>
</command> </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"> <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> <proto><type>VkResult</type> <name>vkGetPhysicalDeviceDisplayPropertiesKHR</name></proto>
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param> <param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@ -11451,13 +11440,6 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkImageUsageFlags</type> <name>imageUsage</name></param> <param><type>VkImageUsageFlags</type> <name>imageUsage</name></param>
<param><type>int</type>* <name>grallocUsage</name></param> <param><type>int</type>* <name>grallocUsage</name></param>
</command> </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> <command>
<proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsage2ANDROID</name></proto> <proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsage2ANDROID</name></proto>
<param><type>VkDevice</type> <name>device</name></param> <param><type>VkDevice</type> <name>device</name></param>
@ -11475,13 +11457,6 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkSemaphore</type> <name>semaphore</name></param> <param><type>VkSemaphore</type> <name>semaphore</name></param>
<param><type>VkFence</type> <name>fence</name></param> <param><type>VkFence</type> <name>fence</name></param>
</command> </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> <command>
<proto><type>VkResult</type> <name>vkQueueSignalReleaseImageANDROID</name></proto> <proto><type>VkResult</type> <name>vkQueueSignalReleaseImageANDROID</name></proto>
<param><type>VkQueue</type> <name>queue</name></param> <param><type>VkQueue</type> <name>queue</name></param>
@ -11490,8 +11465,42 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param><type>VkImage</type> <name>image</name></param> <param><type>VkImage</type> <name>image</name></param>
<param><type>int</type>* <name>pNativeFenceFd</name></param> <param><type>int</type>* <name>pNativeFenceFd</name></param>
</command> </command>
<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>vkGetNativeFenceFdOpenHarmony</name></proto> <proto><type>VkResult</type> <name>vkCreateSurfaceOHOS</name></proto>
<param><type>VkInstance</type> <name>instance</name></param>
<param>const <type>VkSurfaceCreateInfoOHOS</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>vkGetNativeBufferPropertiesOHOS</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const struct <type>OH_NativeBuffer</type>* <name>buffer</name></param>
<param><type>VkNativeBufferPropertiesOHOS</type>* <name>pProperties</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_TOO_MANY_OBJECTS,VK_ERROR_OUT_OF_HOST_MEMORY">
<proto><type>VkResult</type> <name>vkGetMemoryNativeBufferOHOS</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param>const <type>VkMemoryGetNativeBufferInfoOHOS</type>* <name>pInfo</name></param>
<param>struct <type>OH_NativeBuffer</type>** <name>pBuffer</name></param>
</command>
<command successcodes="VK_SUCCESS">
<proto><type>VkResult</type> <name>vkGetSwapchainGrallocUsageOHOS</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>uint64_t</type>* <name>grallocUsage</name></param>
</command>
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_TIMEOUT,VK_ERROR_INITIALIZATION_FAILED">
<proto><type>VkResult</type> <name>vkAcquireImageOHOS</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkImage</type> <name>image</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 successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_TIMEOUT,VK_ERROR_INITIALIZATION_FAILED">
<proto><type>VkResult</type> <name>vkQueueSignalReleaseImageOHOS</name></proto>
<param><type>VkQueue</type> <name>queue</name></param> <param><type>VkQueue</type> <name>queue</name></param>
<param><type>uint32_t</type> <name>waitSemaphoreCount</name></param> <param><type>uint32_t</type> <name>waitSemaphoreCount</name></param>
<param len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></param> <param len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></param>
@ -11660,12 +11669,6 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param>const <type>VkMemoryGetAndroidHardwareBufferInfoANDROID</type>* <name>pInfo</name></param> <param>const <type>VkMemoryGetAndroidHardwareBufferInfoANDROID</type>* <name>pInfo</name></param>
<param>struct <type>AHardwareBuffer</type>** <name>pBuffer</name></param> <param>struct <type>AHardwareBuffer</type>** <name>pBuffer</name></param>
</command> </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"> <command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary" tasks="action">
<proto><type>void</type> <name>vkCmdDrawIndirectCount</name></proto> <proto><type>void</type> <name>vkCmdDrawIndirectCount</name></proto>
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param> <param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
@ -20546,54 +20549,54 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_EXT_extension_499&quot;" name="VK_EXT_EXTENSION_499_EXTENSION_NAME"/> <enum value="&quot;VK_EXT_extension_499&quot;" name="VK_EXT_EXTENSION_499_EXTENSION_NAME"/>
</require> </require>
</extension> </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"> <extension name="VK_OHOS_surface" number="532" type="instance" requires="VK_KHR_surface" platform="ohos" author="OHOS" contact="Xindong Shi @stonehwsxd" supported="vulkan">
<require> <require>
<enum value="1" name="VK_OPENHARMONY_OHOS_SURFACE_SPEC_VERSION"/> <enum value="1" name="VK_OHOS_SURFACE_SPEC_VERSION"/>
<enum value="&quot;VK_OpenHarmony_OHOS_surface&quot;" name="VK_OPENHARMONY_OHOS_SURFACE_EXTENSION_NAME"/> <enum value="&quot;VK_OHOS_surface&quot;" name="VK_OHOS_SURFACE_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY"/> <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS"/>
<type name="VkOHOSSurfaceCreateFlagsOpenHarmony"/> <type name="VkSurfaceCreateFlagsOHOS"/>
<type name="VkOHOSSurfaceCreateInfoOpenHarmony"/> <type name="VkSurfaceCreateInfoOHOS"/>
<command name="vkCreateOHOSSurfaceOpenHarmony"/> <command name="vkCreateSurfaceOHOS"/>
</require> </require>
</extension> </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"> <extension name="VK_OHOS_native_buffer" number="533" type="device" author="OHOS" 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> <require>
<comment>VK_OHOS_native_buffer is used between the OpenharmonyOS Vulkan loader and drivers to implement the WSI extensions.</comment> <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="1" name="VK_OHOS_NATIVE_BUFFER_SPEC_VERSION"/>
<enum value="&quot;VK_OHOS_native_buffer&quot;" name="VK_OHOS_NATIVE_BUFFER_EXTENSION_NAME"/> <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="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OPENHARMONY"/> <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OPENHARMONY"/> <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS"/>
<type name="VkNativeBufferOpenHarmony"/> <type name="VkNativeBufferOHOS"/>
<type name="VkSwapchainImageCreateInfoOpenHarmony"/> <type name="VkSwapchainImageCreateInfoOHOS"/>
<type name="VkPhysicalDevicePresentationPropertiesOpenHarmony"/> <type name="VkPhysicalDevicePresentationPropertiesOHOS"/>
<type name="VkSwapchainImageUsageFlagBitsOpenHarmony"/> <type name="VkSwapchainImageUsageFlagBitsOHOS"/>
<type name="VkSwapchainImageUsageFlagsOpenHarmony"/> <type name="VkSwapchainImageUsageFlagsOHOS"/>
<command name="vkGetSwapchainGrallocUsageOpenHarmony"/> <command name="vkGetSwapchainGrallocUsageOHOS"/>
<command name="vkAcquireImageOpenHarmony"/> <command name="vkAcquireImageOHOS"/>
<command name="vkQueueSignalReleaseImageOpenHarmony"/> <command name="vkQueueSignalReleaseImageOHOS"/>
</require>
</extension>
<extension name="VK_OHOS_external_memory" number="534" type="device" author="OHOS" 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_OHOS_EXTERNAL_MEMORY_SPEC_VERSION"/>
<enum value="&quot;VK_OHOS_external_memory&quot;" name="VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME"/>
<enum bitpos="14" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OHOS"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS"/>
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS"/>
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS"/>
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS"/>
<type name="VkNativeBufferUsageOHOS"/>
<type name="VkNativeBufferPropertiesOHOS"/>
<type name="VkNativeBufferFormatPropertiesOHOS"/>
<type name="VkImportNativeBufferInfoOHOS"/>
<type name="VkMemoryGetNativeBufferInfoOHOS"/>
<type name="VkExternalFormatOHOS"/>
<command name="vkGetNativeBufferPropertiesOHOS"/>
<command name="vkGetMemoryNativeBufferOHOS"/>
<type name="OH_NativeBuffer"/>
</require> </require>
</extension> </extension>
</extensions> </extensions>