vulkan, spirv: Update to Vulkan 1.3.226 and latest SPIR-V headers.
Done using the "khronos-update.py" script, leaving out parts that are not relevant to Vulkan. Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18366>
This commit is contained in:
@@ -919,6 +919,8 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
|
||||
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
|
||||
@@ -2284,14 +2286,16 @@ typedef enum VkPipelineStageFlagBits {
|
||||
VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
|
||||
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
|
||||
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
|
||||
VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
|
||||
VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
|
||||
VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
|
||||
VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
|
||||
VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
|
||||
VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
|
||||
VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
|
||||
VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
|
||||
VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
|
||||
VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
|
||||
VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
|
||||
VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
|
||||
VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
|
||||
VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkPipelineStageFlagBits;
|
||||
@@ -2490,8 +2494,8 @@ typedef enum VkShaderStageFlagBits {
|
||||
VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
|
||||
VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
|
||||
VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
|
||||
VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
|
||||
VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
|
||||
VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
|
||||
VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
|
||||
VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
|
||||
VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
|
||||
VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
|
||||
@@ -2499,6 +2503,8 @@ typedef enum VkShaderStageFlagBits {
|
||||
VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
|
||||
VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
|
||||
VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
|
||||
VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
|
||||
VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
|
||||
VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkShaderStageFlagBits;
|
||||
|
||||
@@ -6443,6 +6449,8 @@ static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
|
||||
static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
|
||||
@@ -12989,6 +12997,7 @@ typedef enum VkIndirectCommandsTokenTypeNV {
|
||||
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
|
||||
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
|
||||
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
|
||||
VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
|
||||
VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
|
||||
} VkIndirectCommandsTokenTypeNV;
|
||||
|
||||
@@ -14987,6 +14996,87 @@ typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
|
||||
} VkPhysicalDeviceRayQueryFeaturesKHR;
|
||||
|
||||
|
||||
|
||||
#define VK_EXT_mesh_shader 1
|
||||
#define VK_EXT_MESH_SHADER_SPEC_VERSION 1
|
||||
#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
|
||||
typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 taskShader;
|
||||
VkBool32 meshShader;
|
||||
VkBool32 multiviewMeshShader;
|
||||
VkBool32 primitiveFragmentShadingRateMeshShader;
|
||||
} VkPhysicalDeviceMeshShaderFeaturesEXT;
|
||||
|
||||
typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t maxTaskWorkGroupTotalCount;
|
||||
uint32_t maxTaskWorkGroupCount[3];
|
||||
uint32_t maxTaskWorkGroupInvocations;
|
||||
uint32_t maxTaskWorkGroupSize[3];
|
||||
uint32_t maxTaskPayloadSize;
|
||||
uint32_t maxTaskSharedMemorySize;
|
||||
uint32_t maxTaskPayloadAndSharedMemorySize;
|
||||
uint32_t maxMeshWorkGroupTotalCount;
|
||||
uint32_t maxMeshWorkGroupCount[3];
|
||||
uint32_t maxMeshWorkGroupInvocations;
|
||||
uint32_t maxMeshWorkGroupSize[3];
|
||||
uint32_t maxMeshSharedMemorySize;
|
||||
uint32_t maxMeshPayloadAndSharedMemorySize;
|
||||
uint32_t maxMeshOutputMemorySize;
|
||||
uint32_t maxMeshPayloadAndOutputMemorySize;
|
||||
uint32_t maxMeshOutputComponents;
|
||||
uint32_t maxMeshOutputVertices;
|
||||
uint32_t maxMeshOutputPrimitives;
|
||||
uint32_t maxMeshOutputLayers;
|
||||
uint32_t maxMeshMultiviewViewCount;
|
||||
uint32_t meshOutputPerVertexGranularity;
|
||||
uint32_t meshOutputPerPrimitiveGranularity;
|
||||
uint32_t maxPreferredTaskWorkGroupInvocations;
|
||||
uint32_t maxPreferredMeshWorkGroupInvocations;
|
||||
VkBool32 prefersLocalInvocationVertexOutput;
|
||||
VkBool32 prefersLocalInvocationPrimitiveOutput;
|
||||
VkBool32 prefersCompactVertexOutput;
|
||||
VkBool32 prefersCompactPrimitiveOutput;
|
||||
VkQueryPipelineStatisticFlags meshShadingAffectedPipelineStatistics;
|
||||
} VkPhysicalDeviceMeshShaderPropertiesEXT;
|
||||
|
||||
typedef struct VkDrawMeshTasksIndirectCommandEXT {
|
||||
uint32_t groupCountX;
|
||||
uint32_t groupCountY;
|
||||
uint32_t groupCountZ;
|
||||
} VkDrawMeshTasksIndirectCommandEXT;
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
uint32_t groupCountX,
|
||||
uint32_t groupCountY,
|
||||
uint32_t groupCountZ);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkBuffer buffer,
|
||||
VkDeviceSize offset,
|
||||
uint32_t drawCount,
|
||||
uint32_t stride);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkBuffer buffer,
|
||||
VkDeviceSize offset,
|
||||
VkBuffer countBuffer,
|
||||
VkDeviceSize countBufferOffset,
|
||||
uint32_t maxDrawCount,
|
||||
uint32_t stride);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -4771,6 +4771,30 @@
|
||||
"extensions" : [ "SPV_NV_shader_image_footprint" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpEmitMeshTasksEXT",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5294,
|
||||
"operands" : [
|
||||
{ "kind" : "IdRef", "name" : "'Group Count X'" },
|
||||
{ "kind" : "IdRef", "name" : "'Group Count Y'" },
|
||||
{ "kind" : "IdRef", "name" : "'Group Count Z'" },
|
||||
{ "kind" : "IdRef", "quantifier" : "?", "name" : "'Payload'" }
|
||||
],
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpSetMeshOutputsEXT",
|
||||
"class" : "Reserved",
|
||||
"opcode" : 5295,
|
||||
"operands" : [
|
||||
{ "kind" : "IdRef", "name" : "'Vertex Count'" },
|
||||
{ "kind" : "IdRef", "name" : "'Primitive Count'" }
|
||||
],
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"opname" : "OpGroupNonUniformPartitionNV",
|
||||
"class" : "Non-Uniform",
|
||||
@@ -9578,6 +9602,18 @@
|
||||
"value" : 5318,
|
||||
"capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "TaskEXT",
|
||||
"value" : 5364,
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "MeshEXT",
|
||||
"value" : 5365,
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"version" : "None"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -9793,7 +9829,7 @@
|
||||
{
|
||||
"enumerant" : "OutputVertices",
|
||||
"value" : 26,
|
||||
"capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV" ],
|
||||
"capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"parameters" : [
|
||||
{ "kind" : "LiteralInteger", "name" : "'Vertex count'" }
|
||||
]
|
||||
@@ -9801,7 +9837,7 @@
|
||||
{
|
||||
"enumerant" : "OutputPoints",
|
||||
"value" : 27,
|
||||
"capabilities" : [ "Geometry", "MeshShadingNV" ]
|
||||
"capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ]
|
||||
},
|
||||
{
|
||||
"enumerant" : "OutputLineStrip",
|
||||
@@ -10009,18 +10045,35 @@
|
||||
{
|
||||
"enumerant" : "OutputLinesNV",
|
||||
"value" : 5269,
|
||||
"capabilities" : [ "MeshShadingNV" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader" ],
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "OutputLinesEXT",
|
||||
"value" : 5269,
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "OutputPrimitivesNV",
|
||||
"value" : 5270,
|
||||
"capabilities" : [ "MeshShadingNV" ],
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"parameters" : [
|
||||
{ "kind" : "LiteralInteger", "name" : "'Primitive count'" }
|
||||
],
|
||||
"extensions" : [ "SPV_NV_mesh_shader" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "OutputPrimitivesEXT",
|
||||
"value" : 5270,
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"parameters" : [
|
||||
{ "kind" : "LiteralInteger", "name" : "'Primitive count'" }
|
||||
],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
@@ -10040,8 +10093,15 @@
|
||||
{
|
||||
"enumerant" : "OutputTrianglesNV",
|
||||
"value" : 5298,
|
||||
"capabilities" : [ "MeshShadingNV" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader" ],
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "OutputTrianglesEXT",
|
||||
"value" : 5298,
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
@@ -10356,6 +10416,13 @@
|
||||
"capabilities" : [ "PhysicalStorageBufferAddresses" ],
|
||||
"version" : "1.5"
|
||||
},
|
||||
{
|
||||
"enumerant" : "TaskPayloadWorkgroupEXT",
|
||||
"value" : 5402,
|
||||
"extensions" : [ "SPV_EXT_mesh_shader" ],
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"version" : "1.5"
|
||||
},
|
||||
{
|
||||
"enumerant" : "CodeSectionINTEL",
|
||||
"value" : 5605,
|
||||
@@ -11471,8 +11538,15 @@
|
||||
{
|
||||
"enumerant" : "PerPrimitiveNV",
|
||||
"value" : 5271,
|
||||
"capabilities" : [ "MeshShadingNV" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader" ],
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "PerPrimitiveEXT",
|
||||
"value" : 5271,
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
@@ -11485,8 +11559,8 @@
|
||||
{
|
||||
"enumerant" : "PerTaskNV",
|
||||
"value" : 5273,
|
||||
"capabilities" : [ "MeshShadingNV" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader" ],
|
||||
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
@@ -11952,7 +12026,7 @@
|
||||
{
|
||||
"enumerant" : "PrimitiveId",
|
||||
"value" : 7,
|
||||
"capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV" ]
|
||||
"capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ]
|
||||
},
|
||||
{
|
||||
"enumerant" : "InvocationId",
|
||||
@@ -11962,12 +12036,12 @@
|
||||
{
|
||||
"enumerant" : "Layer",
|
||||
"value" : 9,
|
||||
"capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV" ]
|
||||
"capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
|
||||
},
|
||||
{
|
||||
"enumerant" : "ViewportIndex",
|
||||
"value" : 10,
|
||||
"capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV" ]
|
||||
"capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
|
||||
},
|
||||
{
|
||||
"enumerant" : "TessLevelOuter",
|
||||
@@ -12200,8 +12274,8 @@
|
||||
{
|
||||
"enumerant" : "DrawIndex",
|
||||
"value" : 4426,
|
||||
"capabilities" : [ "DrawParameters", "MeshShadingNV" ],
|
||||
"extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader" ],
|
||||
"capabilities" : [ "DrawParameters", "MeshShadingNV", "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
|
||||
"version" : "1.3"
|
||||
},
|
||||
{
|
||||
@@ -12435,6 +12509,34 @@
|
||||
"extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "PrimitivePointIndicesEXT",
|
||||
"value" : 5294,
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "PrimitiveLineIndicesEXT",
|
||||
"value" : 5295,
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "PrimitiveTriangleIndicesEXT",
|
||||
"value" : 5296,
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "CullPrimitiveEXT",
|
||||
"value" : 5299,
|
||||
"capabilities" : [ "MeshShadingEXT" ],
|
||||
"extensions" : [ "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "LaunchIdNV",
|
||||
"value" : 5319,
|
||||
@@ -13466,6 +13568,13 @@
|
||||
"extensions" : [ "SPV_NV_shader_image_footprint" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "MeshShadingEXT",
|
||||
"value" : 5283,
|
||||
"capabilities" : [ "Shader" ],
|
||||
"extensions" : [ "SPV_EXT_mesh_shader" ],
|
||||
"version" : "None"
|
||||
},
|
||||
{
|
||||
"enumerant" : "FragmentBarycentricKHR",
|
||||
"value" : 5284,
|
||||
|
@@ -98,6 +98,8 @@ typedef enum SpvExecutionModel_ {
|
||||
SpvExecutionModelMissNV = 5317,
|
||||
SpvExecutionModelCallableKHR = 5318,
|
||||
SpvExecutionModelCallableNV = 5318,
|
||||
SpvExecutionModelTaskEXT = 5364,
|
||||
SpvExecutionModelMeshEXT = 5365,
|
||||
SpvExecutionModelMax = 0x7fffffff,
|
||||
} SpvExecutionModel;
|
||||
|
||||
@@ -173,10 +175,13 @@ typedef enum SpvExecutionMode_ {
|
||||
SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
|
||||
SpvExecutionModeStencilRefGreaterBackAMD = 5083,
|
||||
SpvExecutionModeStencilRefLessBackAMD = 5084,
|
||||
SpvExecutionModeOutputLinesEXT = 5269,
|
||||
SpvExecutionModeOutputLinesNV = 5269,
|
||||
SpvExecutionModeOutputPrimitivesEXT = 5270,
|
||||
SpvExecutionModeOutputPrimitivesNV = 5270,
|
||||
SpvExecutionModeDerivativeGroupQuadsNV = 5289,
|
||||
SpvExecutionModeDerivativeGroupLinearNV = 5290,
|
||||
SpvExecutionModeOutputTrianglesEXT = 5298,
|
||||
SpvExecutionModeOutputTrianglesNV = 5298,
|
||||
SpvExecutionModePixelInterlockOrderedEXT = 5366,
|
||||
SpvExecutionModePixelInterlockUnorderedEXT = 5367,
|
||||
@@ -226,6 +231,7 @@ typedef enum SpvStorageClass_ {
|
||||
SpvStorageClassShaderRecordBufferNV = 5343,
|
||||
SpvStorageClassPhysicalStorageBuffer = 5349,
|
||||
SpvStorageClassPhysicalStorageBufferEXT = 5349,
|
||||
SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
|
||||
SpvStorageClassCodeSectionINTEL = 5605,
|
||||
SpvStorageClassDeviceOnlyINTEL = 5936,
|
||||
SpvStorageClassHostOnlyINTEL = 5937,
|
||||
@@ -508,6 +514,7 @@ typedef enum SpvDecoration_ {
|
||||
SpvDecorationPassthroughNV = 5250,
|
||||
SpvDecorationViewportRelativeNV = 5252,
|
||||
SpvDecorationSecondaryViewportRelativeNV = 5256,
|
||||
SpvDecorationPerPrimitiveEXT = 5271,
|
||||
SpvDecorationPerPrimitiveNV = 5271,
|
||||
SpvDecorationPerViewNV = 5272,
|
||||
SpvDecorationPerTaskNV = 5273,
|
||||
@@ -657,6 +664,10 @@ typedef enum SpvBuiltIn_ {
|
||||
SpvBuiltInFragmentSizeNV = 5292,
|
||||
SpvBuiltInFragInvocationCountEXT = 5293,
|
||||
SpvBuiltInInvocationsPerPixelNV = 5293,
|
||||
SpvBuiltInPrimitivePointIndicesEXT = 5294,
|
||||
SpvBuiltInPrimitiveLineIndicesEXT = 5295,
|
||||
SpvBuiltInPrimitiveTriangleIndicesEXT = 5296,
|
||||
SpvBuiltInCullPrimitiveEXT = 5299,
|
||||
SpvBuiltInLaunchIdKHR = 5319,
|
||||
SpvBuiltInLaunchIdNV = 5319,
|
||||
SpvBuiltInLaunchSizeKHR = 5320,
|
||||
@@ -997,6 +1008,7 @@ typedef enum SpvCapability_ {
|
||||
SpvCapabilityFragmentFullyCoveredEXT = 5265,
|
||||
SpvCapabilityMeshShadingNV = 5266,
|
||||
SpvCapabilityImageFootprintNV = 5282,
|
||||
SpvCapabilityMeshShadingEXT = 5283,
|
||||
SpvCapabilityFragmentBarycentricKHR = 5284,
|
||||
SpvCapabilityFragmentBarycentricNV = 5284,
|
||||
SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
|
||||
@@ -1596,6 +1608,8 @@ typedef enum SpvOp_ {
|
||||
SpvOpFragmentFetchAMD = 5012,
|
||||
SpvOpReadClockKHR = 5056,
|
||||
SpvOpImageSampleFootprintNV = 5283,
|
||||
SpvOpEmitMeshTasksEXT = 5294,
|
||||
SpvOpSetMeshOutputsEXT = 5295,
|
||||
SpvOpGroupNonUniformPartitionNV = 5296,
|
||||
SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
|
||||
SpvOpReportIntersectionKHR = 5334,
|
||||
@@ -2269,6 +2283,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
|
||||
case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
|
||||
case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
|
||||
case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
|
||||
|
@@ -4119,6 +4119,52 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
||||
<member><type>uint32_t</type> <name>taskCount</name></member>
|
||||
<member><type>uint32_t</type> <name>firstTask</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceMeshShaderFeaturesEXT" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true"><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>taskShader</name></member>
|
||||
<member><type>VkBool32</type> <name>meshShader</name></member>
|
||||
<member><type>VkBool32</type> <name>multiviewMeshShader</name></member>
|
||||
<member><type>VkBool32</type> <name>primitiveFragmentShadingRateMeshShader</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceMeshShaderPropertiesEXT" returnedonly="true" structextends="VkPhysicalDeviceProperties2">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true"><type>void</type>* <name>pNext</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxTaskWorkGroupTotalCount</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxTaskWorkGroupCount</name>[3]</member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxTaskWorkGroupInvocations</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxTaskWorkGroupSize</name>[3]</member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxTaskPayloadSize</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxTaskSharedMemorySize</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxTaskPayloadAndSharedMemorySize</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshWorkGroupTotalCount</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshWorkGroupCount</name>[3]</member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshWorkGroupInvocations</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshWorkGroupSize</name>[3]</member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshSharedMemorySize</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshPayloadAndSharedMemorySize</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshOutputMemorySize</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshPayloadAndOutputMemorySize</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshOutputComponents</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshOutputVertices</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshOutputPrimitives</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshOutputLayers</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxMeshMultiviewViewCount</name></member>
|
||||
<member limittype="noauto"><type>uint32_t</type> <name>meshOutputPerVertexGranularity</name></member>
|
||||
<member limittype="noauto"><type>uint32_t</type> <name>meshOutputPerPrimitiveGranularity</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxPreferredTaskWorkGroupInvocations</name></member>
|
||||
<member limittype="max"><type>uint32_t</type> <name>maxPreferredMeshWorkGroupInvocations</name></member>
|
||||
<member limittype="noauto"><type>VkBool32</type> <name>prefersLocalInvocationVertexOutput</name></member>
|
||||
<member limittype="noauto"><type>VkBool32</type> <name>prefersLocalInvocationPrimitiveOutput</name></member>
|
||||
<member limittype="noauto"><type>VkBool32</type> <name>prefersCompactVertexOutput</name></member>
|
||||
<member limittype="noauto"><type>VkBool32</type> <name>prefersCompactPrimitiveOutput</name></member>
|
||||
<member limittype="bitmask"><type>VkQueryPipelineStatisticFlags</type> <name>meshShadingAffectedPipelineStatistics</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkDrawMeshTasksIndirectCommandEXT">
|
||||
<member noautovalidity="true"><type>uint32_t</type> <name>groupCountX</name></member>
|
||||
<member noautovalidity="true"><type>uint32_t</type> <name>groupCountY</name></member>
|
||||
<member noautovalidity="true"><type>uint32_t</type> <name>groupCountZ</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkRayTracingShaderGroupCreateInfoNV">
|
||||
<member values="VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
@@ -11185,6 +11231,31 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
||||
<param><type>uint32_t</type> <name>maxDrawCount</name></param>
|
||||
<param><type>uint32_t</type> <name>stride</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdDrawMeshTasksEXT</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param><type>uint32_t</type> <name>groupCountX</name></param>
|
||||
<param><type>uint32_t</type> <name>groupCountY</name></param>
|
||||
<param><type>uint32_t</type> <name>groupCountZ</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdDrawMeshTasksIndirectEXT</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param><type>VkBuffer</type> <name>buffer</name></param>
|
||||
<param><type>VkDeviceSize</type> <name>offset</name></param>
|
||||
<param><type>uint32_t</type> <name>drawCount</name></param>
|
||||
<param><type>uint32_t</type> <name>stride</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdDrawMeshTasksIndirectCountEXT</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param><type>VkBuffer</type> <name>buffer</name></param>
|
||||
<param><type>VkDeviceSize</type> <name>offset</name></param>
|
||||
<param><type>VkBuffer</type> <name>countBuffer</name></param>
|
||||
<param><type>VkDeviceSize</type> <name>countBufferOffset</name></param>
|
||||
<param><type>uint32_t</type> <name>maxDrawCount</name></param>
|
||||
<param><type>uint32_t</type> <name>stride</name></param>
|
||||
</command>
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
|
||||
<proto><type>VkResult</type> <name>vkCompileDeferredNV</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
@@ -17788,8 +17859,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
||||
<enum bitpos="19" extends="VkAccessFlagBits2" name="VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"/>
|
||||
</require>
|
||||
<require extension="VK_NV_mesh_shader">
|
||||
<enum bitpos="19" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"/>
|
||||
<enum bitpos="20" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"/>
|
||||
<enum extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV" alias="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"/>
|
||||
<enum extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV" alias="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"/>
|
||||
</require>
|
||||
<require extension="VK_AMD_buffer_marker">
|
||||
<command name="vkCmdWriteBufferMarker2AMD"/>
|
||||
@@ -17801,6 +17872,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
||||
<enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"/>
|
||||
<enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV"/>
|
||||
</require>
|
||||
<require extension="VK_EXT_mesh_shader">
|
||||
<enum bitpos="19" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT"/>
|
||||
<enum bitpos="20" extends="VkPipelineStageFlagBits2" name="VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_AMD_extension_316" number="316" author="AMD" contact="Martin Dinkov @mdinkov" supported="disabled">
|
||||
<require>
|
||||
@@ -17941,10 +18016,25 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
||||
<type name="VkAccelerationStructureMotionInstanceFlagsNV"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_NV_extension_329" number="329" author="NV" contact="Pat Brown @nvpbrown" supported="disabled">
|
||||
<extension name="VK_EXT_mesh_shader" number="329" type="device" requires="VK_KHR_get_physical_device_properties2" author="EXT" sortorder="1" contact="Christoph Kubisch @pixeljetstream" supported="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_NV_EXTENSION_329_SPEC_VERSION"/>
|
||||
<enum value=""VK_NV_extension_329"" name="VK_NV_EXTENSION_329_EXTENSION_NAME"/>
|
||||
<enum value="1" name="VK_EXT_MESH_SHADER_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_mesh_shader"" name="VK_EXT_MESH_SHADER_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"/>
|
||||
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"/>
|
||||
<enum bitpos="6" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_TASK_BIT_EXT"/>
|
||||
<enum bitpos="7" extends="VkShaderStageFlagBits" name="VK_SHADER_STAGE_MESH_BIT_EXT"/>
|
||||
<enum bitpos="19" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT"/>
|
||||
<enum bitpos="20" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT"/>
|
||||
<command name="vkCmdDrawMeshTasksEXT"/>
|
||||
<command name="vkCmdDrawMeshTasksIndirectEXT"/>
|
||||
<command name="vkCmdDrawMeshTasksIndirectCountEXT"/>
|
||||
<type name="VkPhysicalDeviceMeshShaderFeaturesEXT"/>
|
||||
<type name="VkPhysicalDeviceMeshShaderPropertiesEXT"/>
|
||||
<type name="VkDrawMeshTasksIndirectCommandEXT"/>
|
||||
</require>
|
||||
<require extension="VK_NV_device_generated_commands">
|
||||
<enum offset="0" extends="VkIndirectCommandsTokenTypeNV" name="VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_NV_extension_330" number="330" author="NV" contact="Liam Middlebrook @liam-middlebrook" supported="disabled">
|
||||
@@ -20890,6 +20980,9 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
||||
<spirvextension name="SPV_QCOM_image_processing">
|
||||
<enable extension="VK_QCOM_image_processing"/>
|
||||
</spirvextension>
|
||||
<spirvextension name="SPV_EXT_mesh_shader">
|
||||
<enable extension="VK_EXT_mesh_shader"/>
|
||||
</spirvextension>
|
||||
</spirvextensions>
|
||||
<spirvcapabilities comment="SPIR-V Capabilities allowed in Vulkan and what is required to use it">
|
||||
<spirvcapability name="Matrix">
|
||||
@@ -21346,5 +21439,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
|
||||
<spirvcapability name="TextureBlockMatchQCOM">
|
||||
<enable struct="VkPhysicalDeviceImageProcessingFeaturesQCOM" feature="textureBlockMatch" requires="VK_QCOM_image_processing"/>
|
||||
</spirvcapability>
|
||||
<spirvcapability name="MeshShadingEXT">
|
||||
<enable extension="VK_EXT_mesh_shader"/>
|
||||
</spirvcapability>
|
||||
</spirvcapabilities>
|
||||
</registry>
|
||||
|
Reference in New Issue
Block a user