From 80cfd29096dc62663a5d0ebf51f135399b89bea0 Mon Sep 17 00:00:00 2001 From: Pankaj Mistry Date: Mon, 23 Aug 2021 11:55:37 -0700 Subject: Implement headers definitions for SPV_EXT_mesh_shader. --- include/spirv/unified1/spirv.bf | 14 +++ include/spirv/unified1/spirv.core.grammar.json | 143 ++++++++++++++++++++++--- include/spirv/unified1/spirv.cs | 14 +++ include/spirv/unified1/spirv.h | 16 +++ include/spirv/unified1/spirv.hpp | 16 +++ include/spirv/unified1/spirv.hpp11 | 16 +++ include/spirv/unified1/spirv.json | 16 ++- include/spirv/unified1/spirv.lua | 14 +++ include/spirv/unified1/spirv.py | 14 +++ include/spirv/unified1/spv.d | 14 +++ 10 files changed, 259 insertions(+), 18 deletions(-) diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf index b559358..fb9ec89 100644 --- a/include/spirv/unified1/spirv.bf +++ b/include/spirv/unified1/spirv.bf @@ -91,6 +91,8 @@ namespace Spv MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, + TaskEXT = 5364, + MeshEXT = 5365, } [AllowDuplicates, CRepr] public enum AddressingModel @@ -166,10 +168,13 @@ namespace Spv StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, + OutputLinesEXT = 5269, OutputLinesNV = 5269, + OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, + OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, @@ -219,6 +224,7 @@ namespace Spv ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, @@ -503,6 +509,7 @@ namespace Spv PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, + PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, @@ -652,6 +659,10 @@ namespace Spv FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, + PrimitivePointIndicesEXT = 5294, + PrimitiveLineIndicesEXT = 5295, + PrimitiveTriangleIndicesEXT = 5296, + CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, @@ -998,6 +1009,7 @@ namespace Spv FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, + MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, @@ -1599,6 +1611,8 @@ namespace Spv OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpImageSampleFootprintNV = 5283, + OpEmitMeshTasksEXT = 5294, + OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpReportIntersectionKHR = 5334, diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json index d124018..bd1289e 100644 --- a/include/spirv/unified1/spirv.core.grammar.json +++ b/include/spirv/unified1/spirv.core.grammar.json @@ -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.4" + }, { "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, diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs index f254281..14d36ae 100644 --- a/include/spirv/unified1/spirv.cs +++ b/include/spirv/unified1/spirv.cs @@ -90,6 +90,8 @@ namespace Spv MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, + TaskEXT = 5364, + MeshEXT = 5365, } public enum AddressingModel @@ -165,10 +167,13 @@ namespace Spv StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, + OutputLinesEXT = 5269, OutputLinesNV = 5269, + OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, + OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, @@ -218,6 +223,7 @@ namespace Spv ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, @@ -502,6 +508,7 @@ namespace Spv PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, + PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, @@ -651,6 +658,10 @@ namespace Spv FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, + PrimitivePointIndicesEXT = 5294, + PrimitiveLineIndicesEXT = 5295, + PrimitiveTriangleIndicesEXT = 5296, + CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, @@ -997,6 +1008,7 @@ namespace Spv FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, + MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, @@ -1598,6 +1610,8 @@ namespace Spv OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpImageSampleFootprintNV = 5283, + OpEmitMeshTasksEXT = 5294, + OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpReportIntersectionKHR = 5334, diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h index 6f34240..5b6e8aa 100644 --- a/include/spirv/unified1/spirv.h +++ b/include/spirv/unified1/spirv.h @@ -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; diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp index e1f34ea..e25264a 100644 --- a/include/spirv/unified1/spirv.hpp +++ b/include/spirv/unified1/spirv.hpp @@ -94,6 +94,8 @@ enum ExecutionModel { ExecutionModelMissNV = 5317, ExecutionModelCallableKHR = 5318, ExecutionModelCallableNV = 5318, + ExecutionModelTaskEXT = 5364, + ExecutionModelMeshEXT = 5365, ExecutionModelMax = 0x7fffffff, }; @@ -169,10 +171,13 @@ enum ExecutionMode { ExecutionModeStencilRefUnchangedBackAMD = 5082, ExecutionModeStencilRefGreaterBackAMD = 5083, ExecutionModeStencilRefLessBackAMD = 5084, + ExecutionModeOutputLinesEXT = 5269, ExecutionModeOutputLinesNV = 5269, + ExecutionModeOutputPrimitivesEXT = 5270, ExecutionModeOutputPrimitivesNV = 5270, ExecutionModeDerivativeGroupQuadsNV = 5289, ExecutionModeDerivativeGroupLinearNV = 5290, + ExecutionModeOutputTrianglesEXT = 5298, ExecutionModeOutputTrianglesNV = 5298, ExecutionModePixelInterlockOrderedEXT = 5366, ExecutionModePixelInterlockUnorderedEXT = 5367, @@ -222,6 +227,7 @@ enum StorageClass { StorageClassShaderRecordBufferNV = 5343, StorageClassPhysicalStorageBuffer = 5349, StorageClassPhysicalStorageBufferEXT = 5349, + StorageClassTaskPayloadWorkgroupEXT = 5402, StorageClassCodeSectionINTEL = 5605, StorageClassDeviceOnlyINTEL = 5936, StorageClassHostOnlyINTEL = 5937, @@ -504,6 +510,7 @@ enum Decoration { DecorationPassthroughNV = 5250, DecorationViewportRelativeNV = 5252, DecorationSecondaryViewportRelativeNV = 5256, + DecorationPerPrimitiveEXT = 5271, DecorationPerPrimitiveNV = 5271, DecorationPerViewNV = 5272, DecorationPerTaskNV = 5273, @@ -653,6 +660,10 @@ enum BuiltIn { BuiltInFragmentSizeNV = 5292, BuiltInFragInvocationCountEXT = 5293, BuiltInInvocationsPerPixelNV = 5293, + BuiltInPrimitivePointIndicesEXT = 5294, + BuiltInPrimitiveLineIndicesEXT = 5295, + BuiltInPrimitiveTriangleIndicesEXT = 5296, + BuiltInCullPrimitiveEXT = 5299, BuiltInLaunchIdKHR = 5319, BuiltInLaunchIdNV = 5319, BuiltInLaunchSizeKHR = 5320, @@ -993,6 +1004,7 @@ enum Capability { CapabilityFragmentFullyCoveredEXT = 5265, CapabilityMeshShadingNV = 5266, CapabilityImageFootprintNV = 5282, + CapabilityMeshShadingEXT = 5283, CapabilityFragmentBarycentricKHR = 5284, CapabilityFragmentBarycentricNV = 5284, CapabilityComputeDerivativeGroupQuadsNV = 5288, @@ -1592,6 +1604,8 @@ enum Op { OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpImageSampleFootprintNV = 5283, + OpEmitMeshTasksEXT = 5294, + OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpReportIntersectionKHR = 5334, @@ -2265,6 +2279,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case OpReadClockKHR: *hasResult = true; *hasResultType = true; break; case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; + case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; + case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11 index 8e6852a..555f57b 100644 --- a/include/spirv/unified1/spirv.hpp11 +++ b/include/spirv/unified1/spirv.hpp11 @@ -94,6 +94,8 @@ enum class ExecutionModel : unsigned { MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, + TaskEXT = 5364, + MeshEXT = 5365, Max = 0x7fffffff, }; @@ -169,10 +171,13 @@ enum class ExecutionMode : unsigned { StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, + OutputLinesEXT = 5269, OutputLinesNV = 5269, + OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, + OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, @@ -222,6 +227,7 @@ enum class StorageClass : unsigned { ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, @@ -504,6 +510,7 @@ enum class Decoration : unsigned { PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, + PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, @@ -653,6 +660,10 @@ enum class BuiltIn : unsigned { FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, + PrimitivePointIndicesEXT = 5294, + PrimitiveLineIndicesEXT = 5295, + PrimitiveTriangleIndicesEXT = 5296, + CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, @@ -993,6 +1004,7 @@ enum class Capability : unsigned { FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, + MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, @@ -1592,6 +1604,8 @@ enum class Op : unsigned { OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpImageSampleFootprintNV = 5283, + OpEmitMeshTasksEXT = 5294, + OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpReportIntersectionKHR = 5334, @@ -2265,6 +2279,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break; case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; + case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break; + case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break; case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json index 111b274..4ad3bcb 100644 --- a/include/spirv/unified1/spirv.json +++ b/include/spirv/unified1/spirv.json @@ -103,7 +103,9 @@ "MissKHR": 5317, "MissNV": 5317, "CallableKHR": 5318, - "CallableNV": 5318 + "CallableNV": 5318, + "TaskEXT": 5364, + "MeshEXT": 5365 } }, { @@ -188,10 +190,13 @@ "StencilRefUnchangedBackAMD": 5082, "StencilRefGreaterBackAMD": 5083, "StencilRefLessBackAMD": 5084, + "OutputLinesEXT": 5269, "OutputLinesNV": 5269, + "OutputPrimitivesEXT": 5270, "OutputPrimitivesNV": 5270, "DerivativeGroupQuadsNV": 5289, "DerivativeGroupLinearNV": 5290, + "OutputTrianglesEXT": 5298, "OutputTrianglesNV": 5298, "PixelInterlockOrderedEXT": 5366, "PixelInterlockUnorderedEXT": 5367, @@ -244,6 +249,7 @@ "ShaderRecordBufferNV": 5343, "PhysicalStorageBuffer": 5349, "PhysicalStorageBufferEXT": 5349, + "TaskPayloadWorkgroupEXT": 5402, "CodeSectionINTEL": 5605, "DeviceOnlyINTEL": 5936, "HostOnlyINTEL": 5937 @@ -530,6 +536,7 @@ "PassthroughNV": 5250, "ViewportRelativeNV": 5252, "SecondaryViewportRelativeNV": 5256, + "PerPrimitiveEXT": 5271, "PerPrimitiveNV": 5271, "PerViewNV": 5272, "PerTaskNV": 5273, @@ -682,6 +689,10 @@ "FragmentSizeNV": 5292, "FragInvocationCountEXT": 5293, "InvocationsPerPixelNV": 5293, + "PrimitivePointIndicesEXT": 5294, + "PrimitiveLineIndicesEXT": 5295, + "PrimitiveTriangleIndicesEXT": 5296, + "CullPrimitiveEXT": 5299, "LaunchIdKHR": 5319, "LaunchIdNV": 5319, "LaunchSizeKHR": 5320, @@ -975,6 +986,7 @@ "FragmentFullyCoveredEXT": 5265, "MeshShadingNV": 5266, "ImageFootprintNV": 5282, + "MeshShadingEXT": 5283, "FragmentBarycentricKHR": 5284, "FragmentBarycentricNV": 5284, "ComputeDerivativeGroupQuadsNV": 5288, @@ -1585,6 +1597,8 @@ "OpFragmentFetchAMD": 5012, "OpReadClockKHR": 5056, "OpImageSampleFootprintNV": 5283, + "OpEmitMeshTasksEXT": 5294, + "OpSetMeshOutputsEXT": 5295, "OpGroupNonUniformPartitionNV": 5296, "OpWritePackedPrimitiveIndices4x8NV": 5299, "OpReportIntersectionKHR": 5334, diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua index 975622d..a3d47e9 100644 --- a/include/spirv/unified1/spirv.lua +++ b/include/spirv/unified1/spirv.lua @@ -84,6 +84,8 @@ spv = { MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, + TaskEXT = 5364, + MeshEXT = 5365, }, AddressingModel = { @@ -156,10 +158,13 @@ spv = { StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, + OutputLinesEXT = 5269, OutputLinesNV = 5269, + OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, + OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, @@ -208,6 +213,7 @@ spv = { ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, @@ -477,6 +483,7 @@ spv = { PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, + PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, @@ -625,6 +632,10 @@ spv = { FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, + PrimitivePointIndicesEXT = 5294, + PrimitiveLineIndicesEXT = 5295, + PrimitiveTriangleIndicesEXT = 5296, + CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, @@ -955,6 +966,7 @@ spv = { FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, + MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, @@ -1543,6 +1555,8 @@ spv = { OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpImageSampleFootprintNV = 5283, + OpEmitMeshTasksEXT = 5294, + OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpReportIntersectionKHR = 5334, diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py index 56b34ce..5e8a0ef 100644 --- a/include/spirv/unified1/spirv.py +++ b/include/spirv/unified1/spirv.py @@ -84,6 +84,8 @@ spv = { 'MissNV' : 5317, 'CallableKHR' : 5318, 'CallableNV' : 5318, + 'TaskEXT' : 5364, + 'MeshEXT' : 5365, }, 'AddressingModel' : { @@ -156,10 +158,13 @@ spv = { 'StencilRefUnchangedBackAMD' : 5082, 'StencilRefGreaterBackAMD' : 5083, 'StencilRefLessBackAMD' : 5084, + 'OutputLinesEXT' : 5269, 'OutputLinesNV' : 5269, + 'OutputPrimitivesEXT' : 5270, 'OutputPrimitivesNV' : 5270, 'DerivativeGroupQuadsNV' : 5289, 'DerivativeGroupLinearNV' : 5290, + 'OutputTrianglesEXT' : 5298, 'OutputTrianglesNV' : 5298, 'PixelInterlockOrderedEXT' : 5366, 'PixelInterlockUnorderedEXT' : 5367, @@ -208,6 +213,7 @@ spv = { 'ShaderRecordBufferNV' : 5343, 'PhysicalStorageBuffer' : 5349, 'PhysicalStorageBufferEXT' : 5349, + 'TaskPayloadWorkgroupEXT' : 5402, 'CodeSectionINTEL' : 5605, 'DeviceOnlyINTEL' : 5936, 'HostOnlyINTEL' : 5937, @@ -477,6 +483,7 @@ spv = { 'PassthroughNV' : 5250, 'ViewportRelativeNV' : 5252, 'SecondaryViewportRelativeNV' : 5256, + 'PerPrimitiveEXT' : 5271, 'PerPrimitiveNV' : 5271, 'PerViewNV' : 5272, 'PerTaskNV' : 5273, @@ -625,6 +632,10 @@ spv = { 'FragmentSizeNV' : 5292, 'FragInvocationCountEXT' : 5293, 'InvocationsPerPixelNV' : 5293, + 'PrimitivePointIndicesEXT' : 5294, + 'PrimitiveLineIndicesEXT' : 5295, + 'PrimitiveTriangleIndicesEXT' : 5296, + 'CullPrimitiveEXT' : 5299, 'LaunchIdKHR' : 5319, 'LaunchIdNV' : 5319, 'LaunchSizeKHR' : 5320, @@ -955,6 +966,7 @@ spv = { 'FragmentFullyCoveredEXT' : 5265, 'MeshShadingNV' : 5266, 'ImageFootprintNV' : 5282, + 'MeshShadingEXT' : 5283, 'FragmentBarycentricKHR' : 5284, 'FragmentBarycentricNV' : 5284, 'ComputeDerivativeGroupQuadsNV' : 5288, @@ -1543,6 +1555,8 @@ spv = { 'OpFragmentFetchAMD' : 5012, 'OpReadClockKHR' : 5056, 'OpImageSampleFootprintNV' : 5283, + 'OpEmitMeshTasksEXT' : 5294, + 'OpSetMeshOutputsEXT' : 5295, 'OpGroupNonUniformPartitionNV' : 5296, 'OpWritePackedPrimitiveIndices4x8NV' : 5299, 'OpReportIntersectionKHR' : 5334, diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d index 3b2db4e..0ef3768 100644 --- a/include/spirv/unified1/spv.d +++ b/include/spirv/unified1/spv.d @@ -93,6 +93,8 @@ enum ExecutionModel : uint MissNV = 5317, CallableKHR = 5318, CallableNV = 5318, + TaskEXT = 5364, + MeshEXT = 5365, } enum AddressingModel : uint @@ -168,10 +170,13 @@ enum ExecutionMode : uint StencilRefUnchangedBackAMD = 5082, StencilRefGreaterBackAMD = 5083, StencilRefLessBackAMD = 5084, + OutputLinesEXT = 5269, OutputLinesNV = 5269, + OutputPrimitivesEXT = 5270, OutputPrimitivesNV = 5270, DerivativeGroupQuadsNV = 5289, DerivativeGroupLinearNV = 5290, + OutputTrianglesEXT = 5298, OutputTrianglesNV = 5298, PixelInterlockOrderedEXT = 5366, PixelInterlockUnorderedEXT = 5367, @@ -221,6 +226,7 @@ enum StorageClass : uint ShaderRecordBufferNV = 5343, PhysicalStorageBuffer = 5349, PhysicalStorageBufferEXT = 5349, + TaskPayloadWorkgroupEXT = 5402, CodeSectionINTEL = 5605, DeviceOnlyINTEL = 5936, HostOnlyINTEL = 5937, @@ -505,6 +511,7 @@ enum Decoration : uint PassthroughNV = 5250, ViewportRelativeNV = 5252, SecondaryViewportRelativeNV = 5256, + PerPrimitiveEXT = 5271, PerPrimitiveNV = 5271, PerViewNV = 5272, PerTaskNV = 5273, @@ -654,6 +661,10 @@ enum BuiltIn : uint FragmentSizeNV = 5292, FragInvocationCountEXT = 5293, InvocationsPerPixelNV = 5293, + PrimitivePointIndicesEXT = 5294, + PrimitiveLineIndicesEXT = 5295, + PrimitiveTriangleIndicesEXT = 5296, + CullPrimitiveEXT = 5299, LaunchIdKHR = 5319, LaunchIdNV = 5319, LaunchSizeKHR = 5320, @@ -1000,6 +1011,7 @@ enum Capability : uint FragmentFullyCoveredEXT = 5265, MeshShadingNV = 5266, ImageFootprintNV = 5282, + MeshShadingEXT = 5283, FragmentBarycentricKHR = 5284, FragmentBarycentricNV = 5284, ComputeDerivativeGroupQuadsNV = 5288, @@ -1601,6 +1613,8 @@ enum Op : uint OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, OpImageSampleFootprintNV = 5283, + OpEmitMeshTasksEXT = 5294, + OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpReportIntersectionKHR = 5334, -- cgit v1.2.3