diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index 304303bc466..e57cd25a9fb 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -66,7 +66,7 @@ extern "C" {
//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
// Version of this file
-#define VK_HEADER_VERSION 346
+#define VK_HEADER_VERSION 347
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
@@ -797,6 +797,10 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR = 1000231000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR = 1000233000,
+ VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR = 1000233001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR = 1000233002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
@@ -1350,6 +1354,10 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR = 1000573000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR = 1000573001,
+ VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_KHR = 1000573002,
+ VK_STRUCTURE_TYPE_DEVICE_FAULT_DEBUG_INFO_KHR = 1000573003,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
@@ -3658,9 +3666,9 @@ typedef struct VkDeviceCreateInfo {
VkDeviceCreateFlags flags;
uint32_t queueCreateInfoCount;
const VkDeviceQueueCreateInfo* pQueueCreateInfos;
- // enabledLayerCount is legacy and ignored
+ // enabledLayerCount is legacy and not used
uint32_t enabledLayerCount;
- // ppEnabledLayerNames is legacy and ignored
+ // ppEnabledLayerNames is legacy and not used
const char* const* ppEnabledLayerNames;
uint32_t enabledExtensionCount;
const char* const* ppEnabledExtensionNames;
@@ -11710,6 +11718,18 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
#endif
+// VK_KHR_shader_constant_data is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_shader_constant_data 1
+#define VK_KHR_SHADER_CONSTANT_DATA_SPEC_VERSION 1
+#define VK_KHR_SHADER_CONSTANT_DATA_EXTENSION_NAME "VK_KHR_shader_constant_data"
+typedef struct VkPhysicalDeviceShaderConstantDataFeaturesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 shaderConstantData;
+} VkPhysicalDeviceShaderConstantDataFeaturesKHR;
+
+
+
// VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
#define VK_KHR_dynamic_rendering_local_read 1
#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
@@ -11738,6 +11758,31 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
#endif
+// VK_KHR_shader_abort is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_shader_abort 1
+#define VK_KHR_SHADER_ABORT_SPEC_VERSION 1
+#define VK_KHR_SHADER_ABORT_EXTENSION_NAME "VK_KHR_shader_abort"
+typedef struct VkPhysicalDeviceShaderAbortFeaturesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 shaderAbort;
+} VkPhysicalDeviceShaderAbortFeaturesKHR;
+
+typedef struct VkDeviceFaultShaderAbortMessageInfoKHR {
+ VkStructureType sType;
+ void* pNext;
+ uint64_t messageDataSize;
+ void* pMessageData;
+} VkDeviceFaultShaderAbortMessageInfoKHR;
+
+typedef struct VkPhysicalDeviceShaderAbortPropertiesKHR {
+ VkStructureType sType;
+ void* pNext;
+ uint64_t maxShaderAbortMessageSize;
+} VkPhysicalDeviceShaderAbortPropertiesKHR;
+
+
+
// VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
#define VK_KHR_shader_quad_control 1
#define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
@@ -14249,6 +14294,124 @@ typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
+// VK_KHR_device_fault is a preprocessor guard. Do not pass it to API calls.
+#define VK_KHR_device_fault 1
+#define VK_KHR_DEVICE_FAULT_SPEC_VERSION 1
+#define VK_KHR_DEVICE_FAULT_EXTENSION_NAME "VK_KHR_device_fault"
+
+typedef enum VkDeviceFaultAddressTypeKHR {
+ VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_KHR = 0,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_KHR = 1,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_KHR = 2,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_KHR = 3,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_KHR = 4,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_KHR = 5,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_KHR = 6,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_KHR,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_KHR,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_KHR,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_KHR,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_KHR,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_KHR,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_KHR,
+ VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkDeviceFaultAddressTypeKHR;
+
+typedef enum VkDeviceFaultVendorBinaryHeaderVersionKHR {
+ VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_KHR = 1,
+ VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_KHR,
+ VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkDeviceFaultVendorBinaryHeaderVersionKHR;
+
+typedef enum VkDeviceFaultFlagBitsKHR {
+ VK_DEVICE_FAULT_FLAG_DEVICE_LOST_KHR = 0x00000001,
+ VK_DEVICE_FAULT_FLAG_MEMORY_ADDRESS_KHR = 0x00000002,
+ VK_DEVICE_FAULT_FLAG_INSTRUCTION_ADDRESS_KHR = 0x00000004,
+ VK_DEVICE_FAULT_FLAG_VENDOR_KHR = 0x00000008,
+ VK_DEVICE_FAULT_FLAG_WATCHDOG_TIMEOUT_KHR = 0x00000010,
+ VK_DEVICE_FAULT_FLAG_OVERFLOW_KHR = 0x00000020,
+ VK_DEVICE_FAULT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkDeviceFaultFlagBitsKHR;
+typedef VkFlags VkDeviceFaultFlagsKHR;
+typedef struct VkPhysicalDeviceFaultFeaturesKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkBool32 deviceFault;
+ VkBool32 deviceFaultVendorBinary;
+ VkBool32 deviceFaultReportMasked;
+ VkBool32 deviceFaultDeviceLostOnMasked;
+} VkPhysicalDeviceFaultFeaturesKHR;
+
+typedef struct VkPhysicalDeviceFaultPropertiesKHR {
+ VkStructureType sType;
+ void* pNext;
+ uint32_t maxDeviceFaultCount;
+} VkPhysicalDeviceFaultPropertiesKHR;
+
+typedef struct VkDeviceFaultAddressInfoKHR {
+ VkDeviceFaultAddressTypeKHR addressType;
+ VkDeviceAddress reportedAddress;
+ VkDeviceSize addressPrecision;
+} VkDeviceFaultAddressInfoKHR;
+
+typedef struct VkDeviceFaultVendorInfoKHR {
+ char description[VK_MAX_DESCRIPTION_SIZE];
+ uint64_t vendorFaultCode;
+ uint64_t vendorFaultData;
+} VkDeviceFaultVendorInfoKHR;
+
+typedef struct VkDeviceFaultInfoKHR {
+ VkStructureType sType;
+ void* pNext;
+ VkDeviceFaultFlagsKHR flags;
+ uint64_t groupId;
+ char description[VK_MAX_DESCRIPTION_SIZE];
+ VkDeviceFaultAddressInfoKHR faultAddressInfo;
+ VkDeviceFaultAddressInfoKHR instructionAddressInfo;
+ VkDeviceFaultVendorInfoKHR vendorInfo;
+} VkDeviceFaultInfoKHR;
+
+typedef struct VkDeviceFaultDebugInfoKHR {
+ VkStructureType sType;
+ void* pNext;
+ uint32_t vendorBinarySize;
+ void* pVendorBinaryData;
+} VkDeviceFaultDebugInfoKHR;
+
+typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneKHR {
+ uint32_t headerSize;
+ VkDeviceFaultVendorBinaryHeaderVersionKHR headerVersion;
+ uint32_t vendorID;
+ uint32_t deviceID;
+ uint32_t driverVersion;
+ uint8_t pipelineCacheUUID[VK_UUID_SIZE];
+ uint32_t applicationNameOffset;
+ uint32_t applicationVersion;
+ uint32_t engineNameOffset;
+ uint32_t engineVersion;
+ uint32_t apiVersion;
+} VkDeviceFaultVendorBinaryHeaderVersionOneKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultReportsKHR)(VkDevice device, uint64_t timeout, uint32_t* pFaultCounts, VkDeviceFaultInfoKHR* pFaultInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultDebugInfoKHR)(VkDevice device, VkDeviceFaultDebugInfoKHR* pDebugInfo);
+
+#ifndef VK_NO_PROTOTYPES
+#ifndef VK_ONLY_EXPORTED_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultReportsKHR(
+ VkDevice device,
+ uint64_t timeout,
+ uint32_t* pFaultCounts,
+ VkDeviceFaultInfoKHR* pFaultInfo);
+#endif
+
+#ifndef VK_ONLY_EXPORTED_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultDebugInfoKHR(
+ VkDevice device,
+ VkDeviceFaultDebugInfoKHR* pDebugInfo);
+#endif
+#endif
+
+
// VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
#define VK_KHR_maintenance8 1
#define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
@@ -20041,22 +20204,10 @@ typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
#define VK_EXT_device_fault 1
#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2
#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
+typedef VkDeviceFaultAddressTypeKHR VkDeviceFaultAddressTypeEXT;
-typedef enum VkDeviceFaultAddressTypeEXT {
- VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
- VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
- VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
- VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
- VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
- VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
- VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
- VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkDeviceFaultAddressTypeEXT;
+typedef VkDeviceFaultVendorBinaryHeaderVersionKHR VkDeviceFaultVendorBinaryHeaderVersionEXT;
-typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
- VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
- VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
-} VkDeviceFaultVendorBinaryHeaderVersionEXT;
typedef struct VkPhysicalDeviceFaultFeaturesEXT {
VkStructureType sType;
void* pNext;
@@ -20072,40 +20223,20 @@ typedef struct VkDeviceFaultCountsEXT {
VkDeviceSize vendorBinarySize;
} VkDeviceFaultCountsEXT;
-typedef struct VkDeviceFaultAddressInfoEXT {
- VkDeviceFaultAddressTypeEXT addressType;
- VkDeviceAddress reportedAddress;
- VkDeviceSize addressPrecision;
-} VkDeviceFaultAddressInfoEXT;
-
-typedef struct VkDeviceFaultVendorInfoEXT {
- char description[VK_MAX_DESCRIPTION_SIZE];
- uint64_t vendorFaultCode;
- uint64_t vendorFaultData;
-} VkDeviceFaultVendorInfoEXT;
-
typedef struct VkDeviceFaultInfoEXT {
VkStructureType sType;
void* pNext;
char description[VK_MAX_DESCRIPTION_SIZE];
- VkDeviceFaultAddressInfoEXT* pAddressInfos;
- VkDeviceFaultVendorInfoEXT* pVendorInfos;
+ VkDeviceFaultAddressInfoKHR* pAddressInfos;
+ VkDeviceFaultVendorInfoKHR* pVendorInfos;
void* pVendorBinaryData;
} VkDeviceFaultInfoEXT;
-typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
- uint32_t headerSize;
- VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion;
- uint32_t vendorID;
- uint32_t deviceID;
- uint32_t driverVersion;
- uint8_t pipelineCacheUUID[VK_UUID_SIZE];
- uint32_t applicationNameOffset;
- uint32_t applicationVersion;
- uint32_t engineNameOffset;
- uint32_t engineVersion;
- uint32_t apiVersion;
-} VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
+typedef VkDeviceFaultAddressInfoKHR VkDeviceFaultAddressInfoEXT;
+
+typedef VkDeviceFaultVendorInfoKHR VkDeviceFaultVendorInfoEXT;
+
+typedef VkDeviceFaultVendorBinaryHeaderVersionOneKHR VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
diff --git a/src/compiler/spirv/spirv.core.grammar.json b/src/compiler/spirv/spirv.core.grammar.json
index 2c6695dd812..e600c0445f7 100644
--- a/src/compiler/spirv/spirv.core.grammar.json
+++ b/src/compiler/spirv/spirv.core.grammar.json
@@ -5718,6 +5718,17 @@
"capabilities": [ "DescriptorHeapEXT" ],
"version" : "None"
},
+ {
+ "opname" : "OpAbortKHR",
+ "class" : "Control-Flow",
+ "opcode" : 5121,
+ "operands" : [
+ { "kind" : "IdRef", "name" : "Message Type" },
+ { "kind" : "IdRef", "name" : "Message'" }
+ ],
+ "capabilities" : [ "AbortKHR" ],
+ "version" : "None"
+ },
{
"opname" : "OpUntypedImageTexelPointerEXT",
"class" : "Memory",
@@ -5757,6 +5768,55 @@
"capabilities": [ "DescriptorHeapEXT" ],
"version" : "None"
},
+ {
+ "opname" : "OpConstantDataKHR",
+ "class" : "Constant-Creation",
+ "opcode" : 5147,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "Data" }
+ ],
+ "capabilities" : [ "ConstantDataKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpSpecConstantDataKHR",
+ "class" : "Constant-Creation",
+ "opcode" : 5148,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "LiteralString", "name" : "Data" }
+ ],
+ "capabilities" : [ "ConstantDataKHR" ],
+ "version" : "None"
+ },
+ {
+ "opname" : "OpPoisonKHR",
+ "class" : "Miscellaneous",
+ "opcode" : 5158,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" }
+ ],
+ "capabilities" : [ "PoisonFreezeKHR" ],
+ "provisional" : true,
+ "version" : "None"
+ },
+ {
+ "opname" : "OpFreezeKHR",
+ "class" : "Miscellaneous",
+ "opcode" : 5159,
+ "operands" : [
+ { "kind" : "IdResultType" },
+ { "kind" : "IdResult" },
+ { "kind" : "IdRef", "name" : "Value" }
+ ],
+ "capabilities" : [ "PoisonFreezeKHR" ],
+ "provisional" : true,
+ "version" : "None"
+ },
{
"opname" : "OpHitObjectRecordHitMotionNV",
"class" : "Reserved",
@@ -13281,6 +13341,13 @@
"provisional" : true,
"version" : "None"
},
+ {
+ "enumerant" : "ArithmeticPoisonKHR",
+ "value" : 5157,
+ "capabilities" : [ "PoisonFreezeKHR" ],
+ "provisional" : true,
+ "version" : "None"
+ },
{
"enumerant" : "OutputLinesEXT",
"aliases" : ["OutputLinesNV"],
@@ -15099,6 +15166,12 @@
],
"version" : "None"
},
+ {
+ "enumerant" : "UTFEncodedKHR",
+ "value" : 5145,
+ "capabilities" : [ "ConstantDataKHR" ],
+ "version" : "None"
+ },
{
"enumerant" : "OverrideCoverageNV",
"value" : 5248,
@@ -17605,6 +17678,12 @@
"extensions" : [ "SPV_KHR_bfloat16" ],
"version" : "None"
},
+ {
+ "enumerant" : "AbortKHR",
+ "value" : 5120,
+ "extensions" : [ "SPV_KHR_abort" ],
+ "version" : "None"
+ },
{
"enumerant" : "DescriptorHeapEXT",
"value": 5128,
@@ -17612,6 +17691,19 @@
"extensions" : [ "SPV_EXT_descriptor_heap" ],
"version" : "None"
},
+ {
+ "enumerant" : "ConstantDataKHR",
+ "value" : 5146,
+ "extensions" : [ "SPV_KHR_constant_data" ],
+ "version" : "None"
+ },
+ {
+ "enumerant" : "PoisonFreezeKHR",
+ "value" : 5156,
+ "extensions" : [ "SPV_KHR_poison_freeze" ],
+ "provisional" : true,
+ "version" : "None"
+ },
{
"enumerant" : "SampleMaskOverrideCoverageNV",
"value" : 5249,
diff --git a/src/compiler/spirv/spirv.h b/src/compiler/spirv/spirv.h
index 2ed773111fc..d00cf0f4e95 100644
--- a/src/compiler/spirv/spirv.h
+++ b/src/compiler/spirv/spirv.h
@@ -179,6 +179,7 @@ typedef enum SpvExecutionMode_ {
SpvExecutionModeQuadDerivativesKHR = 5088,
SpvExecutionModeRequireFullQuadsKHR = 5089,
SpvExecutionModeSharesInputWithAMDX = 5102,
+ SpvExecutionModeArithmeticPoisonKHR = 5157,
SpvExecutionModeOutputLinesEXT = 5269,
SpvExecutionModeOutputLinesNV = 5269,
SpvExecutionModeOutputPrimitivesEXT = 5270,
@@ -563,6 +564,7 @@ typedef enum SpvDecoration_ {
SpvDecorationPayloadDispatchIndirectAMDX = 5105,
SpvDecorationArrayStrideIdEXT = 5124,
SpvDecorationOffsetIdEXT = 5125,
+ SpvDecorationUTFEncodedKHR = 5145,
SpvDecorationOverrideCoverageNV = 5248,
SpvDecorationPassthroughNV = 5250,
SpvDecorationViewportRelativeNV = 5252,
@@ -1200,7 +1202,10 @@ typedef enum SpvCapability_ {
SpvCapabilityBFloat16TypeKHR = 5116,
SpvCapabilityBFloat16DotProductKHR = 5117,
SpvCapabilityBFloat16CooperativeMatrixKHR = 5118,
+ SpvCapabilityAbortKHR = 5120,
SpvCapabilityDescriptorHeapEXT = 5128,
+ SpvCapabilityConstantDataKHR = 5146,
+ SpvCapabilityPoisonFreezeKHR = 5156,
SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
SpvCapabilityGeometryShaderPassthroughNV = 5251,
SpvCapabilityShaderViewportIndexLayerEXT = 5254,
@@ -2160,9 +2165,14 @@ typedef enum SpvOp_ {
SpvOpGroupNonUniformQuadAnyKHR = 5111,
SpvOpTypeBufferEXT = 5115,
SpvOpBufferPointerEXT = 5119,
+ SpvOpAbortKHR = 5121,
SpvOpUntypedImageTexelPointerEXT = 5126,
SpvOpMemberDecorateIdEXT = 5127,
SpvOpConstantSizeOfEXT = 5129,
+ SpvOpConstantDataKHR = 5147,
+ SpvOpSpecConstantDataKHR = 5148,
+ SpvOpPoisonKHR = 5158,
+ SpvOpFreezeKHR = 5159,
SpvOpHitObjectRecordHitMotionNV = 5249,
SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
SpvOpHitObjectRecordMissMotionNV = 5251,
@@ -3084,9 +3094,14 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
case SpvOpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpTypeBufferEXT: *hasResult = true; *hasResultType = false; break;
case SpvOpBufferPointerEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpAbortKHR: *hasResult = false; *hasResultType = false; break;
case SpvOpUntypedImageTexelPointerEXT: *hasResult = true; *hasResultType = true; break;
case SpvOpMemberDecorateIdEXT: *hasResult = false; *hasResultType = false; break;
case SpvOpConstantSizeOfEXT: *hasResult = true; *hasResultType = true; break;
+ case SpvOpConstantDataKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpSpecConstantDataKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpPoisonKHR: *hasResult = true; *hasResultType = true; break;
+ case SpvOpFreezeKHR: *hasResult = true; *hasResultType = true; break;
case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
@@ -3646,6 +3661,7 @@ inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
case SpvExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR";
case SpvExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR";
case SpvExecutionModeSharesInputWithAMDX: return "SharesInputWithAMDX";
+ case SpvExecutionModeArithmeticPoisonKHR: return "ArithmeticPoisonKHR";
case SpvExecutionModeOutputLinesEXT: return "OutputLinesEXT";
case SpvExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT";
case SpvExecutionModeDerivativeGroupQuadsKHR: return "DerivativeGroupQuadsKHR";
@@ -3963,6 +3979,7 @@ inline const char* SpvDecorationToString(SpvDecoration value) {
case SpvDecorationPayloadDispatchIndirectAMDX: return "PayloadDispatchIndirectAMDX";
case SpvDecorationArrayStrideIdEXT: return "ArrayStrideIdEXT";
case SpvDecorationOffsetIdEXT: return "OffsetIdEXT";
+ case SpvDecorationUTFEncodedKHR: return "UTFEncodedKHR";
case SpvDecorationOverrideCoverageNV: return "OverrideCoverageNV";
case SpvDecorationPassthroughNV: return "PassthroughNV";
case SpvDecorationViewportRelativeNV: return "ViewportRelativeNV";
@@ -4354,7 +4371,10 @@ inline const char* SpvCapabilityToString(SpvCapability value) {
case SpvCapabilityBFloat16TypeKHR: return "BFloat16TypeKHR";
case SpvCapabilityBFloat16DotProductKHR: return "BFloat16DotProductKHR";
case SpvCapabilityBFloat16CooperativeMatrixKHR: return "BFloat16CooperativeMatrixKHR";
+ case SpvCapabilityAbortKHR: return "AbortKHR";
case SpvCapabilityDescriptorHeapEXT: return "DescriptorHeapEXT";
+ case SpvCapabilityConstantDataKHR: return "ConstantDataKHR";
+ case SpvCapabilityPoisonFreezeKHR: return "PoisonFreezeKHR";
case SpvCapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
case SpvCapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
case SpvCapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
@@ -5139,9 +5159,14 @@ inline const char* SpvOpToString(SpvOp value) {
case SpvOpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
case SpvOpTypeBufferEXT: return "OpTypeBufferEXT";
case SpvOpBufferPointerEXT: return "OpBufferPointerEXT";
+ case SpvOpAbortKHR: return "OpAbortKHR";
case SpvOpUntypedImageTexelPointerEXT: return "OpUntypedImageTexelPointerEXT";
case SpvOpMemberDecorateIdEXT: return "OpMemberDecorateIdEXT";
case SpvOpConstantSizeOfEXT: return "OpConstantSizeOfEXT";
+ case SpvOpConstantDataKHR: return "OpConstantDataKHR";
+ case SpvOpSpecConstantDataKHR: return "OpSpecConstantDataKHR";
+ case SpvOpPoisonKHR: return "OpPoisonKHR";
+ case SpvOpFreezeKHR: return "OpFreezeKHR";
case SpvOpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
case SpvOpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
case SpvOpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
diff --git a/src/vulkan/registry/vk.xml b/src/vulkan/registry/vk.xml
index 8687d09550b..b53d67c3dae 100644
--- a/src/vulkan/registry/vk.xml
+++ b/src/vulkan/registry/vk.xml
@@ -188,11 +188,11 @@ 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 346
+#define VK_HEADER_VERSION 347
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
// Version of this file
-#define VK_HEADER_VERSION 20
+#define VK_HEADER_VERSION 21
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION)
@@ -409,6 +409,8 @@ typedef void* MTLSharedEvent_id;
typedef VkFlags64 VkMemoryDecompressionMethodFlagsEXT;
+ typedef VkFlags VkDeviceFaultFlagsKHR;
+
typedef VkFlags VkBuildMicromapFlagsEXT;
typedef VkFlags VkMicromapCreateFlagsEXT;
typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
@@ -867,10 +869,11 @@ typedef void* MTLSharedEvent_id;
-
+
+
@@ -989,7 +992,8 @@ typedef void* MTLSharedEvent_id;
-
+
+
@@ -1067,6 +1071,9 @@ typedef void* MTLSharedEvent_id;
VK_KHR_maintenance8
+ VK_KHR_device_fault
+
+
VK_KHR_maintenance9
@@ -1250,8 +1257,8 @@ typedef void* MTLSharedEvent_id;
VkDeviceCreateFlags flags
uint32_t queueCreateInfoCount
const VkDeviceQueueCreateInfo* pQueueCreateInfos
- uint32_t enabledLayerCount
- const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled
+ uint32_t enabledLayerCount
+ const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled
uint32_t enabledExtensionCount
const char* const* ppEnabledExtensionNames
const VkPhysicalDeviceFeatures* pEnabledFeatures
@@ -9695,16 +9702,34 @@ typedef void* MTLSharedEvent_id;
VkBool32 deviceFault
VkBool32 deviceFaultVendorBinary
-
- VkDeviceFaultAddressTypeEXT addressType
+
+ VkDeviceFaultAddressTypeKHR addressType
VkDeviceAddress reportedAddress
VkDeviceSize addressPrecision
-
+
+
char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the fault
uint64_t vendorFaultCode
uint64_t vendorFaultData
+
+
+ VkStructureType sType
+ void* pNext
+ VkDeviceFaultFlagsKHR flags
+ uint64_t groupId
+ char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the fault
+ VkDeviceFaultAddressInfoKHR faultAddressInfo
+ VkDeviceFaultAddressInfoKHR instructionAddressInfo
+ VkDeviceFaultVendorInfoKHR vendorInfo
+
+
+ VkStructureType sType
+ void* pNext
+ uint32_t vendorBinarySize
+ void* pVendorBinaryData
+
VkStructureType sType
void* pNext
@@ -9716,14 +9741,14 @@ typedef void* MTLSharedEvent_id;
VkStructureType sType
void* pNext
char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the fault
- VkDeviceFaultAddressInfoEXT* pAddressInfos
- VkDeviceFaultVendorInfoEXT* pVendorInfos
+ VkDeviceFaultAddressInfoKHR* pAddressInfos
+ VkDeviceFaultVendorInfoKHR* pVendorInfos
void* pVendorBinaryData
-
+
The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.
uint32_t headerSize
- VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion
+ VkDeviceFaultVendorBinaryHeaderVersionKHR headerVersion
uint32_t vendorID
uint32_t deviceID
uint32_t driverVersion
@@ -9734,6 +9759,20 @@ typedef void* MTLSharedEvent_id;
uint32_t engineVersion
uint32_t apiVersion
+
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 deviceFault
+ VkBool32 deviceFaultVendorBinary
+ VkBool32 deviceFaultReportMasked
+ VkBool32 deviceFaultDeviceLostOnMasked
+
+
+ VkStructureType sType
+ void* pNext
+ uint32_t maxDeviceFaultCount
+
VkStructureType sType
void* pNext
@@ -11637,6 +11676,27 @@ typedef void* MTLSharedEvent_id;
VkAddressCommandFlagsKHR dstFlags
uint32_t marker
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 shaderConstantData
+
+
+ VkStructureType sType
+ void* pNext
+ VkBool32 shaderAbort
+
+
+ VkStructureType sType
+ void* pNext
+ uint64_t maxShaderAbortMessageSize
+
+
+ VkStructureType sType
+ void* pNext
+ uint64_t messageDataSize
+ void* pMessageData
+
@@ -13760,17 +13820,26 @@ typedef void* MTLSharedEvent_id;
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -18135,6 +18204,18 @@ endif::VK_KHR_internally_synchronized_queues[]
VkDeviceFaultCountsEXT* pFaultCounts
VkDeviceFaultInfoEXT* pFaultInfo
+
+ VkResult vkGetDeviceFaultReportsKHR
+ VkDevice device
+ uint64_t timeout
+ uint32_t* pFaultCounts
+ VkDeviceFaultInfoKHR* pFaultInfo
+
+
+ VkResult vkGetDeviceFaultDebugInfoKHR
+ VkDevice device
+ VkDeviceFaultDebugInfoKHR* pDebugInfo
+
void vkCmdSetDepthBias2EXT
VkCommandBuffer commandBuffer
@@ -24531,10 +24612,13 @@ endif::VK_KHR_internally_synchronized_queues[]
-
+
-
-
+
+
+
+
+
@@ -24592,10 +24676,17 @@ endif::VK_KHR_internally_synchronized_queues[]
-
+
-
-
+
+
+
+
+
+
+
+
+
@@ -26415,13 +26506,20 @@ endif::VK_KHR_internally_synchronized_queues[]
-
+
+
+
+
+
+
+
+
@@ -29875,10 +29973,28 @@ endif::VK_KHR_internally_synchronized_queues[]
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -33485,6 +33601,12 @@ endif::VK_KHR_internally_synchronized_queues[]
+
+
+
+
+
+