From cfdaa26a646569ca39e97ee99f1a0159a76c0292 Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Sun, 17 May 2026 11:16:38 +0200 Subject: [PATCH] vulkan,spirv: Update spec to 1.4.352 Reviewed-by: Samuel Pitoiset Part-of: --- include/vulkan/vulkan_core.h | 533 +++++++++++- .../spirv/NonSemanticShaderDebugInfo100.h | 6 +- src/compiler/spirv/spirv.core.grammar.json | 129 ++- src/compiler/spirv/spirv.h | 44 +- src/vulkan/registry/vk.xml | 789 ++++++++++++++---- 5 files changed, 1267 insertions(+), 234 deletions(-) diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index ffa970c2c0b..005e9c97b30 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 350 +#define VK_HEADER_VERSION 352 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) @@ -640,6 +640,13 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GPA_FEATURES_AMD = 1000133000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GPA_PROPERTIES_AMD = 1000133001, + VK_STRUCTURE_TYPE_GPA_SAMPLE_BEGIN_INFO_AMD = 1000133002, + VK_STRUCTURE_TYPE_GPA_SESSION_CREATE_INFO_AMD = 1000133003, + VK_STRUCTURE_TYPE_GPA_DEVICE_CLOCK_MODE_INFO_AMD = 1000133004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GPA_PROPERTIES_2_AMD = 1000133005, + VK_STRUCTURE_TYPE_GPA_DEVICE_GET_CLOCK_INFO_AMD = 1000133006, #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000, #endif @@ -739,6 +746,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_CONVERSION_FEATURES_QCOM = 1000172000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ELAPSED_TIMER_QUERY_FEATURES_QCOM = 1000173000, VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, @@ -884,6 +892,11 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PERF_HINT_INFO_QCOM = 1000302000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_PERF_HINT_FEATURES_QCOM = 1000302001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_PERF_HINT_PROPERTIES_QCOM = 1000302002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_3_FEATURES_QCOM = 1000303000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MULTIPLE_WAIT_QUEUES_FEATURES_QCOM = 1000304000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MULTIPLE_WAIT_QUEUES_PROPERTIES_QCOM = 1000304001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SPLIT_BARRIER_FEATURES_EXT = 1000305000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SPLIT_BARRIER_PROPERTIES_EXT = 1000305001, #ifdef VK_ENABLE_BETA_EXTENSIONS VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000, #endif @@ -1418,6 +1431,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT = 1000425002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT = 1000620000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR = 1000361000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_KHR = 1000623000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_KHR = 1000623001, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MICROMAP_DATA_KHR = 1000623002, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_KHR = 1000623003, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT = 1000627000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT = 1000628000, VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT = 1000628001, @@ -1455,6 +1472,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_NEURAL_STATISTICS_CREATE_INFO_ARM = 1000676001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_NEURAL_ACCELERATOR_STATISTICS_FEATURES_ARM = 1000676002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_RESTART_INDEX_FEATURES_EXT = 1000678000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_DECODE_VECTOR_FEATURES_NV = 1000689000, 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_DEBUG_REPORT_CREATE_INFO_EXT is a legacy alias @@ -1753,6 +1771,7 @@ typedef enum VkObjectType { VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000, VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001, VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, + VK_OBJECT_TYPE_GPA_SESSION_AMD = 1000133000, VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, @@ -2202,6 +2221,7 @@ typedef enum VkQueryType { VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, + VK_QUERY_TYPE_TIME_ELAPSED_QCOM = 1000173000, VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000, VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000, @@ -3187,10 +3207,10 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000, VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000, - VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000, #ifdef VK_ENABLE_BETA_EXTENSIONS VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000, #endif + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_KHR = 0x01000000, // VK_PIPELINE_CREATE_DISPATCH_BASE is a legacy alias VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, @@ -3203,6 +3223,7 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT, VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT, + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_KHR, VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT, VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT, VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -6332,6 +6353,7 @@ typedef enum VkDriverId { VK_DRIVER_ID_MESA_HONEYKRISP = 26, VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27, VK_DRIVER_ID_MESA_KOSMICKRISP = 28, + VK_DRIVER_ID_MESA_GFXSTREAM = 29, VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, @@ -7298,6 +7320,7 @@ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_SXD_BIT_QCOM = 0x100000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL; @@ -8215,6 +8238,8 @@ static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL; #endif static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x10000000ULL; +static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL; +static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL; @@ -8239,8 +8264,6 @@ static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STO static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL; -static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL; -static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL; #ifdef VK_ENABLE_BETA_EXTENSIONS static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL; #endif @@ -8278,6 +8301,7 @@ static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_ #endif static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x1000000000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL; +static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL; @@ -8304,7 +8328,6 @@ static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BI static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL; -static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL; @@ -8318,6 +8341,8 @@ static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INSTRUMENT_SHADERS_B 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; +static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_KHR = 0x01000000ULL; +static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_OPACITY_MICROMAP_DISALLOW_MIXED_SPECIAL_INDEX_BIT_KHR = 0x20000000000ULL; static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT = 0x80000000000ULL; typedef struct VkPhysicalDeviceVulkan14Features { @@ -12429,6 +12454,7 @@ typedef enum VkAccelerationStructureTypeKHR { VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0, VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1, VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2, + VK_ACCELERATION_STRUCTURE_TYPE_OPACITY_MICROMAP_KHR = 1000623000, VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF @@ -14588,6 +14614,86 @@ typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR { +// VK_KHR_opacity_micromap is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_opacity_micromap 1 +#define VK_KHR_OPACITY_MICROMAP_SPEC_VERSION 1 +#define VK_KHR_OPACITY_MICROMAP_EXTENSION_NAME "VK_KHR_opacity_micromap" + +typedef enum VkOpacityMicromapFormatKHR { + VK_OPACITY_MICROMAP_FORMAT_2_STATE_KHR = 1, + VK_OPACITY_MICROMAP_FORMAT_4_STATE_KHR = 2, + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = VK_OPACITY_MICROMAP_FORMAT_2_STATE_KHR, + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = VK_OPACITY_MICROMAP_FORMAT_4_STATE_KHR, + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF +} VkOpacityMicromapFormatKHR; + +typedef enum VkOpacityMicromapSpecialIndexKHR { + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_KHR = -1, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_KHR = -2, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_KHR = -3, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_KHR = -4, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_KHR, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_KHR, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_KHR, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_KHR, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_KHR = 0x7FFFFFFF +} VkOpacityMicromapSpecialIndexKHR; + +typedef enum VkAccelerationStructureSerializedBlockTypeKHR { + VK_ACCELERATION_STRUCTURE_SERIALIZED_BLOCK_TYPE_OPACITY_MICROMAP_KHR = 0, + VK_ACCELERATION_STRUCTURE_SERIALIZED_BLOCK_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureSerializedBlockTypeKHR; +typedef struct VkMicromapUsageKHR { + uint32_t count; + uint32_t subdivisionLevel; + VkOpacityMicromapFormatKHR format; +} VkMicromapUsageKHR; + +typedef struct VkAccelerationStructureGeometryMicromapDataKHR { + VkStructureType sType; + const void* pNext; + uint32_t usageCountsCount; + const VkMicromapUsageKHR* pUsageCounts; + const VkMicromapUsageKHR* const* ppUsageCounts; + VkDeviceAddress data; + VkDeviceAddress triangleArray; + VkDeviceSize triangleArrayStride; +} VkAccelerationStructureGeometryMicromapDataKHR; + +typedef struct VkPhysicalDeviceOpacityMicromapFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 micromap; +} VkPhysicalDeviceOpacityMicromapFeaturesKHR; + +typedef struct VkPhysicalDeviceOpacityMicromapPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t maxOpacity2StateSubdivisionLevel; + uint32_t maxOpacity4StateSubdivisionLevel; + uint32_t maxOpacityLossy4StateSubdivisionLevel; + uint64_t maxMicromapTriangles; +} VkPhysicalDeviceOpacityMicromapPropertiesKHR; + +typedef struct VkMicromapTriangleKHR { + uint32_t dataOffset; + uint16_t subdivisionLevel; + uint16_t format; +} VkMicromapTriangleKHR; + +typedef struct VkAccelerationStructureTrianglesOpacityMicromapKHR { + VkStructureType sType; + void* pNext; + VkIndexType indexType; + VkDeviceAddress indexBuffer; + VkDeviceSize indexStride; + uint32_t baseTriangle; + VkAccelerationStructureKHR micromap; +} VkAccelerationStructureTrianglesOpacityMicromapKHR; + + + // VK_KHR_maintenance10 is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_maintenance10 1 #define VK_KHR_MAINTENANCE_10_SPEC_VERSION 1 @@ -16134,6 +16240,285 @@ typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFil #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" +// VK_AMD_gpa_interface is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_gpa_interface 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkGpaSessionAMD) +#define VK_AMD_GPA_INTERFACE_SPEC_VERSION 1 +#define VK_AMD_GPA_INTERFACE_EXTENSION_NAME "VK_AMD_gpa_interface" + +typedef enum VkGpaPerfBlockAMD { + VK_GPA_PERF_BLOCK_CPF_AMD = 0, + VK_GPA_PERF_BLOCK_IA_AMD = 1, + VK_GPA_PERF_BLOCK_VGT_AMD = 2, + VK_GPA_PERF_BLOCK_PA_AMD = 3, + VK_GPA_PERF_BLOCK_SC_AMD = 4, + VK_GPA_PERF_BLOCK_SPI_AMD = 5, + VK_GPA_PERF_BLOCK_SQ_AMD = 6, + VK_GPA_PERF_BLOCK_SX_AMD = 7, + VK_GPA_PERF_BLOCK_TA_AMD = 8, + VK_GPA_PERF_BLOCK_TD_AMD = 9, + VK_GPA_PERF_BLOCK_TCP_AMD = 10, + VK_GPA_PERF_BLOCK_TCC_AMD = 11, + VK_GPA_PERF_BLOCK_TCA_AMD = 12, + VK_GPA_PERF_BLOCK_DB_AMD = 13, + VK_GPA_PERF_BLOCK_CB_AMD = 14, + VK_GPA_PERF_BLOCK_GDS_AMD = 15, + VK_GPA_PERF_BLOCK_SRBM_AMD = 16, + VK_GPA_PERF_BLOCK_GRBM_AMD = 17, + VK_GPA_PERF_BLOCK_GRBM_SE_AMD = 18, + VK_GPA_PERF_BLOCK_RLC_AMD = 19, + VK_GPA_PERF_BLOCK_DMA_AMD = 20, + VK_GPA_PERF_BLOCK_MC_AMD = 21, + VK_GPA_PERF_BLOCK_CPG_AMD = 22, + VK_GPA_PERF_BLOCK_CPC_AMD = 23, + VK_GPA_PERF_BLOCK_WD_AMD = 24, + VK_GPA_PERF_BLOCK_TCS_AMD = 25, + VK_GPA_PERF_BLOCK_ATC_AMD = 26, + VK_GPA_PERF_BLOCK_ATC_L2_AMD = 27, + VK_GPA_PERF_BLOCK_MC_VM_L2_AMD = 28, + VK_GPA_PERF_BLOCK_EA_AMD = 29, + VK_GPA_PERF_BLOCK_RPB_AMD = 30, + VK_GPA_PERF_BLOCK_RMI_AMD = 31, + VK_GPA_PERF_BLOCK_UMCCH_AMD = 32, + VK_GPA_PERF_BLOCK_GE_AMD = 33, + VK_GPA_PERF_BLOCK_GL1A_AMD = 34, + VK_GPA_PERF_BLOCK_GL1C_AMD = 35, + VK_GPA_PERF_BLOCK_GL1CG_AMD = 36, + VK_GPA_PERF_BLOCK_GL2A_AMD = 37, + VK_GPA_PERF_BLOCK_GL2C_AMD = 38, + VK_GPA_PERF_BLOCK_CHA_AMD = 39, + VK_GPA_PERF_BLOCK_CHC_AMD = 40, + VK_GPA_PERF_BLOCK_CHCG_AMD = 41, + VK_GPA_PERF_BLOCK_GUS_AMD = 42, + VK_GPA_PERF_BLOCK_GCR_AMD = 43, + VK_GPA_PERF_BLOCK_PH_AMD = 44, + VK_GPA_PERF_BLOCK_UTCL1_AMD = 45, + VK_GPA_PERF_BLOCK_GE_DIST_AMD = 46, + VK_GPA_PERF_BLOCK_GE_SE_AMD = 47, + VK_GPA_PERF_BLOCK_DF_MALL_AMD = 48, + VK_GPA_PERF_BLOCK_SQ_WGP_AMD = 49, + VK_GPA_PERF_BLOCK_PC_AMD = 50, + VK_GPA_PERF_BLOCK_GL1XA_AMD = 51, + VK_GPA_PERF_BLOCK_GL1XC_AMD = 52, + VK_GPA_PERF_BLOCK_WGS_AMD = 53, + VK_GPA_PERF_BLOCK_EACPWD_AMD = 54, + VK_GPA_PERF_BLOCK_EASE_AMD = 55, + VK_GPA_PERF_BLOCK_RLCUSER_AMD = 56, + VK_GPA_PERF_BLOCK_GE1_AMD = VK_GPA_PERF_BLOCK_GE_AMD, + VK_GPA_PERF_BLOCK_RLCLOCAL_AMD = VK_GPA_PERF_BLOCK_RLCUSER_AMD, + VK_GPA_PERF_BLOCK_MAX_ENUM_AMD = 0x7FFFFFFF +} VkGpaPerfBlockAMD; + +typedef enum VkGpaSampleTypeAMD { + VK_GPA_SAMPLE_TYPE_CUMULATIVE_AMD = 0, + VK_GPA_SAMPLE_TYPE_TRACE_AMD = 1, + VK_GPA_SAMPLE_TYPE_TIMING_AMD = 2, + VK_GPA_SAMPLE_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF +} VkGpaSampleTypeAMD; + +typedef enum VkGpaDeviceClockModeAMD { + VK_GPA_DEVICE_CLOCK_MODE_DEFAULT_AMD = 0, + VK_GPA_DEVICE_CLOCK_MODE_QUERY_AMD = 1, + VK_GPA_DEVICE_CLOCK_MODE_PROFILING_AMD = 2, + VK_GPA_DEVICE_CLOCK_MODE_MIN_MEMORY_AMD = 3, + VK_GPA_DEVICE_CLOCK_MODE_MIN_ENGINE_AMD = 4, + VK_GPA_DEVICE_CLOCK_MODE_PEAK_AMD = 5, + VK_GPA_DEVICE_CLOCK_MODE_MAX_ENUM_AMD = 0x7FFFFFFF +} VkGpaDeviceClockModeAMD; + +typedef enum VkGpaSqShaderStageFlagBitsAMD { + VK_GPA_SQ_SHADER_STAGE_PS_BIT_AMD = 0x00000001, + VK_GPA_SQ_SHADER_STAGE_VS_BIT_AMD = 0x00000002, + VK_GPA_SQ_SHADER_STAGE_GS_BIT_AMD = 0x00000004, + VK_GPA_SQ_SHADER_STAGE_ES_BIT_AMD = 0x00000008, + VK_GPA_SQ_SHADER_STAGE_HS_BIT_AMD = 0x00000010, + VK_GPA_SQ_SHADER_STAGE_LS_BIT_AMD = 0x00000020, + VK_GPA_SQ_SHADER_STAGE_CS_BIT_AMD = 0x00000040, + VK_GPA_SQ_SHADER_STAGE_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF +} VkGpaSqShaderStageFlagBitsAMD; +typedef VkFlags VkGpaSqShaderStageFlagsAMD; +typedef VkFlags VkGpaPerfBlockPropertiesFlagsAMD; +typedef VkFlags VkPhysicalDeviceGpaPropertiesFlagsAMD; +typedef struct VkGpaPerfBlockPropertiesAMD { + VkGpaPerfBlockAMD blockType; + VkGpaPerfBlockPropertiesFlagsAMD flags; + uint32_t instanceCount; + uint32_t maxEventID; + uint32_t maxGlobalOnlyCounters; + uint32_t maxGlobalSharedCounters; + uint32_t maxStreamingCounters; +} VkGpaPerfBlockPropertiesAMD; + +typedef struct VkPhysicalDeviceGpaFeaturesAMD { + VkStructureType sType; + void* pNext; + VkBool32 perfCounters; + VkBool32 streamingPerfCounters; + VkBool32 sqThreadTracing; + VkBool32 clockModes; +} VkPhysicalDeviceGpaFeaturesAMD; + +typedef struct VkPhysicalDeviceGpaPropertiesAMD { + VkStructureType sType; + void* pNext; + VkPhysicalDeviceGpaPropertiesFlagsAMD flags; + VkDeviceSize maxSqttSeBufferSize; + uint32_t shaderEngineCount; + uint32_t perfBlockCount; + VkGpaPerfBlockPropertiesAMD* pPerfBlocks; +} VkPhysicalDeviceGpaPropertiesAMD; + +typedef struct VkPhysicalDeviceGpaProperties2AMD { + VkStructureType sType; + void* pNext; + uint32_t revisionId; +} VkPhysicalDeviceGpaProperties2AMD; + +typedef struct VkGpaPerfCounterAMD { + VkGpaPerfBlockAMD blockType; + uint32_t blockInstance; + uint32_t eventID; +} VkGpaPerfCounterAMD; + +typedef struct VkGpaSampleBeginInfoAMD { + VkStructureType sType; + const void* pNext; + VkGpaSampleTypeAMD sampleType; + VkBool32 sampleInternalOperations; + VkBool32 cacheFlushOnCounterCollection; + VkBool32 sqShaderMaskEnable; + VkGpaSqShaderStageFlagsAMD sqShaderMask; + uint32_t perfCounterCount; + const VkGpaPerfCounterAMD* pPerfCounters; + uint32_t streamingPerfTraceSampleInterval; + VkDeviceSize perfCounterDeviceMemoryLimit; + VkBool32 sqThreadTraceEnable; + VkBool32 sqThreadTraceSuppressInstructionTokens; + VkDeviceSize sqThreadTraceDeviceMemoryLimit; + VkPipelineStageFlags timingPreSample; + VkPipelineStageFlags timingPostSample; +} VkGpaSampleBeginInfoAMD; + +typedef struct VkGpaDeviceClockModeInfoAMD { + VkStructureType sType; + const void* pNext; + VkGpaDeviceClockModeAMD clockMode; + float memoryClockRatioToPeak; + float engineClockRatioToPeak; +} VkGpaDeviceClockModeInfoAMD; + +typedef struct VkGpaDeviceGetClockInfoAMD { + VkStructureType sType; + void* pNext; + float memoryClockRatioToPeak; + float engineClockRatioToPeak; + uint32_t memoryClockFrequency; + uint32_t engineClockFrequency; +} VkGpaDeviceGetClockInfoAMD; + +typedef struct VkGpaSessionCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkGpaSessionAMD secondaryCopySource; +} VkGpaSessionCreateInfoAMD; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateGpaSessionAMD)(VkDevice device, const VkGpaSessionCreateInfoAMD* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkGpaSessionAMD* pGpaSession); +typedef void (VKAPI_PTR *PFN_vkDestroyGpaSessionAMD)(VkDevice device, VkGpaSessionAMD gpaSession, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkSetGpaDeviceClockModeAMD)(VkDevice device, VkGpaDeviceClockModeInfoAMD* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetGpaDeviceClockInfoAMD)(VkDevice device, VkGpaDeviceGetClockInfoAMD* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdBeginGpaSessionAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession); +typedef VkResult (VKAPI_PTR *PFN_vkCmdEndGpaSessionAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession); +typedef VkResult (VKAPI_PTR *PFN_vkCmdBeginGpaSampleAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession, const VkGpaSampleBeginInfoAMD* pGpaSampleBeginInfo, uint32_t* pSampleID); +typedef void (VKAPI_PTR *PFN_vkCmdEndGpaSampleAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession, uint32_t sampleID); +typedef VkResult (VKAPI_PTR *PFN_vkGetGpaSessionStatusAMD)(VkDevice device, VkGpaSessionAMD gpaSession); +typedef VkResult (VKAPI_PTR *PFN_vkGetGpaSessionResultsAMD)(VkDevice device, VkGpaSessionAMD gpaSession, uint32_t sampleID, size_t* pSizeInBytes, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkResetGpaSessionAMD)(VkDevice device, VkGpaSessionAMD gpaSession); +typedef void (VKAPI_PTR *PFN_vkCmdCopyGpaSessionResultsAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession); + +#ifndef VK_NO_PROTOTYPES +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateGpaSessionAMD( + VkDevice device, + const VkGpaSessionCreateInfoAMD* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkGpaSessionAMD* pGpaSession); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkDestroyGpaSessionAMD( + VkDevice device, + VkGpaSessionAMD gpaSession, + const VkAllocationCallbacks* pAllocator); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkSetGpaDeviceClockModeAMD( + VkDevice device, + VkGpaDeviceClockModeInfoAMD* pInfo); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetGpaDeviceClockInfoAMD( + VkDevice device, + VkGpaDeviceGetClockInfoAMD* pInfo); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCmdBeginGpaSessionAMD( + VkCommandBuffer commandBuffer, + VkGpaSessionAMD gpaSession); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCmdEndGpaSessionAMD( + VkCommandBuffer commandBuffer, + VkGpaSessionAMD gpaSession); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCmdBeginGpaSampleAMD( + VkCommandBuffer commandBuffer, + VkGpaSessionAMD gpaSession, + const VkGpaSampleBeginInfoAMD* pGpaSampleBeginInfo, + uint32_t* pSampleID); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdEndGpaSampleAMD( + VkCommandBuffer commandBuffer, + VkGpaSessionAMD gpaSession, + uint32_t sampleID); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetGpaSessionStatusAMD( + VkDevice device, + VkGpaSessionAMD gpaSession); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetGpaSessionResultsAMD( + VkDevice device, + VkGpaSessionAMD gpaSession, + uint32_t sampleID, + size_t* pSizeInBytes, + void* pData); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkResetGpaSessionAMD( + VkDevice device, + VkGpaSessionAMD gpaSession); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdCopyGpaSessionResultsAMD( + VkCommandBuffer commandBuffer, + VkGpaSessionAMD gpaSession); +#endif +#endif + + // VK_EXT_descriptor_heap is a preprocessor guard. Do not pass it to API calls. #define VK_EXT_descriptor_heap 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM) @@ -17033,6 +17418,7 @@ typedef enum VkGeometryTypeKHR { #ifdef VK_ENABLE_BETA_EXTENSIONS VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX = 1000478000, #endif + VK_GEOMETRY_TYPE_MICROMAP_KHR = 1000623000, VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR, VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR, VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF @@ -17079,15 +17465,17 @@ typedef enum VkGeometryInstanceFlagBitsKHR { VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004, VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008, - VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = 0x00000010, - VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000020, + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_KHR = 0x00000010, + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_KHR = 0x00000020, VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_KHR, // VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT is a legacy alias VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT, + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_KHR, // VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT, VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF @@ -17105,21 +17493,24 @@ typedef enum VkBuildAccelerationStructureFlagBitsKHR { VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008, VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010, VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = 0x00000040, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000080, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT = 0x00000100, #ifdef VK_ENABLE_BETA_EXTENSIONS VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV = 0x00000200, #endif VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR = 0x00000800, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV = 0x00001000, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_KHR = 0x00000040, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_KHR = 0x00000080, + VK_BUILD_ACCELERATION_STRUCTURE_MICROMAP_LOSSY_BIT_KHR = 0x00000400, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_KHR, // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT is a legacy alias VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_KHR, // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT, // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT is a legacy alias @@ -17477,6 +17868,18 @@ typedef struct VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM { +// VK_QCOM_elapsed_timer_query is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_elapsed_timer_query 1 +#define VK_QCOM_ELAPSED_TIMER_QUERY_SPEC_VERSION 1 +#define VK_QCOM_ELAPSED_TIMER_QUERY_EXTENSION_NAME "VK_QCOM_elapsed_timer_query" +typedef struct VkPhysicalDeviceElapsedTimerQueryFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 elapsedTimerQuery; +} VkPhysicalDeviceElapsedTimerQueryFeaturesQCOM; + + + // VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls. #define VK_EXT_global_priority 1 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 @@ -19615,6 +20018,56 @@ VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerfHintQCOM( #endif +// VK_QCOM_image_processing3 is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_image_processing3 1 +#define VK_QCOM_IMAGE_PROCESSING_3_SPEC_VERSION 1 +#define VK_QCOM_IMAGE_PROCESSING_3_EXTENSION_NAME "VK_QCOM_image_processing3" +typedef struct VkPhysicalDeviceImageProcessing3FeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 imageGatherLinear; + VkBool32 imageGatherExtendedModes; + VkBool32 blockMatchExtendedClampToEdge; +} VkPhysicalDeviceImageProcessing3FeaturesQCOM; + + + +// VK_QCOM_shader_multiple_wait_queues is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_shader_multiple_wait_queues 1 +#define VK_QCOM_SHADER_MULTIPLE_WAIT_QUEUES_SPEC_VERSION 1 +#define VK_QCOM_SHADER_MULTIPLE_WAIT_QUEUES_EXTENSION_NAME "VK_QCOM_shader_multiple_wait_queues" +typedef struct VkPhysicalDeviceShaderMultipleWaitQueuesFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 shaderMultipleWaitQueues; +} VkPhysicalDeviceShaderMultipleWaitQueuesFeaturesQCOM; + +typedef struct VkPhysicalDeviceShaderMultipleWaitQueuesPropertiesQCOM { + VkStructureType sType; + void* pNext; + uint32_t maxShaderWaitQueues; +} VkPhysicalDeviceShaderMultipleWaitQueuesPropertiesQCOM; + + + +// VK_EXT_shader_split_barrier is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_split_barrier 1 +#define VK_EXT_SHADER_SPLIT_BARRIER_SPEC_VERSION 1 +#define VK_EXT_SHADER_SPLIT_BARRIER_EXTENSION_NAME "VK_EXT_shader_split_barrier" +typedef struct VkPhysicalDeviceShaderSplitBarrierFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderSplitBarrier; +} VkPhysicalDeviceShaderSplitBarrierFeaturesEXT; + +typedef struct VkPhysicalDeviceShaderSplitBarrierPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t splitBarrierReservedSharedMemory; +} VkPhysicalDeviceShaderSplitBarrierPropertiesEXT; + + + // VK_QCOM_tile_shading is a preprocessor guard. Do not pass it to API calls. #define VK_QCOM_tile_shading 1 #define VK_QCOM_TILE_SHADING_SPEC_VERSION 2 @@ -21005,21 +21458,10 @@ typedef enum VkCopyMicromapModeEXT { VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3, VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkCopyMicromapModeEXT; +typedef VkOpacityMicromapFormatKHR VkOpacityMicromapFormatEXT; -typedef enum VkOpacityMicromapFormatEXT { - VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1, - VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2, - VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF -} VkOpacityMicromapFormatEXT; +typedef VkOpacityMicromapSpecialIndexKHR VkOpacityMicromapSpecialIndexEXT; -typedef enum VkOpacityMicromapSpecialIndexEXT { - VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1, - VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2, - VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3, - VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4, - VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5, - VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF -} VkOpacityMicromapSpecialIndexEXT; typedef enum VkAccelerationStructureCompatibilityKHR { VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0, @@ -21151,26 +21593,22 @@ typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT { VkMicromapEXT micromap; } VkAccelerationStructureTrianglesOpacityMicromapEXT; -typedef struct VkMicromapTriangleEXT { - uint32_t dataOffset; - uint16_t subdivisionLevel; - uint16_t format; -} VkMicromapTriangleEXT; +typedef VkMicromapTriangleKHR VkMicromapTriangleEXT; -typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap); -typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); -typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); -typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo); -typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo); -typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); -typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); -typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap); +typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); +typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); +typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo); #ifndef VK_NO_PROTOTYPES #ifndef VK_ONLY_EXPORTED_PROTOTYPES @@ -22932,6 +23370,7 @@ typedef enum VkShaderCreateFlagBitsEXT { VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020, VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040, VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080, + VK_SHADER_CREATE_OPACITY_MICROMAP_DISALLOW_MIXED_SPECIAL_INDEX_BIT_EXT = 0x00001000, VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT = 0x00008000, VK_SHADER_CREATE_INDEPENDENT_SETS_BIT_KHR = 0x00040000, VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF @@ -25754,6 +26193,18 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartIndexEXT( #endif +// VK_NV_cooperative_matrix_decode_vector is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_cooperative_matrix_decode_vector 1 +#define VK_NV_COOPERATIVE_MATRIX_DECODE_VECTOR_SPEC_VERSION 1 +#define VK_NV_COOPERATIVE_MATRIX_DECODE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_matrix_decode_vector" +typedef struct VkPhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cooperativeMatrixDecodeVector; +} VkPhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV; + + + // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_acceleration_structure 1 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 diff --git a/src/compiler/spirv/NonSemanticShaderDebugInfo100.h b/src/compiler/spirv/NonSemanticShaderDebugInfo100.h index c095e28f2ba..155e2e5a70d 100644 --- a/src/compiler/spirv/NonSemanticShaderDebugInfo100.h +++ b/src/compiler/spirv/NonSemanticShaderDebugInfo100.h @@ -1,10 +1,14 @@ // SPDX-FileCopyrightText: 2018-2024 The Khronos Group Inc. // SPDX-License-Identifier: MIT -// +// // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS // KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS // SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT // https://www.khronos.org/registry/ +// +// This file is a frozen snapshot of the NonSemantic.Shader.DebugInfo version +// 100 instruction set. It will not be updated with new instructions. New code +// should include NonSemanticShaderDebugInfo.h, which covers all versions. #ifndef SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_ #define SPIRV_UNIFIED1_NonSemanticShaderDebugInfo100_H_ diff --git a/src/compiler/spirv/spirv.core.grammar.json b/src/compiler/spirv/spirv.core.grammar.json index e600c0445f7..4f96982e8a5 100644 --- a/src/compiler/spirv/spirv.core.grammar.json +++ b/src/compiler/spirv/spirv.core.grammar.json @@ -11,7 +11,7 @@ "magic_number" : "0x07230203", "major_version" : 1, "minor_version" : 6, - "revision" : 4, + "revision" : 7, "instruction_printing_class" : [ { "tag" : "@exclude" @@ -5775,7 +5775,7 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, - { "kind" : "LiteralString", "name" : "Data" } + { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "Data" } ], "capabilities" : [ "ConstantDataKHR" ], "version" : "None" @@ -5787,7 +5787,7 @@ "operands" : [ { "kind" : "IdResultType" }, { "kind" : "IdResult" }, - { "kind" : "LiteralString", "name" : "Data" } + { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "Data" } ], "capabilities" : [ "ConstantDataKHR" ], "version" : "None" @@ -6505,7 +6505,8 @@ { "kind" : "IdRef", "name" : "Hit Object" }, { "kind" : "IdRef", "name" : "Ray Query" }, { "kind" : "IdRef", "name" : "SBT Record Index" }, - { "kind" : "IdRef", "name" : "Hit Object Attributes" } + { "kind" : "IdRef", "name" : "Hit Object Attributes" }, + { "kind" : "IdRef", "quantifier" : "?", "name" : "Hit Kind" } ], "capabilities" : [ "ShaderInvocationReorderEXT" ], "version" : "None" @@ -10802,8 +10803,8 @@ "aliases" : [ "OpReadPipeBlockingINTEL" ], "opcode" : 5946, "operands" : [ - { "kind" : "IdResultType" }, - { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "Pipe" }, + { "kind" : "IdRef", "name" : "Pointer" }, { "kind" : "IdRef", "name" : "Packet Size" }, { "kind" : "IdRef", "name" : "Packet Alignment" } ], @@ -10816,8 +10817,8 @@ "aliases" : [ "OpWritePipeBlockingINTEL" ], "opcode" : 5947, "operands" : [ - { "kind" : "IdResultType" }, - { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "Pipe" }, + { "kind" : "IdRef", "name" : "Pointer" }, { "kind" : "IdRef", "name" : "Packet Size" }, { "kind" : "IdRef", "name" : "Packet Alignment" } ], @@ -11222,8 +11223,6 @@ "class" : "Composite", "opcode" : 6096, "operands" : [ - { "kind" : "IdResultType" }, - { "kind" : "IdResult" }, { "kind" : "IdRef", "quantifier" : "*", "name" : "Constituents" } ], "capabilities" : [ "LongCompositesINTEL" ], @@ -11254,27 +11253,29 @@ "version" : "None" }, { - "opname" : "OpControlBarrierArriveINTEL", + "opname" : "OpControlBarrierArriveEXT", "class" : "Barrier", + "aliases" : [ "OpControlBarrierArriveINTEL" ], "opcode" : 6142, "operands" : [ { "kind" : "IdScope", "name" : "Execution" }, { "kind" : "IdScope", "name" : "Memory" }, { "kind" : "IdMemorySemantics", "name" : "Semantics" } ], - "capabilities" : [ "SplitBarrierINTEL" ], + "capabilities" : [ "SplitBarrierEXT" ], "version" : "None" }, { - "opname" : "OpControlBarrierWaitINTEL", + "opname" : "OpControlBarrierWaitEXT", "class" : "Barrier", + "aliases" : [ "OpControlBarrierWaitINTEL" ], "opcode" : 6143, "operands" : [ { "kind" : "IdScope", "name" : "Execution" }, { "kind" : "IdScope", "name" : "Memory" }, { "kind" : "IdMemorySemantics", "name" : "Semantics" } ], - "capabilities" : [ "SplitBarrierINTEL" ], + "capabilities" : [ "SplitBarrierEXT" ], "version" : "None" }, { @@ -11598,6 +11599,34 @@ "provisional" : true, "version" : "None" }, + { + "opname" : "OpPredicatedLoadINTEL", + "class" : "Memory", + "opcode" : 6258, + "operands" : [ + { "kind" : "IdResultType" }, + { "kind" : "IdResult" }, + { "kind" : "IdRef", "name" : "Pointer" }, + { "kind" : "IdRef", "name" : "Predicate" }, + { "kind" : "IdRef", "name" : "Default Value" }, + { "kind" : "MemoryAccess", "quantifier" : "?" } + ], + "capabilities" : [ "PredicatedIOINTEL" ], + "version" : "None" + }, + { + "opname" : "OpPredicatedStoreINTEL", + "class" : "Memory", + "opcode" : 6259, + "operands" : [ + { "kind" : "IdRef", "name" : "Pointer" }, + { "kind" : "IdRef", "name" : "Object" }, + { "kind" : "IdRef", "name" : "Predicate" }, + { "kind" : "MemoryAccess", "quantifier" : "?" } + ], + "capabilities" : [ "PredicatedIOINTEL" ], + "version" : "None" + }, { "opname" : "OpGroupIMulKHR", "class" : "Group", @@ -12522,9 +12551,10 @@ "version" : "None" }, { - "enumerant" : "ForceOpacityMicromap2StateEXT", + "enumerant" : "ForceOpacityMicromap2StateKHR", + "aliases" : [ "ForceOpacityMicromap2StateEXT" ], "value" : "0x0400", - "capabilities" : [ "RayTracingOpacityMicromapEXT" ], + "capabilities" : [ "RayTracingOpacityMicromapKHR" ], "version" : "None" } ] @@ -13549,6 +13579,15 @@ "capabilities" : [ "FloatControls2" ], "version" : "None" }, + { + "enumerant" : "OpacityMicromapIdKHR", + "value" : 6031, + "capabilities" : [ "RayTracingOpacityMicromapExecutionModeKHR" ], + "parameters" : [ + { "kind" : "IdRef", "name" : "Enable" } + ], + "version" : "None" + }, { "enumerant" : "StreamingInterfaceINTEL", "value" : 6154, @@ -14568,6 +14607,12 @@ "capabilities" : [ "Linkage" ], "extensions" : [ "SPV_KHR_linkonce_odr" ], "version" : "None" + }, + { + "enumerant" : "WeakAMD", + "value" : 3, + "capabilities" : [ "WeakLinkageAMD" ], + "version" : "None" } ] }, @@ -17704,6 +17749,13 @@ "provisional" : true, "version" : "None" }, + { + "enumerant" : "WeakLinkageAMD", + "value" : 5181, + "capabilities" : [ "Linkage" ], + "extensions" : [ "SPV_AMD_weak_linkage" ], + "version" : "None" + }, { "enumerant" : "SampleMaskOverrideCoverageNV", "value" : 5249, @@ -18009,10 +18061,11 @@ "version" : "None" }, { - "enumerant" : "RayTracingOpacityMicromapEXT", + "enumerant" : "RayTracingOpacityMicromapKHR", + "aliases" : ["RayTracingOpacityMicromapEXT"], "value" : 5381, "capabilities" : [ "Shader" ], - "extensions" : [ "SPV_EXT_opacity_micromap" ], + "extensions" : ["SPV_KHR_opacity_micromap", "SPV_EXT_opacity_micromap"], "version" : "None" }, { @@ -18147,6 +18200,13 @@ "extensions" : [ "SPV_NV_tensor_addressing" ], "version" : "None" }, + { + "enumerant" : "CooperativeMatrixDecodeVectorNV", + "value" : 5447, + "capabilities" : [ "CooperativeMatrixBlockLoadsNV" ], + "extensions" : [ "SPV_NV_cooperative_matrix_decode_vector" ], + "version" : "None" + }, { "enumerant" : "SubgroupShuffleINTEL", "value" : 5568, @@ -18489,6 +18549,13 @@ "extensions" : [ "SPV_KHR_fma" ], "version" : "None" }, + { + "enumerant" : "RayTracingOpacityMicromapExecutionModeKHR", + "value" : 6032, + "capabilities" : [ "Shader" ], + "extensions" : [ "SPV_KHR_opacity_micromap" ], + "version" : "None" + }, { "enumerant" : "AtomicFloat32AddEXT", "value" : 6033, @@ -18533,9 +18600,10 @@ "version" : "None" }, { - "enumerant" : "SplitBarrierINTEL", + "enumerant" : "SplitBarrierEXT", + "aliases" : [ "SplitBarrierINTEL" ], "value" : 6141, - "extensions" : [ "SPV_INTEL_split_barrier" ], + "extensions" : [ "SPV_EXT_split_barrier", "SPV_INTEL_split_barrier" ], "version" : "None" }, { @@ -18659,6 +18727,18 @@ "provisional" : true, "version": "None" }, + { + "enumerant" : "PredicatedIOINTEL", + "value" : 6257, + "extensions" : [ "SPV_INTEL_predicated_io" ], + "version" : "None" + }, + { + "enumerant" : "RoundedDivideSqrtINTEL", + "value" : 6265, + "extensions" : [ "SPV_INTEL_rounded_divide_sqrt" ], + "version": "None" + }, { "enumerant" : "GroupUniformArithmeticKHR", "value" : 6400, @@ -18962,6 +19042,15 @@ ], "capabilities" : [ "CooperativeMatrixBlockLoadsNV" ], "version" : "None" + }, + { + "enumerant" : "DecodeVectorFunc", + "value" : "0x0004", + "parameters" : [ + { "kind" : "IdRef" } + ], + "capabilities" : [ "CooperativeMatrixDecodeVectorNV" ], + "version" : "None" } ] }, diff --git a/src/compiler/spirv/spirv.h b/src/compiler/spirv/spirv.h index d00cf0f4e95..5ab265f5f2b 100644 --- a/src/compiler/spirv/spirv.h +++ b/src/compiler/spirv/spirv.h @@ -209,6 +209,7 @@ typedef enum SpvExecutionMode_ { SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, SpvExecutionModeMaximallyReconvergesKHR = 6023, SpvExecutionModeFPFastMathDefault = 6028, + SpvExecutionModeOpacityMicromapIdKHR = 6031, SpvExecutionModeStreamingInterfaceINTEL = 6154, SpvExecutionModeRegisterMapInterfaceINTEL = 6160, SpvExecutionModeNamedBarrierCountINTEL = 6417, @@ -475,6 +476,7 @@ typedef enum SpvLinkageType_ { SpvLinkageTypeExport = 0, SpvLinkageTypeImport = 1, SpvLinkageTypeLinkOnceODR = 2, + SpvLinkageTypeWeakAMD = 3, SpvLinkageTypeMax = 0x7fffffff, } SpvLinkageType; @@ -1206,6 +1208,7 @@ typedef enum SpvCapability_ { SpvCapabilityDescriptorHeapEXT = 5128, SpvCapabilityConstantDataKHR = 5146, SpvCapabilityPoisonFreezeKHR = 5156, + SpvCapabilityWeakLinkageAMD = 5181, SpvCapabilitySampleMaskOverrideCoverageNV = 5249, SpvCapabilityGeometryShaderPassthroughNV = 5251, SpvCapabilityShaderViewportIndexLayerEXT = 5254, @@ -1270,6 +1273,7 @@ typedef enum SpvCapability_ { SpvCapabilityDemoteToHelperInvocationEXT = 5379, SpvCapabilityDisplacementMicromapNV = 5380, SpvCapabilityRayTracingOpacityMicromapEXT = 5381, + SpvCapabilityRayTracingOpacityMicromapKHR = 5381, SpvCapabilityShaderInvocationReorderNV = 5383, SpvCapabilityShaderInvocationReorderEXT = 5388, SpvCapabilityBindlessTextureNV = 5390, @@ -1291,6 +1295,7 @@ typedef enum SpvCapability_ { SpvCapabilityCooperativeVectorTrainingNV = 5435, SpvCapabilityRayTracingClusterAccelerationStructureNV = 5437, SpvCapabilityTensorAddressingNV = 5439, + SpvCapabilityCooperativeMatrixDecodeVectorNV = 5447, SpvCapabilitySubgroupShuffleINTEL = 5568, SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, SpvCapabilitySubgroupImageBlockIOINTEL = 5570, @@ -1364,6 +1369,7 @@ typedef enum SpvCapability_ { SpvCapabilityGroupNonUniformRotateKHR = 6026, SpvCapabilityFloatControls2 = 6029, SpvCapabilityFMAKHR = 6030, + SpvCapabilityRayTracingOpacityMicromapExecutionModeKHR = 6032, SpvCapabilityAtomicFloat32AddEXT = 6033, SpvCapabilityAtomicFloat64AddEXT = 6034, SpvCapabilityLongCompositesINTEL = 6089, @@ -1372,6 +1378,7 @@ typedef enum SpvCapability_ { SpvCapabilityAtomicFloat16AddEXT = 6095, SpvCapabilityDebugInfoModuleINTEL = 6114, SpvCapabilityBFloat16ConversionINTEL = 6115, + SpvCapabilitySplitBarrierEXT = 6141, SpvCapabilitySplitBarrierINTEL = 6141, SpvCapabilityArithmeticFenceEXT = 6144, SpvCapabilityFPGAClusterAttributesV2ALTERA = 6150, @@ -1396,6 +1403,8 @@ typedef enum SpvCapability_ { SpvCapabilityUntypedVariableLengthArrayINTEL = 6243, SpvCapabilitySpecConditionalINTEL = 6245, SpvCapabilityFunctionVariantsINTEL = 6246, + SpvCapabilityPredicatedIOINTEL = 6257, + SpvCapabilityRoundedDivideSqrtINTEL = 6265, SpvCapabilityGroupUniformArithmeticKHR = 6400, SpvCapabilityTensorFloat32RoundingINTEL = 6425, SpvCapabilityMaskedGatherScatterINTEL = 6427, @@ -1422,6 +1431,7 @@ typedef enum SpvRayFlagsShift_ { SpvRayFlagsSkipTrianglesKHRShift = 8, SpvRayFlagsSkipAABBsKHRShift = 9, SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10, + SpvRayFlagsForceOpacityMicromap2StateKHRShift = 10, SpvRayFlagsMax = 0x7fffffff, } SpvRayFlagsShift; @@ -1439,6 +1449,7 @@ typedef enum SpvRayFlagsMask_ { SpvRayFlagsSkipTrianglesKHRMask = 0x00000100, SpvRayFlagsSkipAABBsKHRMask = 0x00000200, SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400, + SpvRayFlagsForceOpacityMicromap2StateKHRMask = 0x00000400, } SpvRayFlagsMask; typedef enum SpvRayQueryIntersection_ { @@ -1573,6 +1584,7 @@ typedef enum SpvTensorClampMode_ { typedef enum SpvTensorAddressingOperandsShift_ { SpvTensorAddressingOperandsTensorViewShift = 0, SpvTensorAddressingOperandsDecodeFuncShift = 1, + SpvTensorAddressingOperandsDecodeVectorFuncShift = 2, SpvTensorAddressingOperandsMax = 0x7fffffff, } SpvTensorAddressingOperandsShift; @@ -1580,6 +1592,7 @@ typedef enum SpvTensorAddressingOperandsMask_ { SpvTensorAddressingOperandsMaskNone = 0, SpvTensorAddressingOperandsTensorViewMask = 0x00000001, SpvTensorAddressingOperandsDecodeFuncMask = 0x00000002, + SpvTensorAddressingOperandsDecodeVectorFuncMask = 0x00000004, } SpvTensorAddressingOperandsMask; typedef enum SpvTensorOperandsShift_ { @@ -2599,7 +2612,9 @@ typedef enum SpvOp_ { SpvOpCompositeConstructContinuedINTEL = 6096, SpvOpConvertFToBF16INTEL = 6116, SpvOpConvertBF16ToFINTEL = 6117, + SpvOpControlBarrierArriveEXT = 6142, SpvOpControlBarrierArriveINTEL = 6142, + SpvOpControlBarrierWaitEXT = 6143, SpvOpControlBarrierWaitINTEL = 6143, SpvOpArithmeticFenceEXT = 6145, SpvOpTaskSequenceCreateALTERA = 6163, @@ -2628,6 +2643,8 @@ typedef enum SpvOp_ { SpvOpSpecConstantArchitectureINTEL = 6252, SpvOpSpecConstantCapabilitiesINTEL = 6253, SpvOpConditionalCopyObjectINTEL = 6254, + SpvOpPredicatedLoadINTEL = 6258, + SpvOpPredicatedStoreINTEL = 6259, SpvOpGroupIMulKHR = 6401, SpvOpGroupFMulKHR = 6402, SpvOpGroupBitwiseAndKHR = 6403, @@ -3458,8 +3475,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpFixedExpALTERA: *hasResult = true; *hasResultType = true; break; case SpvOpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break; case SpvOpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break; - case SpvOpReadPipeBlockingALTERA: *hasResult = true; *hasResultType = true; break; - case SpvOpWritePipeBlockingALTERA: *hasResult = true; *hasResultType = true; break; + case SpvOpReadPipeBlockingALTERA: *hasResult = false; *hasResultType = false; break; + case SpvOpWritePipeBlockingALTERA: *hasResult = false; *hasResultType = false; break; case SpvOpFPGARegALTERA: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; @@ -3483,11 +3500,11 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break; case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break; + case SpvOpControlBarrierArriveEXT: *hasResult = false; *hasResultType = false; break; + case SpvOpControlBarrierWaitEXT: *hasResult = false; *hasResultType = false; break; case SpvOpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break; case SpvOpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break; case SpvOpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break; @@ -3510,6 +3527,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy case SpvOpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break; case SpvOpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpPredicatedLoadINTEL: *hasResult = true; *hasResultType = true; break; + case SpvOpPredicatedStoreINTEL: *hasResult = false; *hasResultType = false; break; case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break; case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break; @@ -3686,6 +3705,7 @@ inline const char* SpvExecutionModeToString(SpvExecutionMode value) { case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL"; case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR"; case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault"; + case SpvExecutionModeOpacityMicromapIdKHR: return "OpacityMicromapIdKHR"; case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL"; case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL"; case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL"; @@ -3885,6 +3905,7 @@ inline const char* SpvLinkageTypeToString(SpvLinkageType value) { case SpvLinkageTypeExport: return "Export"; case SpvLinkageTypeImport: return "Import"; case SpvLinkageTypeLinkOnceODR: return "LinkOnceODR"; + case SpvLinkageTypeWeakAMD: return "WeakAMD"; default: return "Unknown"; } } @@ -4375,6 +4396,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityDescriptorHeapEXT: return "DescriptorHeapEXT"; case SpvCapabilityConstantDataKHR: return "ConstantDataKHR"; case SpvCapabilityPoisonFreezeKHR: return "PoisonFreezeKHR"; + case SpvCapabilityWeakLinkageAMD: return "WeakLinkageAMD"; case SpvCapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV"; case SpvCapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV"; case SpvCapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT"; @@ -4438,6 +4460,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityCooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV"; case SpvCapabilityRayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV"; case SpvCapabilityTensorAddressingNV: return "TensorAddressingNV"; + case SpvCapabilityCooperativeMatrixDecodeVectorNV: return "CooperativeMatrixDecodeVectorNV"; case SpvCapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL"; case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL"; case SpvCapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL"; @@ -4491,6 +4514,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR"; case SpvCapabilityFloatControls2: return "FloatControls2"; case SpvCapabilityFMAKHR: return "FMAKHR"; + case SpvCapabilityRayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR"; case SpvCapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT"; case SpvCapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT"; case SpvCapabilityLongCompositesINTEL: return "LongCompositesINTEL"; @@ -4498,7 +4522,7 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT"; case SpvCapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL"; case SpvCapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL"; - case SpvCapabilitySplitBarrierINTEL: return "SplitBarrierINTEL"; + case SpvCapabilitySplitBarrierEXT: return "SplitBarrierEXT"; case SpvCapabilityArithmeticFenceEXT: return "ArithmeticFenceEXT"; case SpvCapabilityFPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA"; case SpvCapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL"; @@ -4517,6 +4541,8 @@ inline const char* SpvCapabilityToString(SpvCapability value) { case SpvCapabilityUntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL"; case SpvCapabilitySpecConditionalINTEL: return "SpecConditionalINTEL"; case SpvCapabilityFunctionVariantsINTEL: return "FunctionVariantsINTEL"; + case SpvCapabilityPredicatedIOINTEL: return "PredicatedIOINTEL"; + case SpvCapabilityRoundedDivideSqrtINTEL: return "RoundedDivideSqrtINTEL"; case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR"; case SpvCapabilityTensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL"; case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL"; @@ -5551,8 +5577,8 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL"; case SpvOpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL"; case SpvOpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL"; - case SpvOpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL"; - case SpvOpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL"; + case SpvOpControlBarrierArriveEXT: return "OpControlBarrierArriveEXT"; + case SpvOpControlBarrierWaitEXT: return "OpControlBarrierWaitEXT"; case SpvOpArithmeticFenceEXT: return "OpArithmeticFenceEXT"; case SpvOpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA"; case SpvOpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA"; @@ -5575,6 +5601,8 @@ inline const char* SpvOpToString(SpvOp value) { case SpvOpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL"; case SpvOpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL"; case SpvOpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL"; + case SpvOpPredicatedLoadINTEL: return "OpPredicatedLoadINTEL"; + case SpvOpPredicatedStoreINTEL: return "OpPredicatedStoreINTEL"; case SpvOpGroupIMulKHR: return "OpGroupIMulKHR"; case SpvOpGroupFMulKHR: return "OpGroupFMulKHR"; case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR"; diff --git a/src/vulkan/registry/vk.xml b/src/vulkan/registry/vk.xml index 02dee398103..0241edfe50d 100644 --- a/src/vulkan/registry/vk.xml +++ b/src/vulkan/registry/vk.xml @@ -188,7 +188,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 350 +#define VK_HEADER_VERSION 352 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) // Version of this file @@ -411,8 +411,8 @@ typedef void* MTLSharedEvent_id; typedef VkFlags VkDeviceFaultFlagsKHR; - typedef VkFlags VkBuildMicromapFlagsEXT; - typedef VkFlags VkMicromapCreateFlagsEXT; + typedef VkFlags VkBuildMicromapFlagsEXT; + typedef VkFlags VkMicromapCreateFlagsEXT; typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT; typedef VkFlags VkIndirectCommandsInputModeFlagsEXT; typedef VkFlags VkDirectDriverLoadingFlagsLUNARG; @@ -430,6 +430,9 @@ typedef void* MTLSharedEvent_id; typedef VkFlags VkVideoEncodeRgbRangeCompressionFlagsVALVE; typedef VkFlags VkVideoEncodeRgbChromaOffsetFlagsVALVE; typedef VkFlags VkSpirvResourceTypeFlagsEXT; + typedef VkFlags VkGpaSqShaderStageFlagsAMD; + typedef VkFlags VkGpaPerfBlockPropertiesFlagsAMD; + typedef VkFlags VkPhysicalDeviceGpaPropertiesFlagsAMD; typedef VkFlags VkAddressCommandFlagsKHR; WSI extensions @@ -645,6 +648,7 @@ typedef void* MTLSharedEvent_id; VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDataGraphPipelineSessionARM) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderInstrumentationARM) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkGpaSessionAMD) WSI extensions VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) @@ -872,8 +876,11 @@ typedef void* MTLSharedEvent_id; - - + + + + + @@ -926,6 +933,10 @@ typedef void* MTLSharedEvent_id; + + + + @@ -4482,6 +4493,11 @@ typedef void* MTLSharedEvent_id; uint32_t numAvailableSgprs uint32_t computeWorkGroupSize[3] + + VkStructureType sType + void* pNext + VkBool32 elapsedTimerQuery + VkStructureType sType const void* pNext @@ -6393,6 +6409,80 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 deviceCoherentMemory + + VkGpaPerfBlockAMD blockType + VkGpaPerfBlockPropertiesFlagsAMD flags + uint32_t instanceCount + uint32_t maxEventID + uint32_t maxGlobalOnlyCounters + uint32_t maxGlobalSharedCounters + uint32_t maxStreamingCounters + + + VkStructureType sType + void* pNext + VkBool32 perfCounters + VkBool32 streamingPerfCounters + VkBool32 sqThreadTracing + VkBool32 clockModes + + + VkStructureType sType + void* pNext + VkPhysicalDeviceGpaPropertiesFlagsAMD flags + VkDeviceSize maxSqttSeBufferSize + uint32_t shaderEngineCount + uint32_t perfBlockCount + VkGpaPerfBlockPropertiesAMD* pPerfBlocks + + + VkStructureType sType + void* pNext + uint32_t revisionId + + + VkGpaPerfBlockAMD blockType + uint32_t blockInstance + uint32_t eventID + + + VkStructureType sType + const void* pNext + VkGpaSampleTypeAMD sampleType + VkBool32 sampleInternalOperations + VkBool32 cacheFlushOnCounterCollection + VkBool32 sqShaderMaskEnable + VkGpaSqShaderStageFlagsAMD sqShaderMask + uint32_t perfCounterCount + const VkGpaPerfCounterAMD* pPerfCounters + uint32_t streamingPerfTraceSampleInterval + VkDeviceSize perfCounterDeviceMemoryLimit + VkBool32 sqThreadTraceEnable + VkBool32 sqThreadTraceSuppressInstructionTokens + VkDeviceSize sqThreadTraceDeviceMemoryLimit + VkPipelineStageFlags timingPreSample + VkPipelineStageFlags timingPostSample + + + VkStructureType sType + const void* pNext + VkGpaDeviceClockModeAMD clockMode + float memoryClockRatioToPeak + float engineClockRatioToPeak + + + VkStructureType sType + void* pNext + float memoryClockRatioToPeak + float engineClockRatioToPeak + uint32_t memoryClockFrequency + uint32_t engineClockFrequency + + + VkStructureType sType + const void* pNext + VkGpaSessionAMD secondaryCopySource + VkStructureType sType void* pNext @@ -9350,97 +9440,135 @@ typedef void* MTLSharedEvent_id; VkBool32 subpassMergeFeedback - VkStructureType sType - const void* pNext - VkMicromapTypeEXT type - VkBuildMicromapFlagsEXT flags - VkBuildMicromapModeEXT mode - VkMicromapEXT dstMicromap - uint32_t usageCountsCount - const VkMicromapUsageEXT* pUsageCounts + VkStructureType sType + const void* pNext + VkMicromapTypeEXT type + VkBuildMicromapFlagsEXT flags + VkBuildMicromapModeEXT mode + VkMicromapEXT dstMicromap + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts const VkMicromapUsageEXT* const* ppUsageCounts VkDeviceOrHostAddressConstKHR data VkDeviceOrHostAddressKHR scratchData VkDeviceOrHostAddressConstKHR triangleArray VkDeviceSize triangleArrayStride + + VkStructureType sType + const void* pNext + uint32_t usageCountsCount + const VkMicromapUsageKHR* pUsageCounts + const VkMicromapUsageKHR* const* ppUsageCounts + VkDeviceAddress data + VkDeviceAddress triangleArray + VkDeviceSize triangleArrayStride + VkStructureType sType - const void* pNext - VkMicromapCreateFlagsEXT createFlags - VkBuffer buffer - VkDeviceSize offsetSpecified in bytes - VkDeviceSize size - VkMicromapTypeEXT type - VkDeviceAddress deviceAddress + const void* pNext + VkMicromapCreateFlagsEXT createFlags + VkBuffer buffer + VkDeviceSize offsetSpecified in bytes + VkDeviceSize size + VkMicromapTypeEXT type + VkDeviceAddress deviceAddress VkStructureType sType - const void* pNext + const void* pNext const uint8_t* pVersionData VkStructureType sType - const void* pNext - VkMicromapEXT src - VkMicromapEXT dst - VkCopyMicromapModeEXT mode + const void* pNext + VkMicromapEXT src + VkMicromapEXT dst + VkCopyMicromapModeEXT mode VkStructureType sType - const void* pNext - VkMicromapEXT src - VkDeviceOrHostAddressKHR dst - VkCopyMicromapModeEXT mode + const void* pNext + VkMicromapEXT src + VkDeviceOrHostAddressKHR dst + VkCopyMicromapModeEXT mode VkStructureType sType - const void* pNext - VkDeviceOrHostAddressConstKHR src - VkMicromapEXT dst - VkCopyMicromapModeEXT mode + const void* pNext + VkDeviceOrHostAddressConstKHR src + VkMicromapEXT dst + VkCopyMicromapModeEXT mode VkStructureType sType - const void* pNext - VkDeviceSize micromapSize - VkDeviceSize buildScratchSize - VkBool32 discardable + const void* pNext + VkDeviceSize micromapSize + VkDeviceSize buildScratchSize + VkBool32 discardable + + + uint32_t count + uint32_t subdivisionLevel + VkOpacityMicromapFormatKHR format uint32_t count uint32_t subdivisionLevel uint32_t formatInterpretation depends on parent type - + uint32_t dataOffsetSpecified in bytes uint16_t subdivisionLevel uint16_t format + + + VkStructureType sType + void* pNext + VkBool32 micromap + VkStructureType sType - void* pNext - VkBool32 micromap - VkBool32 micromapCaptureReplay - VkBool32 micromapHostCommands + void* pNext + VkBool32 micromap + VkBool32 micromapCaptureReplay + VkBool32 micromapHostCommands + + + VkStructureType sType + void* pNext + uint32_t maxOpacity2StateSubdivisionLevel + uint32_t maxOpacity4StateSubdivisionLevel + uint32_t maxOpacityLossy4StateSubdivisionLevel + uint64_t maxMicromapTriangles VkStructureType sType - void* pNext - uint32_t maxOpacity2StateSubdivisionLevel - uint32_t maxOpacity4StateSubdivisionLevel + void* pNext + uint32_t maxOpacity2StateSubdivisionLevel + uint32_t maxOpacity4StateSubdivisionLevel + + + VkStructureType sType + void* pNext + VkIndexType indexType + VkDeviceAddress indexBuffer + VkDeviceSize indexStride + uint32_t baseTriangle + VkAccelerationStructureKHR micromap VkStructureType sType - void* pNext - VkIndexType indexType - VkDeviceOrHostAddressConstKHR indexBuffer - VkDeviceSize indexStride - uint32_t baseTriangle - uint32_t usageCountsCount - const VkMicromapUsageEXT* pUsageCounts - const VkMicromapUsageEXT* const* ppUsageCounts - VkMicromapEXT micromap + void* pNext + VkIndexType indexType + VkDeviceOrHostAddressConstKHR indexBuffer + VkDeviceSize indexStride + uint32_t baseTriangle + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts + const VkMicromapUsageEXT* const* ppUsageCounts + VkMicromapEXT micromap VkStructureType sType @@ -9602,6 +9730,16 @@ typedef void* MTLSharedEvent_id; VkExtent2D filterSize uint32_t numPhases + + VkStructureType sType + void* pNext + VkBool32 shaderMultipleWaitQueues + + + VkStructureType sType + void* pNext + uint32_t maxShaderWaitQueues + VkStructureType sType void* pNext @@ -10376,6 +10514,13 @@ typedef void* MTLSharedEvent_id; VkExtent2D windowExtent VkBlockMatchWindowCompareModeQCOM windowCompareMode + + VkStructureType sType + void* pNext + VkBool32 imageGatherLinear + VkBool32 imageGatherExtendedModes + VkBool32 blockMatchExtendedClampToEdge + VkStructureType sType void* pNext @@ -10703,6 +10848,11 @@ typedef void* MTLSharedEvent_id; VkScopeKHR scope uint32_t workgroupInvocations + + VkStructureType sType + void* pNext + VkBool32 cooperativeMatrixDecodeVector + VkStructureType sType void* pNext @@ -11573,6 +11723,16 @@ typedef void* MTLSharedEvent_id; const void* pNext uint32_t subsampledImageDescriptorCount + + VkStructureType sType + void* pNext + VkBool32 shaderSplitBarrier + + + VkStructureType sType + void* pNext + uint32_t splitBarrierReservedSharedMemory + VkStructureType sType void* pNext @@ -11826,7 +11986,7 @@ typedef void* MTLSharedEvent_id; uint32_t maxWidth uint32_t maxHeight - + VkStructureType sType const void* pNext VkDataGraphOpticalFlowImageUsageFlagsARM usage @@ -13161,6 +13321,7 @@ typedef void* MTLSharedEvent_id; + @@ -13972,15 +14133,18 @@ typedef void* MTLSharedEvent_id; - - - + + + - - - - - + + + + + + + + @@ -14226,6 +14390,89 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18260,93 +18507,93 @@ endif::VK_KHR_internally_synchronized_queues[] VkResult vkCreateMicromapEXT VkDevice device - const VkMicromapCreateInfoEXT* pCreateInfo + const VkMicromapCreateInfoEXT* pCreateInfo const VkAllocationCallbacks* pAllocator - VkMicromapEXT* pMicromap + VkMicromapEXT* pMicromap void vkCmdBuildMicromapsEXT - VkCommandBuffer commandBuffer - uint32_t infoCount + VkCommandBuffer commandBuffer + uint32_t infoCount const VkMicromapBuildInfoEXT* pInfos VkResult vkBuildMicromapsEXT - VkDevice device - VkDeferredOperationKHR deferredOperation - uint32_t infoCount + VkDevice device + VkDeferredOperationKHR deferredOperation + uint32_t infoCount const VkMicromapBuildInfoEXT* pInfos void vkDestroyMicromapEXT - VkDevice device + VkDevice device VkMicromapEXT micromap - const VkAllocationCallbacks* pAllocator + const VkAllocationCallbacks* pAllocator void vkCmdCopyMicromapEXT VkCommandBuffer commandBuffer - const VkCopyMicromapInfoEXT* pInfo + const VkCopyMicromapInfoEXT* pInfo VkResult vkCopyMicromapEXT - VkDevice device + VkDevice device VkDeferredOperationKHR deferredOperation - const VkCopyMicromapInfoEXT* pInfo + const VkCopyMicromapInfoEXT* pInfo void vkCmdCopyMicromapToMemoryEXT - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer const VkCopyMicromapToMemoryInfoEXT* pInfo VkResult vkCopyMicromapToMemoryEXT - VkDevice device + VkDevice device VkDeferredOperationKHR deferredOperation - const VkCopyMicromapToMemoryInfoEXT* pInfo + const VkCopyMicromapToMemoryInfoEXT* pInfo void vkCmdCopyMemoryToMicromapEXT - VkCommandBuffer commandBuffer + VkCommandBuffer commandBuffer const VkCopyMemoryToMicromapInfoEXT* pInfo VkResult vkCopyMemoryToMicromapEXT - VkDevice device + VkDevice device VkDeferredOperationKHR deferredOperation - const VkCopyMemoryToMicromapInfoEXT* pInfo + const VkCopyMemoryToMicromapInfoEXT* pInfo void vkCmdWriteMicromapsPropertiesEXT VkCommandBuffer commandBuffer - uint32_t micromapCount + uint32_t micromapCount const VkMicromapEXT* pMicromaps - VkQueryType queryType - VkQueryPool queryPool - uint32_t firstQuery + VkQueryType queryType + VkQueryPool queryPool + uint32_t firstQuery VkResult vkWriteMicromapsPropertiesEXT - VkDevice device - uint32_t micromapCount + VkDevice device + uint32_t micromapCount const VkMicromapEXT* pMicromaps - VkQueryType queryType - size_t dataSize - void* pData - size_t stride + VkQueryType queryType + size_t dataSize + void* pData + size_t stride void vkGetDeviceMicromapCompatibilityEXT - VkDevice device - const VkMicromapVersionInfoEXT* pVersionInfo + VkDevice device + const VkMicromapVersionInfoEXT* pVersionInfo VkAccelerationStructureCompatibilityKHR* pCompatibility void vkGetMicromapBuildSizesEXT - VkDevice device - VkAccelerationStructureBuildTypeKHR buildType - const VkMicromapBuildInfoEXT* pBuildInfo - VkMicromapBuildSizesInfoEXT* pSizeInfo + VkDevice device + VkAccelerationStructureBuildTypeKHR buildType + const VkMicromapBuildInfoEXT* pBuildInfo + VkMicromapBuildSizesInfoEXT* pSizeInfo void vkGetShaderModuleIdentifierEXT @@ -18597,6 +18844,75 @@ endif::VK_KHR_internally_synchronized_queues[] VkDeviceSize scratchSize VkDeviceAddress countInfo + + VkResult vkCreateGpaSessionAMD + VkDevice device + const VkGpaSessionCreateInfoAMD* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkGpaSessionAMD* pGpaSession + + + void vkDestroyGpaSessionAMD + VkDevice device + VkGpaSessionAMD gpaSession + const VkAllocationCallbacks* pAllocator + + + VkResult vkSetGpaDeviceClockModeAMD + VkDevice device + VkGpaDeviceClockModeInfoAMD* pInfo + + + VkResult vkGetGpaDeviceClockInfoAMD + VkDevice device + VkGpaDeviceGetClockInfoAMD* pInfo + + + VkResult vkCmdBeginGpaSessionAMD + VkCommandBuffer commandBuffer + VkGpaSessionAMD gpaSession + + + VkResult vkCmdEndGpaSessionAMD + VkCommandBuffer commandBuffer + VkGpaSessionAMD gpaSession + + + VkResult vkCmdBeginGpaSampleAMD + VkCommandBuffer commandBuffer + VkGpaSessionAMD gpaSession + const VkGpaSampleBeginInfoAMD* pGpaSampleBeginInfo + uint32_t* pSampleID + + + void vkCmdEndGpaSampleAMD + VkCommandBuffer commandBuffer + VkGpaSessionAMD gpaSession + uint32_t sampleID + + + VkResult vkGetGpaSessionStatusAMD + VkDevice device + VkGpaSessionAMD gpaSession + + + VkResult vkGetGpaSessionResultsAMD + VkDevice device + VkGpaSessionAMD gpaSession + uint32_t sampleID + size_t* pSizeInBytes + void* pData + + + VkResult vkResetGpaSessionAMD + VkDevice device + VkGpaSessionAMD gpaSession + + + void vkCmdCopyGpaSessionResultsAMD + VkCommandBuffer commandBuffer + VkGpaSessionAMD gpaSession + void vkCmdBindDescriptorSets2 VkCommandBuffer commandBuffer @@ -23126,10 +23442,48 @@ endif::VK_KHR_internally_synchronized_queues[] - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -24161,10 +24515,14 @@ endif::VK_KHR_internally_synchronized_queues[] - + - - + + + + + + @@ -24815,8 +25173,8 @@ endif::VK_KHR_internally_synchronized_queues[] - - + + @@ -25860,7 +26218,7 @@ endif::VK_KHR_internally_synchronized_queues[] - + @@ -25973,25 +26331,38 @@ endif::VK_KHR_internally_synchronized_queues[] - + - - + + + + + - + - + - - + + + + + + + - + - - + + + + + + + @@ -25999,6 +26370,11 @@ endif::VK_KHR_internally_synchronized_queues[] + + + + + @@ -27474,39 +27850,45 @@ endif::VK_KHR_internally_synchronized_queues[] - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + @@ -27545,6 +27927,11 @@ endif::VK_KHR_internally_synchronized_queues[] + + + + + @@ -28611,9 +28998,6 @@ endif::VK_KHR_internally_synchronized_queues[] - - - @@ -28661,10 +29045,6 @@ endif::VK_KHR_internally_synchronized_queues[] - - - - @@ -30159,7 +30539,7 @@ endif::VK_KHR_internally_synchronized_queues[] - + @@ -30820,17 +31200,39 @@ endif::VK_KHR_internally_synchronized_queues[] - + - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + - + @@ -31436,10 +31838,32 @@ endif::VK_KHR_internally_synchronized_queues[] - + - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -33304,9 +33728,15 @@ endif::VK_KHR_internally_synchronized_queues[] + + + + + + @@ -33318,6 +33748,13 @@ endif::VK_KHR_internally_synchronized_queues[] + + + + + + + @@ -33373,6 +33810,9 @@ endif::VK_KHR_internally_synchronized_queues[] + + + @@ -33886,12 +34326,24 @@ endif::VK_KHR_internally_synchronized_queues[] + + + + + + + + + + + + @@ -33973,6 +34425,9 @@ endif::VK_KHR_internally_synchronized_queues[] + + + @@ -33996,6 +34451,12 @@ endif::VK_KHR_internally_synchronized_queues[] + + + + + +