diff --git a/bin/khronos-update.py b/bin/khronos-update.py
index 31a61a89cfb..fe29921ad4a 100755
--- a/bin/khronos-update.py
+++ b/bin/khronos-update.py
@@ -212,6 +212,7 @@ SOURCES = [
Source('include/vulkan/vulkan_ios.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_ios.h'),
Source('include/vulkan/vulkan_macos.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_macos.h'),
Source('include/vulkan/vulkan_metal.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_metal.h'),
+ Source('include/vulkan/vulkan_ohos.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_ohos.h'),
Source('include/vulkan/vulkan_screen.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_screen.h'),
Source('include/vulkan/vulkan_vi.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_vi.h'),
Source('include/vulkan/vulkan_wayland.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_wayland.h'),
diff --git a/include/vulkan/vulkan.h b/include/vulkan/vulkan.h
index 90605819242..9457a520d8c 100644
--- a/include/vulkan/vulkan.h
+++ b/include/vulkan/vulkan.h
@@ -96,4 +96,8 @@
#include "vulkan_beta.h"
#endif
+#ifdef VK_USE_PLATFORM_OHOS
+#include "vulkan_ohos.h"
+#endif
+
#endif // VULKAN_H_
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index fa027c82291..4005c88776e 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -69,7 +69,7 @@ extern "C" {
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 317
+#define VK_HEADER_VERSION 318
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
@@ -1277,6 +1277,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
+ VK_STRUCTURE_TYPE_OH_SURFACE_CREATE_INFO_OHOS = 1000587000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
@@ -1289,6 +1290,9 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM = 1000609000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE = 1000611000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE = 1000611001,
+ VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE = 1000611002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR = 1000286000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR = 1000286001,
#ifdef VK_ENABLE_BETA_EXTENSIONS
@@ -3075,6 +3079,7 @@ typedef VkFlags VkFramebufferCreateFlags;
typedef enum VkRenderPassCreateFlagBits {
VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
+ VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000004,
VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
} VkRenderPassCreateFlagBits;
typedef VkFlags VkRenderPassCreateFlags;
@@ -7048,6 +7053,7 @@ typedef enum VkRenderingFlagBits {
VK_RENDERING_RESUMING_BIT = 0x00000004,
VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
+ VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020,
VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
@@ -8009,6 +8015,7 @@ static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BI
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
+static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x10000000000ULL;
typedef VkFlags64 VkBufferUsageFlags2;
@@ -12381,10 +12388,8 @@ typedef enum VkComponentTypeKHR {
VK_COMPONENT_TYPE_BFLOAT16_KHR = 1000141000,
VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
- VK_COMPONENT_TYPE_FLOAT_E4M3_NV = 1000491002,
- VK_COMPONENT_TYPE_FLOAT_E5M2_NV = 1000491003,
- VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000567000,
- VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000567001,
+ VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000491002,
+ VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000491003,
VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
@@ -12396,6 +12401,8 @@ typedef enum VkComponentTypeKHR {
VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
+ VK_COMPONENT_TYPE_FLOAT_E4M3_NV = VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT,
+ VK_COMPONENT_TYPE_FLOAT_E5M2_NV = VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT,
VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
} VkComponentTypeKHR;
@@ -20023,7 +20030,7 @@ typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM {
typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM {
VkStructureType sType;
- const void* pNext;
+ void* pNext;
size_t tensorCaptureReplayDescriptorDataSize;
size_t tensorViewCaptureReplayDescriptorDataSize;
size_t tensorDescriptorSize;
@@ -22087,6 +22094,30 @@ typedef struct VkPhysicalDeviceFormatPackFeaturesARM {
+// VK_VALVE_fragment_density_map_layered is a preprocessor guard. Do not pass it to API calls.
+#define VK_VALVE_fragment_density_map_layered 1
+#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION 1
+#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_EXTENSION_NAME "VK_VALVE_fragment_density_map_layered"
+typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 fragmentDensityMapLayered;
+} VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE;
+
+typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
+ VkStructureType sType;
+ void* pNext;
+ uint32_t maxFragmentDensityMapLayers;
+} VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE;
+
+typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t maxFragmentDensityMapLayers;
+} VkPipelineFragmentDensityMapLayeredCreateInfoVALVE;
+
+
+
// VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
#define VK_NV_present_metering 1
#define VK_NV_PRESENT_METERING_SPEC_VERSION 1
diff --git a/include/vulkan/vulkan_ohos.h b/include/vulkan/vulkan_ohos.h
new file mode 100644
index 00000000000..b2e1b0fbf03
--- /dev/null
+++ b/include/vulkan/vulkan_ohos.h
@@ -0,0 +1,51 @@
+#ifndef VULKAN_OHOS_H_
+#define VULKAN_OHOS_H_ 1
+
+/*
+** Copyright 2015-2025 The Khronos Group Inc.
+**
+** SPDX-License-Identifier: Apache-2.0
+*/
+
+/*
+** This header is generated from the Khronos Vulkan XML API Registry.
+**
+*/
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+// VK_OHOS_surface is a preprocessor guard. Do not pass it to API calls.
+#define VK_OHOS_surface 1
+typedef struct NativeWindow OHNativeWindow;
+#define VK_OHOS_SURFACE_SPEC_VERSION 1
+#define VK_OHOS_SURFACE_EXTENSION_NAME "VK_OHOS_surface"
+typedef VkFlags VkSurfaceCreateFlagsOHOS;
+typedef struct VkOHSurfaceCreateInfoOHOS {
+ VkStructureType sType;
+ const void* pNext;
+ VkSurfaceCreateFlagsOHOS flags;
+ OHNativeWindow* window;
+} VkOHSurfaceCreateInfoOHOS;
+
+typedef VkOHSurfaceCreateInfoOHOS VkSurfaceCreateInfoOHOS;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreateSurfaceOHOS)(VkInstance instance, const VkSurfaceCreateInfoOHOS* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateSurfaceOHOS(
+ VkInstance instance,
+ const VkSurfaceCreateInfoOHOS* pCreateInfo,
+ const VkAllocationCallbacks* pAllocator,
+ VkSurfaceKHR* pSurface);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/vulkan/registry/vk.xml b/src/vulkan/registry/vk.xml
index 0351aef9341..5fbf706bcc0 100644
--- a/src/vulkan/registry/vk.xml
+++ b/src/vulkan/registry/vk.xml
@@ -35,6 +35,7 @@ branch of the member gitlab server.
+
@@ -70,6 +71,7 @@ branch of the member gitlab server.
+
@@ -179,7 +181,7 @@ branch of the member gitlab server.
#define VKSC_API_VERSION_1_0 VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 317
+#define VK_HEADER_VERSION 318
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
// Version of this file
@@ -278,6 +280,8 @@ typedef void* MTLSharedEvent_id;
typedef uint64_t VkDeviceSize;
typedef uint64_t VkDeviceAddress;
+ typedef struct NativeWindow OHNativeWindow;
+
Basic C types, pulled in via vk_platform.h
@@ -502,6 +506,7 @@ typedef void* MTLSharedEvent_id;
typedef VkFlags VkShaderCreateFlagsEXT;
typedef VkFlags VkTileShadingRenderPassFlagsQCOM;
typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
+ typedef VkFlags VkSurfaceCreateFlagsOHOS;
Video Core extension
typedef VkFlags VkVideoCodecOperationFlagsKHR;
@@ -4047,7 +4052,7 @@ typedef void* MTLSharedEvent_id;
VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting
VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting
VkBool32 depthStencilSwizzleOneSupport
- VkBool32 polygonModePointSize
+ VkBool32 polygonModePointSize
VkBool32 nonStrictSinglePixelWideLinesUseParallelogram
VkBool32 nonStrictWideLinesUseParallelogram
@@ -6095,7 +6100,7 @@ typedef void* MTLSharedEvent_id;
VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting
VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting
VkBool32 depthStencilSwizzleOneSupport
- VkBool32 polygonModePointSize
+ VkBool32 polygonModePointSize
VkBool32 nonStrictSinglePixelWideLinesUseParallelogram
VkBool32 nonStrictWideLinesUseParallelogram
VkBool32 blockTexelViewCompatibleMultipleLayers
@@ -6132,7 +6137,7 @@ typedef void* MTLSharedEvent_id;
VkStructureType sType
const void* pNext
uint32_t faultCount
- VkFaultData*pFaults
+ VkFaultData* pFaults
PFN_vkFaultCallbackFunction pfnFaultCallback
@@ -6597,13 +6602,13 @@ typedef void* MTLSharedEvent_id;
VkStructureType sType
- void*pNext
+ void* pNext
VkBool32 clustercullingShader
VkBool32 multiviewClusterCullingShader
VkStructureType sType
- void*pNext
+ void* pNext
VkBool32 clusterShadingRate
@@ -10358,6 +10363,21 @@ typedef void* MTLSharedEvent_id;
VkStructureType sType
const void* pNext
+
+ VkStructureType sType
+ void* pNext
+ uint32_t maxFragmentDensityMapLayers
+
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 fragmentDensityMapLayered
+
+
+ VkStructureType sType
+ const void* pNext
+ uint32_t maxFragmentDensityMapLayers
+
VkStructureType sType
const void* pNext
@@ -10507,9 +10527,9 @@ typedef void* MTLSharedEvent_id;
VkStructureType sType
const void* pNext
uint32_t dimensionCount
- const uint64_t*pSrcOffset
- const uint64_t*pDstOffset
- const uint64_t*pExtent
+ const uint64_t* pSrcOffset
+ const uint64_t* pDstOffset
+ const uint64_t* pExtent
VkStructureType sType
@@ -10518,10 +10538,10 @@ typedef void* MTLSharedEvent_id;
VkStructureType sType
- const void* pNext
- size_t tensorCaptureReplayDescriptorDataSize
- size_t tensorViewCaptureReplayDescriptorDataSize
- size_t tensorDescriptorSize
+ void* pNext
+ size_t tensorCaptureReplayDescriptorDataSize
+ size_t tensorViewCaptureReplayDescriptorDataSize
+ size_t tensorDescriptorSize
VkStructureType sType
@@ -10572,6 +10592,13 @@ typedef void* MTLSharedEvent_id;
VkBool32 shaderFloat8
VkBool32 shaderFloat8CooperativeMatrix
+
+ VkStructureType sType
+ const void* pNext
+ VkSurfaceCreateFlagsOHOS flags
+ OHNativeWindow* window
+
+
@@ -13935,6 +13962,13 @@ typedef void* MTLSharedEvent_id;
const VkAllocationCallbacks* pAllocator
VkSurfaceKHR* pSurface
+
+ VkResult vkCreateSurfaceOHOS
+ VkInstance instance
+ const VkSurfaceCreateInfoOHOS* pCreateInfo
+ const VkAllocationCallbacks* pAllocator
+ VkSurfaceKHR* pSurface
+
VkResult vkGetPhysicalDeviceDisplayPropertiesKHR
VkPhysicalDevice physicalDevice
@@ -15722,7 +15756,7 @@ typedef void* MTLSharedEvent_id;
VkResult vkQueueSetPerformanceConfigurationINTEL
- VkQueue queue
+ VkQueue queue
VkPerformanceConfigurationINTEL configuration
@@ -20338,7 +20372,7 @@ typedef void* MTLSharedEvent_id;
-
+
@@ -26246,6 +26280,7 @@ typedef void* MTLSharedEvent_id;
+
@@ -26569,8 +26604,8 @@ typedef void* MTLSharedEvent_id;
-
-
+
+
@@ -26755,6 +26790,7 @@ typedef void* MTLSharedEvent_id;
+
@@ -27449,8 +27485,8 @@ typedef void* MTLSharedEvent_id;
-
-
+
+
@@ -27767,10 +27803,16 @@ typedef void* MTLSharedEvent_id;
-
+
-
-
+
+
+
+
+
+
+
+
@@ -27965,13 +28007,20 @@ typedef void* MTLSharedEvent_id;
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -28125,6 +28174,9 @@ typedef void* MTLSharedEvent_id;
+
+
+