From 7de352bc4a14023ae7c11e1b2d005b8cb7cceb28 Mon Sep 17 00:00:00 2001 From: Mike Schuchardt Date: Fri, 6 Feb 2026 09:56:43 -0800 Subject: [PATCH] build: Update to header 1.4.343 --- CMakeLists.txt | 2 +- include/vulkan/utility/vk_dispatch_table.h | 8 ++ include/vulkan/utility/vk_format_utils.h | 19 +++- include/vulkan/utility/vk_safe_struct.hpp | 20 ++++ include/vulkan/utility/vk_struct_helper.hpp | 3 + include/vulkan/vk_enum_string_helper.h | 12 +++ scripts/known_good.json | 2 +- src/vulkan/vk_safe_struct_vendor.cpp | 103 ++++++++++++++++++++ 8 files changed, 162 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a7a23a2..9efd309 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.22.1) # The VERSION field is generated with the "--generated-version" flag in the generate_source.py script -project(VUL VERSION 1.4.342 LANGUAGES CXX) +project(VUL VERSION 1.4.343 LANGUAGES CXX) set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Remove when min is 3.26, see CMP0143 diff --git a/include/vulkan/utility/vk_dispatch_table.h b/include/vulkan/utility/vk_dispatch_table.h index 0f8b2f9..5b31c4e 100644 --- a/include/vulkan/utility/vk_dispatch_table.h +++ b/include/vulkan/utility/vk_dispatch_table.h @@ -171,6 +171,10 @@ typedef struct VkuInstanceDispatchTable_ { #endif // VK_USE_PLATFORM_OHOS PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM; +#ifdef VK_USE_PLATFORM_UBM_SEC + PFN_vkCreateUbmSurfaceSEC CreateUbmSurfaceSEC; + PFN_vkGetPhysicalDeviceUbmPresentationSupportSEC GetPhysicalDeviceUbmPresentationSupportSEC; +#endif // VK_USE_PLATFORM_UBM_SEC } VkuInstanceDispatchTable; // Device function pointer dispatch table @@ -1718,5 +1722,9 @@ static inline void vkuInitInstanceDispatchTable(VkInstance instance, VkuInstance #endif // VK_USE_PLATFORM_OHOS table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gipa(instance, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV"); table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)gipa(instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM"); +#ifdef VK_USE_PLATFORM_UBM_SEC + table->CreateUbmSurfaceSEC = (PFN_vkCreateUbmSurfaceSEC)gipa(instance, "vkCreateUbmSurfaceSEC"); + table->GetPhysicalDeviceUbmPresentationSupportSEC = (PFN_vkGetPhysicalDeviceUbmPresentationSupportSEC)gipa(instance, "vkGetPhysicalDeviceUbmPresentationSupportSEC"); +#endif // VK_USE_PLATFORM_UBM_SEC } // clang-format on diff --git a/include/vulkan/utility/vk_format_utils.h b/include/vulkan/utility/vk_format_utils.h index f8e5542..ccf9e30 100644 --- a/include/vulkan/utility/vk_format_utils.h +++ b/include/vulkan/utility/vk_format_utils.h @@ -369,7 +369,7 @@ struct VKU_FORMAT_INFO { uint32_t component_count; struct VKU_FORMAT_COMPONENT_INFO components[VKU_FORMAT_MAX_COMPONENTS]; }; -const struct VKU_FORMAT_INFO vku_formats[295] = { +const struct VKU_FORMAT_INFO vku_formats[298] = { { VKU_FORMAT_COMPATIBILITY_CLASS_NONE, 0, 0, {0, 0, 0}, 0, {} }, { VKU_FORMAT_COMPATIBILITY_CLASS_8BIT, 1, 1, {1, 1, 1}, 2, {{VKU_FORMAT_COMPONENT_TYPE_R, 4}, {VKU_FORMAT_COMPONENT_TYPE_G, 4}} }, { VKU_FORMAT_COMPATIBILITY_CLASS_16BIT, 2, 1, {1, 1, 1}, 4, {{VKU_FORMAT_COMPONENT_TYPE_R, 4}, {VKU_FORMAT_COMPONENT_TYPE_G, 4}, {VKU_FORMAT_COMPONENT_TYPE_B, 4}, {VKU_FORMAT_COMPONENT_TYPE_A, 4}} }, @@ -648,6 +648,9 @@ const struct VKU_FORMAT_INFO vku_formats[295] = { { VKU_FORMAT_COMPATIBILITY_CLASS_16BIT, 2, 1, {1, 1, 1}, 4, {{VKU_FORMAT_COMPONENT_TYPE_A, 4}, {VKU_FORMAT_COMPONENT_TYPE_R, 4}, {VKU_FORMAT_COMPONENT_TYPE_G, 4}, {VKU_FORMAT_COMPONENT_TYPE_B, 4}} }, { VKU_FORMAT_COMPATIBILITY_CLASS_16BIT, 2, 1, {1, 1, 1}, 4, {{VKU_FORMAT_COMPONENT_TYPE_A, 4}, {VKU_FORMAT_COMPONENT_TYPE_B, 4}, {VKU_FORMAT_COMPONENT_TYPE_G, 4}, {VKU_FORMAT_COMPONENT_TYPE_R, 4}} }, { VKU_FORMAT_COMPATIBILITY_CLASS_8BIT, 1, 1, {1, 1, 1}, 1, {{VKU_FORMAT_COMPONENT_TYPE_R, 8}} }, + { VKU_FORMAT_COMPATIBILITY_CLASS_16BIT, 2, 1, {1, 1, 1}, 1, {{VKU_FORMAT_COMPONENT_TYPE_R, 16}} }, + { VKU_FORMAT_COMPATIBILITY_CLASS_8BIT, 1, 1, {1, 1, 1}, 1, {{VKU_FORMAT_COMPONENT_TYPE_R, 8}} }, + { VKU_FORMAT_COMPATIBILITY_CLASS_8BIT, 1, 1, {1, 1, 1}, 1, {{VKU_FORMAT_COMPONENT_TYPE_R, 8}} }, { VKU_FORMAT_COMPATIBILITY_CLASS_32BIT, 4, 1, {1, 1, 1}, 2, {{VKU_FORMAT_COMPONENT_TYPE_R, 16}, {VKU_FORMAT_COMPONENT_TYPE_G, 16}} }, { VKU_FORMAT_COMPATIBILITY_CLASS_16BIT, 2, 1, {1, 1, 1}, 4, {{VKU_FORMAT_COMPONENT_TYPE_A, 1}, {VKU_FORMAT_COMPONENT_TYPE_B, 5}, {VKU_FORMAT_COMPONENT_TYPE_G, 5}, {VKU_FORMAT_COMPONENT_TYPE_R, 5}} }, { VKU_FORMAT_COMPATIBILITY_CLASS_8BIT_ALPHA, 1, 1, {1, 1, 1}, 1, {{VKU_FORMAT_COMPONENT_TYPE_A, 8}} }, @@ -674,10 +677,10 @@ static inline struct VKU_FORMAT_INFO vkuGetFormatInfo(VkFormat format) { else if (VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT <= format && format <= VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT ) { return vku_formats[format - VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT + 241]; } else if (VK_FORMAT_G8_B8R8_2PLANE_444_UNORM <= format && format <= VK_FORMAT_G16_B16R16_2PLANE_444_UNORM ) { return vku_formats[format - VK_FORMAT_G8_B8R8_2PLANE_444_UNORM + 271]; } else if (VK_FORMAT_A4R4G4B4_UNORM_PACK16 <= format && format <= VK_FORMAT_A4B4G4R4_UNORM_PACK16 ) { return vku_formats[format - VK_FORMAT_A4R4G4B4_UNORM_PACK16 + 275]; } - else if (VK_FORMAT_R8_BOOL_ARM <= format && format <= VK_FORMAT_R8_BOOL_ARM ) { return vku_formats[format - VK_FORMAT_R8_BOOL_ARM + 277]; } - else if (VK_FORMAT_R16G16_SFIXED5_NV <= format && format <= VK_FORMAT_R16G16_SFIXED5_NV ) { return vku_formats[format - VK_FORMAT_R16G16_SFIXED5_NV + 278]; } - else if (VK_FORMAT_A1B5G5R5_UNORM_PACK16 <= format && format <= VK_FORMAT_A8_UNORM ) { return vku_formats[format - VK_FORMAT_A1B5G5R5_UNORM_PACK16 + 279]; } - else if (VK_FORMAT_R10X6_UINT_PACK16_ARM <= format && format <= VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM ) { return vku_formats[format - VK_FORMAT_R10X6_UINT_PACK16_ARM + 281]; } + else if (VK_FORMAT_R8_BOOL_ARM <= format && format <= VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARM ) { return vku_formats[format - VK_FORMAT_R8_BOOL_ARM + 277]; } + else if (VK_FORMAT_R16G16_SFIXED5_NV <= format && format <= VK_FORMAT_R16G16_SFIXED5_NV ) { return vku_formats[format - VK_FORMAT_R16G16_SFIXED5_NV + 281]; } + else if (VK_FORMAT_A1B5G5R5_UNORM_PACK16 <= format && format <= VK_FORMAT_A8_UNORM ) { return vku_formats[format - VK_FORMAT_A1B5G5R5_UNORM_PACK16 + 282]; } + else if (VK_FORMAT_R10X6_UINT_PACK16_ARM <= format && format <= VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM ) { return vku_formats[format - VK_FORMAT_R10X6_UINT_PACK16_ARM + 284]; } // Default case - return VK_FORMAT_UNDEFINED else { return vku_formats[0]; @@ -843,6 +846,9 @@ bool vkuFormatIsSFLOAT(VkFormat format) { case VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT: case VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT: case VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT: + case VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM: + case VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E4M3_ARM: + case VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARM: return true; default: return false; @@ -1812,6 +1818,8 @@ static inline bool vkuFormatIs8bit(VkFormat format) { case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM: case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM: case VK_FORMAT_R8_BOOL_ARM: + case VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E4M3_ARM: + case VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARM: return true; default: return false; @@ -1857,6 +1865,7 @@ static inline bool vkuFormatIs16bit(VkFormat format) { case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM: case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM: case VK_FORMAT_R16G16_SFIXED5_NV: + case VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM: return true; default: return false; diff --git a/include/vulkan/utility/vk_safe_struct.hpp b/include/vulkan/utility/vk_safe_struct.hpp index e1b6d9f..9c92d6a 100644 --- a/include/vulkan/utility/vk_safe_struct.hpp +++ b/include/vulkan/utility/vk_safe_struct.hpp @@ -23695,6 +23695,26 @@ struct safe_VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT { return reinterpret_cast(this); } }; +#ifdef VK_USE_PLATFORM_UBM_SEC +struct safe_VkUbmSurfaceCreateInfoSEC { + VkStructureType sType; + const void* pNext{}; + VkUbmSurfaceCreateFlagsSEC flags; + struct ubm_device* ubm_device{}; + struct ubm_surface* ubm_surface{}; + + safe_VkUbmSurfaceCreateInfoSEC(const VkUbmSurfaceCreateInfoSEC* in_struct, PNextCopyState* copy_state = {}, + bool copy_pnext = true); + safe_VkUbmSurfaceCreateInfoSEC(const safe_VkUbmSurfaceCreateInfoSEC& copy_src); + safe_VkUbmSurfaceCreateInfoSEC& operator=(const safe_VkUbmSurfaceCreateInfoSEC& copy_src); + safe_VkUbmSurfaceCreateInfoSEC(); + ~safe_VkUbmSurfaceCreateInfoSEC(); + void initialize(const VkUbmSurfaceCreateInfoSEC* in_struct, PNextCopyState* copy_state = {}); + void initialize(const safe_VkUbmSurfaceCreateInfoSEC* copy_src, PNextCopyState* copy_state = {}); + VkUbmSurfaceCreateInfoSEC* ptr() { return reinterpret_cast(this); } + VkUbmSurfaceCreateInfoSEC const* ptr() const { return reinterpret_cast(this); } +}; +#endif // VK_USE_PLATFORM_UBM_SEC struct safe_VkAccelerationStructureGeometryTrianglesDataKHR { VkStructureType sType; const void* pNext{}; diff --git a/include/vulkan/utility/vk_struct_helper.hpp b/include/vulkan/utility/vk_struct_helper.hpp index 51fef66..55aa94b 100644 --- a/include/vulkan/utility/vk_struct_helper.hpp +++ b/include/vulkan/utility/vk_struct_helper.hpp @@ -1224,6 +1224,9 @@ template <> inline VkStructureType GetSType inline VkStructureType GetSType() { return VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV; } template <> inline VkStructureType GetSType() { return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV; } template <> inline VkStructureType GetSType() { return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT; } +#ifdef VK_USE_PLATFORM_UBM_SEC +template <> inline VkStructureType GetSType() { return VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC; } +#endif // VK_USE_PLATFORM_UBM_SEC template <> inline VkStructureType GetSType() { return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR; } template <> inline VkStructureType GetSType() { return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR; } template <> inline VkStructureType GetSType() { return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR; } diff --git a/include/vulkan/vk_enum_string_helper.h b/include/vulkan/vk_enum_string_helper.h index 3172c1c..65963b4 100644 --- a/include/vulkan/vk_enum_string_helper.h +++ b/include/vulkan/vk_enum_string_helper.h @@ -2462,6 +2462,8 @@ static inline const char* string_VkStructureType(VkStructureType input_value) { return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV"; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT: return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC: + return "VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC"; default: return "Unhandled VkStructureType"; } @@ -3268,6 +3270,12 @@ static inline const char* string_VkFormat(VkFormat input_value) { return "VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT"; case VK_FORMAT_R8_BOOL_ARM: return "VK_FORMAT_R8_BOOL_ARM"; + case VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM: + return "VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM"; + case VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E4M3_ARM: + return "VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E4M3_ARM"; + case VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARM: + return "VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARM"; case VK_FORMAT_R16G16_SFIXED5_NV: return "VK_FORMAT_R16G16_SFIXED5_NV"; case VK_FORMAT_R10X6_UINT_PACK16_ARM: @@ -13765,6 +13773,10 @@ static inline const char* string_VkStructureName(VkStructureType input_value) { return "VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV"; case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT: return "VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT"; +#ifdef VK_USE_PLATFORM_UBM_SEC + case VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC: + return "VkUbmSurfaceCreateInfoSEC"; +#endif // VK_USE_PLATFORM_UBM_SEC case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: return "VkAccelerationStructureGeometryTrianglesDataKHR"; case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: diff --git a/scripts/known_good.json b/scripts/known_good.json index 105d7d2..30db858 100644 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -7,7 +7,7 @@ "sub_dir": "Vulkan-Headers", "build_dir": "Vulkan-Headers/build", "install_dir": "Vulkan-Headers/build/install", - "commit": "v1.4.342" + "commit": "v1.4.343" }, { "name": "googletest", diff --git a/src/vulkan/vk_safe_struct_vendor.cpp b/src/vulkan/vk_safe_struct_vendor.cpp index f264e5e..94161c9 100644 --- a/src/vulkan/vk_safe_struct_vendor.cpp +++ b/src/vulkan/vk_safe_struct_vendor.cpp @@ -23451,6 +23451,109 @@ void safe_VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV::initialize( computeOccupancyPriority = copy_src->computeOccupancyPriority; pNext = SafePnextCopy(copy_src->pNext); } +#ifdef VK_USE_PLATFORM_UBM_SEC + +safe_VkUbmSurfaceCreateInfoSEC::safe_VkUbmSurfaceCreateInfoSEC(const VkUbmSurfaceCreateInfoSEC* in_struct, + [[maybe_unused]] PNextCopyState* copy_state, bool copy_pnext) + : sType(in_struct->sType), flags(in_struct->flags), ubm_device(nullptr), ubm_surface(nullptr) { + if (copy_pnext) { + pNext = SafePnextCopy(in_struct->pNext, copy_state); + } + if (in_struct->ubm_device) { + ubm_device = new ubm_device(*in_struct->ubm_device); + } + + if (in_struct->ubm_surface) { + ubm_surface = new ubm_surface(*in_struct->ubm_surface); + } +} + +safe_VkUbmSurfaceCreateInfoSEC::safe_VkUbmSurfaceCreateInfoSEC() + : sType(VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC), pNext(nullptr), flags(), ubm_device(nullptr), ubm_surface(nullptr) {} + +safe_VkUbmSurfaceCreateInfoSEC::safe_VkUbmSurfaceCreateInfoSEC(const safe_VkUbmSurfaceCreateInfoSEC& copy_src) { + sType = copy_src.sType; + flags = copy_src.flags; + ubm_device = nullptr; + ubm_surface = nullptr; + pNext = SafePnextCopy(copy_src.pNext); + + if (copy_src.ubm_device) { + ubm_device = new ubm_device(*copy_src.ubm_device); + } + + if (copy_src.ubm_surface) { + ubm_surface = new ubm_surface(*copy_src.ubm_surface); + } +} + +safe_VkUbmSurfaceCreateInfoSEC& safe_VkUbmSurfaceCreateInfoSEC::operator=(const safe_VkUbmSurfaceCreateInfoSEC& copy_src) { + if (©_src == this) return *this; + + if (ubm_device) delete ubm_device; + if (ubm_surface) delete ubm_surface; + FreePnextChain(pNext); + + sType = copy_src.sType; + flags = copy_src.flags; + ubm_device = nullptr; + ubm_surface = nullptr; + pNext = SafePnextCopy(copy_src.pNext); + + if (copy_src.ubm_device) { + ubm_device = new ubm_device(*copy_src.ubm_device); + } + + if (copy_src.ubm_surface) { + ubm_surface = new ubm_surface(*copy_src.ubm_surface); + } + + return *this; +} + +safe_VkUbmSurfaceCreateInfoSEC::~safe_VkUbmSurfaceCreateInfoSEC() { + if (ubm_device) delete ubm_device; + if (ubm_surface) delete ubm_surface; + FreePnextChain(pNext); +} + +void safe_VkUbmSurfaceCreateInfoSEC::initialize(const VkUbmSurfaceCreateInfoSEC* in_struct, + [[maybe_unused]] PNextCopyState* copy_state) { + if (ubm_device) delete ubm_device; + if (ubm_surface) delete ubm_surface; + FreePnextChain(pNext); + sType = in_struct->sType; + flags = in_struct->flags; + ubm_device = nullptr; + ubm_surface = nullptr; + pNext = SafePnextCopy(in_struct->pNext, copy_state); + + if (in_struct->ubm_device) { + ubm_device = new ubm_device(*in_struct->ubm_device); + } + + if (in_struct->ubm_surface) { + ubm_surface = new ubm_surface(*in_struct->ubm_surface); + } +} + +void safe_VkUbmSurfaceCreateInfoSEC::initialize(const safe_VkUbmSurfaceCreateInfoSEC* copy_src, + [[maybe_unused]] PNextCopyState* copy_state) { + sType = copy_src->sType; + flags = copy_src->flags; + ubm_device = nullptr; + ubm_surface = nullptr; + pNext = SafePnextCopy(copy_src->pNext); + + if (copy_src->ubm_device) { + ubm_device = new ubm_device(*copy_src->ubm_device); + } + + if (copy_src->ubm_surface) { + ubm_surface = new ubm_surface(*copy_src->ubm_surface); + } +} +#endif // VK_USE_PLATFORM_UBM_SEC } // namespace vku