Skip to content

Commit 87d5b78

Browse files
authored
Merge pull request KhronosGroup#288 from pmistryNV/GL_EXT_mesh_shader_github
Implement headers definitions for SPV_EXT_mesh_shader.
2 parents 93754d5 + 80cfd29 commit 87d5b78

File tree

10 files changed

+259
-18
lines changed

10 files changed

+259
-18
lines changed

include/spirv/unified1/spirv.bf

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ namespace Spv
9191
MissNV = 5317,
9292
CallableKHR = 5318,
9393
CallableNV = 5318,
94+
TaskEXT = 5364,
95+
MeshEXT = 5365,
9496
}
9597

9698
[AllowDuplicates, CRepr] public enum AddressingModel
@@ -166,10 +168,13 @@ namespace Spv
166168
StencilRefUnchangedBackAMD = 5082,
167169
StencilRefGreaterBackAMD = 5083,
168170
StencilRefLessBackAMD = 5084,
171+
OutputLinesEXT = 5269,
169172
OutputLinesNV = 5269,
173+
OutputPrimitivesEXT = 5270,
170174
OutputPrimitivesNV = 5270,
171175
DerivativeGroupQuadsNV = 5289,
172176
DerivativeGroupLinearNV = 5290,
177+
OutputTrianglesEXT = 5298,
173178
OutputTrianglesNV = 5298,
174179
PixelInterlockOrderedEXT = 5366,
175180
PixelInterlockUnorderedEXT = 5367,
@@ -219,6 +224,7 @@ namespace Spv
219224
ShaderRecordBufferNV = 5343,
220225
PhysicalStorageBuffer = 5349,
221226
PhysicalStorageBufferEXT = 5349,
227+
TaskPayloadWorkgroupEXT = 5402,
222228
CodeSectionINTEL = 5605,
223229
DeviceOnlyINTEL = 5936,
224230
HostOnlyINTEL = 5937,
@@ -503,6 +509,7 @@ namespace Spv
503509
PassthroughNV = 5250,
504510
ViewportRelativeNV = 5252,
505511
SecondaryViewportRelativeNV = 5256,
512+
PerPrimitiveEXT = 5271,
506513
PerPrimitiveNV = 5271,
507514
PerViewNV = 5272,
508515
PerTaskNV = 5273,
@@ -652,6 +659,10 @@ namespace Spv
652659
FragmentSizeNV = 5292,
653660
FragInvocationCountEXT = 5293,
654661
InvocationsPerPixelNV = 5293,
662+
PrimitivePointIndicesEXT = 5294,
663+
PrimitiveLineIndicesEXT = 5295,
664+
PrimitiveTriangleIndicesEXT = 5296,
665+
CullPrimitiveEXT = 5299,
655666
LaunchIdKHR = 5319,
656667
LaunchIdNV = 5319,
657668
LaunchSizeKHR = 5320,
@@ -998,6 +1009,7 @@ namespace Spv
9981009
FragmentFullyCoveredEXT = 5265,
9991010
MeshShadingNV = 5266,
10001011
ImageFootprintNV = 5282,
1012+
MeshShadingEXT = 5283,
10011013
FragmentBarycentricKHR = 5284,
10021014
FragmentBarycentricNV = 5284,
10031015
ComputeDerivativeGroupQuadsNV = 5288,
@@ -1599,6 +1611,8 @@ namespace Spv
15991611
OpFragmentFetchAMD = 5012,
16001612
OpReadClockKHR = 5056,
16011613
OpImageSampleFootprintNV = 5283,
1614+
OpEmitMeshTasksEXT = 5294,
1615+
OpSetMeshOutputsEXT = 5295,
16021616
OpGroupNonUniformPartitionNV = 5296,
16031617
OpWritePackedPrimitiveIndices4x8NV = 5299,
16041618
OpReportIntersectionKHR = 5334,

include/spirv/unified1/spirv.core.grammar.json

Lines changed: 126 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4771,6 +4771,30 @@
47714771
"extensions" : [ "SPV_NV_shader_image_footprint" ],
47724772
"version" : "None"
47734773
},
4774+
{
4775+
"opname" : "OpEmitMeshTasksEXT",
4776+
"class" : "Reserved",
4777+
"opcode" : 5294,
4778+
"operands" : [
4779+
{ "kind" : "IdRef", "name" : "'Group Count X'" },
4780+
{ "kind" : "IdRef", "name" : "'Group Count Y'" },
4781+
{ "kind" : "IdRef", "name" : "'Group Count Z'" },
4782+
{ "kind" : "IdRef", "quantifier" : "?", "name" : "'Payload'" }
4783+
],
4784+
"capabilities" : [ "MeshShadingEXT" ],
4785+
"version" : "None"
4786+
},
4787+
{
4788+
"opname" : "OpSetMeshOutputsEXT",
4789+
"class" : "Reserved",
4790+
"opcode" : 5295,
4791+
"operands" : [
4792+
{ "kind" : "IdRef", "name" : "'Vertex Count'" },
4793+
{ "kind" : "IdRef", "name" : "'Primitive Count'" }
4794+
],
4795+
"capabilities" : [ "MeshShadingEXT" ],
4796+
"version" : "None"
4797+
},
47744798
{
47754799
"opname" : "OpGroupNonUniformPartitionNV",
47764800
"class" : "Non-Uniform",
@@ -9578,6 +9602,18 @@
95789602
"value" : 5318,
95799603
"capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
95809604
"version" : "None"
9605+
},
9606+
{
9607+
"enumerant" : "TaskEXT",
9608+
"value" : 5364,
9609+
"capabilities" : [ "MeshShadingEXT" ],
9610+
"version" : "None"
9611+
},
9612+
{
9613+
"enumerant" : "MeshEXT",
9614+
"value" : 5365,
9615+
"capabilities" : [ "MeshShadingEXT" ],
9616+
"version" : "None"
95819617
}
95829618
]
95839619
},
@@ -9793,15 +9829,15 @@
97939829
{
97949830
"enumerant" : "OutputVertices",
97959831
"value" : 26,
9796-
"capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV" ],
9832+
"capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ],
97979833
"parameters" : [
97989834
{ "kind" : "LiteralInteger", "name" : "'Vertex count'" }
97999835
]
98009836
},
98019837
{
98029838
"enumerant" : "OutputPoints",
98039839
"value" : 27,
9804-
"capabilities" : [ "Geometry", "MeshShadingNV" ]
9840+
"capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ]
98059841
},
98069842
{
98079843
"enumerant" : "OutputLineStrip",
@@ -10009,18 +10045,35 @@
1000910045
{
1001010046
"enumerant" : "OutputLinesNV",
1001110047
"value" : 5269,
10012-
"capabilities" : [ "MeshShadingNV" ],
10013-
"extensions" : [ "SPV_NV_mesh_shader" ],
10048+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
10049+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
10050+
"version" : "None"
10051+
},
10052+
{
10053+
"enumerant" : "OutputLinesEXT",
10054+
"value" : 5269,
10055+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
10056+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
1001410057
"version" : "None"
1001510058
},
1001610059
{
1001710060
"enumerant" : "OutputPrimitivesNV",
1001810061
"value" : 5270,
10019-
"capabilities" : [ "MeshShadingNV" ],
10062+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
1002010063
"parameters" : [
1002110064
{ "kind" : "LiteralInteger", "name" : "'Primitive count'" }
1002210065
],
10023-
"extensions" : [ "SPV_NV_mesh_shader" ],
10066+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
10067+
"version" : "None"
10068+
},
10069+
{
10070+
"enumerant" : "OutputPrimitivesEXT",
10071+
"value" : 5270,
10072+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
10073+
"parameters" : [
10074+
{ "kind" : "LiteralInteger", "name" : "'Primitive count'" }
10075+
],
10076+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
1002410077
"version" : "None"
1002510078
},
1002610079
{
@@ -10040,8 +10093,15 @@
1004010093
{
1004110094
"enumerant" : "OutputTrianglesNV",
1004210095
"value" : 5298,
10043-
"capabilities" : [ "MeshShadingNV" ],
10044-
"extensions" : [ "SPV_NV_mesh_shader" ],
10096+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
10097+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
10098+
"version" : "None"
10099+
},
10100+
{
10101+
"enumerant" : "OutputTrianglesEXT",
10102+
"value" : 5298,
10103+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
10104+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
1004510105
"version" : "None"
1004610106
},
1004710107
{
@@ -10356,6 +10416,13 @@
1035610416
"capabilities" : [ "PhysicalStorageBufferAddresses" ],
1035710417
"version" : "1.5"
1035810418
},
10419+
{
10420+
"enumerant" : "TaskPayloadWorkgroupEXT",
10421+
"value" : 5402,
10422+
"extensions" : [ "SPV_EXT_mesh_shader" ],
10423+
"capabilities" : [ "MeshShadingEXT" ],
10424+
"version" : "1.4"
10425+
},
1035910426
{
1036010427
"enumerant" : "CodeSectionINTEL",
1036110428
"value" : 5605,
@@ -11471,8 +11538,15 @@
1147111538
{
1147211539
"enumerant" : "PerPrimitiveNV",
1147311540
"value" : 5271,
11474-
"capabilities" : [ "MeshShadingNV" ],
11475-
"extensions" : [ "SPV_NV_mesh_shader" ],
11541+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
11542+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
11543+
"version" : "None"
11544+
},
11545+
{
11546+
"enumerant" : "PerPrimitiveEXT",
11547+
"value" : 5271,
11548+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
11549+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
1147611550
"version" : "None"
1147711551
},
1147811552
{
@@ -11485,8 +11559,8 @@
1148511559
{
1148611560
"enumerant" : "PerTaskNV",
1148711561
"value" : 5273,
11488-
"capabilities" : [ "MeshShadingNV" ],
11489-
"extensions" : [ "SPV_NV_mesh_shader" ],
11562+
"capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
11563+
"extensions" : [ "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
1149011564
"version" : "None"
1149111565
},
1149211566
{
@@ -11952,7 +12026,7 @@
1195212026
{
1195312027
"enumerant" : "PrimitiveId",
1195412028
"value" : 7,
11955-
"capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV" ]
12029+
"capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ]
1195612030
},
1195712031
{
1195812032
"enumerant" : "InvocationId",
@@ -11962,12 +12036,12 @@
1196212036
{
1196312037
"enumerant" : "Layer",
1196412038
"value" : 9,
11965-
"capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV" ]
12039+
"capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
1196612040
},
1196712041
{
1196812042
"enumerant" : "ViewportIndex",
1196912043
"value" : 10,
11970-
"capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV" ]
12044+
"capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
1197112045
},
1197212046
{
1197312047
"enumerant" : "TessLevelOuter",
@@ -12200,8 +12274,8 @@
1220012274
{
1220112275
"enumerant" : "DrawIndex",
1220212276
"value" : 4426,
12203-
"capabilities" : [ "DrawParameters", "MeshShadingNV" ],
12204-
"extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader" ],
12277+
"capabilities" : [ "DrawParameters", "MeshShadingNV", "MeshShadingEXT" ],
12278+
"extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader", "SPV_EXT_mesh_shader" ],
1220512279
"version" : "1.3"
1220612280
},
1220712281
{
@@ -12435,6 +12509,34 @@
1243512509
"extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
1243612510
"version" : "None"
1243712511
},
12512+
{
12513+
"enumerant" : "PrimitivePointIndicesEXT",
12514+
"value" : 5294,
12515+
"capabilities" : [ "MeshShadingEXT" ],
12516+
"extensions" : [ "SPV_EXT_mesh_shader" ],
12517+
"version" : "None"
12518+
},
12519+
{
12520+
"enumerant" : "PrimitiveLineIndicesEXT",
12521+
"value" : 5295,
12522+
"capabilities" : [ "MeshShadingEXT" ],
12523+
"extensions" : [ "SPV_EXT_mesh_shader" ],
12524+
"version" : "None"
12525+
},
12526+
{
12527+
"enumerant" : "PrimitiveTriangleIndicesEXT",
12528+
"value" : 5296,
12529+
"capabilities" : [ "MeshShadingEXT" ],
12530+
"extensions" : [ "SPV_EXT_mesh_shader" ],
12531+
"version" : "None"
12532+
},
12533+
{
12534+
"enumerant" : "CullPrimitiveEXT",
12535+
"value" : 5299,
12536+
"capabilities" : [ "MeshShadingEXT" ],
12537+
"extensions" : [ "SPV_EXT_mesh_shader" ],
12538+
"version" : "None"
12539+
},
1243812540
{
1243912541
"enumerant" : "LaunchIdNV",
1244012542
"value" : 5319,
@@ -13466,6 +13568,13 @@
1346613568
"extensions" : [ "SPV_NV_shader_image_footprint" ],
1346713569
"version" : "None"
1346813570
},
13571+
{
13572+
"enumerant" : "MeshShadingEXT",
13573+
"value" : 5283,
13574+
"capabilities" : [ "Shader" ],
13575+
"extensions" : [ "SPV_EXT_mesh_shader" ],
13576+
"version" : "None"
13577+
},
1346913578
{
1347013579
"enumerant" : "FragmentBarycentricKHR",
1347113580
"value" : 5284,

include/spirv/unified1/spirv.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ public enum ExecutionModel
9090
MissNV = 5317,
9191
CallableKHR = 5318,
9292
CallableNV = 5318,
93+
TaskEXT = 5364,
94+
MeshEXT = 5365,
9395
}
9496

9597
public enum AddressingModel
@@ -165,10 +167,13 @@ public enum ExecutionMode
165167
StencilRefUnchangedBackAMD = 5082,
166168
StencilRefGreaterBackAMD = 5083,
167169
StencilRefLessBackAMD = 5084,
170+
OutputLinesEXT = 5269,
168171
OutputLinesNV = 5269,
172+
OutputPrimitivesEXT = 5270,
169173
OutputPrimitivesNV = 5270,
170174
DerivativeGroupQuadsNV = 5289,
171175
DerivativeGroupLinearNV = 5290,
176+
OutputTrianglesEXT = 5298,
172177
OutputTrianglesNV = 5298,
173178
PixelInterlockOrderedEXT = 5366,
174179
PixelInterlockUnorderedEXT = 5367,
@@ -218,6 +223,7 @@ public enum StorageClass
218223
ShaderRecordBufferNV = 5343,
219224
PhysicalStorageBuffer = 5349,
220225
PhysicalStorageBufferEXT = 5349,
226+
TaskPayloadWorkgroupEXT = 5402,
221227
CodeSectionINTEL = 5605,
222228
DeviceOnlyINTEL = 5936,
223229
HostOnlyINTEL = 5937,
@@ -502,6 +508,7 @@ public enum Decoration
502508
PassthroughNV = 5250,
503509
ViewportRelativeNV = 5252,
504510
SecondaryViewportRelativeNV = 5256,
511+
PerPrimitiveEXT = 5271,
505512
PerPrimitiveNV = 5271,
506513
PerViewNV = 5272,
507514
PerTaskNV = 5273,
@@ -651,6 +658,10 @@ public enum BuiltIn
651658
FragmentSizeNV = 5292,
652659
FragInvocationCountEXT = 5293,
653660
InvocationsPerPixelNV = 5293,
661+
PrimitivePointIndicesEXT = 5294,
662+
PrimitiveLineIndicesEXT = 5295,
663+
PrimitiveTriangleIndicesEXT = 5296,
664+
CullPrimitiveEXT = 5299,
654665
LaunchIdKHR = 5319,
655666
LaunchIdNV = 5319,
656667
LaunchSizeKHR = 5320,
@@ -997,6 +1008,7 @@ public enum Capability
9971008
FragmentFullyCoveredEXT = 5265,
9981009
MeshShadingNV = 5266,
9991010
ImageFootprintNV = 5282,
1011+
MeshShadingEXT = 5283,
10001012
FragmentBarycentricKHR = 5284,
10011013
FragmentBarycentricNV = 5284,
10021014
ComputeDerivativeGroupQuadsNV = 5288,
@@ -1598,6 +1610,8 @@ public enum Op
15981610
OpFragmentFetchAMD = 5012,
15991611
OpReadClockKHR = 5056,
16001612
OpImageSampleFootprintNV = 5283,
1613+
OpEmitMeshTasksEXT = 5294,
1614+
OpSetMeshOutputsEXT = 5295,
16011615
OpGroupNonUniformPartitionNV = 5296,
16021616
OpWritePackedPrimitiveIndices4x8NV = 5299,
16031617
OpReportIntersectionKHR = 5334,

0 commit comments

Comments
 (0)