Skip to content

Commit f8a4f5d

Browse files
alelenvalan-baker
andauthored
Add headers for SPV_NV_displacement_micromap. (KhronosGroup#374)
* Add headers for SPV_NV_displacement_micromap. * Review feedback 1 Co-authored-by: alan-baker <[email protected]> --------- Co-authored-by: alan-baker <[email protected]>
1 parent d741b92 commit f8a4f5d

File tree

10 files changed

+148
-0
lines changed

10 files changed

+148
-0
lines changed

include/spirv/unified1/spirv.bf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -746,13 +746,17 @@ namespace Spv
746746
HitKindNV = 5333,
747747
CurrentRayTimeNV = 5334,
748748
HitTriangleVertexPositionsKHR = 5335,
749+
HitMicroTriangleVertexPositionsNV = 5337,
750+
HitMicroTriangleVertexBarycentricsNV = 5344,
749751
IncomingRayFlagsKHR = 5351,
750752
IncomingRayFlagsNV = 5351,
751753
RayGeometryIndexKHR = 5352,
752754
WarpsPerSMNV = 5374,
753755
SMCountNV = 5375,
754756
WarpIDNV = 5376,
755757
SMIDNV = 5377,
758+
HitKindFrontFacingMicroTriangleNV = 5405,
759+
HitKindBackFacingMicroTriangleNV = 5406,
756760
CullMaskKHR = 6021,
757761
}
758762

@@ -1127,10 +1131,12 @@ namespace Spv
11271131
FragmentShaderPixelInterlockEXT = 5378,
11281132
DemoteToHelperInvocation = 5379,
11291133
DemoteToHelperInvocationEXT = 5379,
1134+
DisplacementMicromapNV = 5380,
11301135
RayTracingOpacityMicromapEXT = 5381,
11311136
ShaderInvocationReorderNV = 5383,
11321137
BindlessTextureNV = 5390,
11331138
RayQueryPositionFetchKHR = 5391,
1139+
RayTracingDisplacementMicromapNV = 5409,
11341140
SubgroupShuffleINTEL = 5568,
11351141
SubgroupBufferBlockIOINTEL = 5569,
11361142
SubgroupImageBlockIOINTEL = 5570,
@@ -1813,6 +1819,8 @@ namespace Spv
18131819
OpSetMeshOutputsEXT = 5295,
18141820
OpGroupNonUniformPartitionNV = 5296,
18151821
OpWritePackedPrimitiveIndices4x8NV = 5299,
1822+
OpFetchMicroTriangleVertexPositionNV = 5300,
1823+
OpFetchMicroTriangleVertexBarycentricNV = 5301,
18161824
OpReportIntersectionKHR = 5334,
18171825
OpReportIntersectionNV = 5334,
18181826
OpIgnoreIntersectionNV = 5335,

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

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5767,6 +5767,38 @@
57675767
"extensions" : [ "SPV_NV_mesh_shader" ],
57685768
"version" : "None"
57695769
},
5770+
{
5771+
"opname" : "OpFetchMicroTriangleVertexPositionNV",
5772+
"class" : "Reserved",
5773+
"opcode" : 5300,
5774+
"operands" : [
5775+
{ "kind" : "IdResultType" },
5776+
{ "kind" : "IdResult" },
5777+
{ "kind" : "IdRef", "name" : "'Accel'" },
5778+
{ "kind" : "IdRef", "name" : "'Instance Id'" },
5779+
{ "kind" : "IdRef", "name" : "'Geometry Index'" },
5780+
{ "kind" : "IdRef", "name" : "'Primitive Index'" },
5781+
{ "kind" : "IdRef", "name" : "'Barycentric'" }
5782+
],
5783+
"capabilities" : [ "DisplacementMicromapNV" ],
5784+
"version" : "None"
5785+
},
5786+
{
5787+
"opname" : "OpFetchMicroTriangleVertexBarycentricNV",
5788+
"class" : "Reserved",
5789+
"opcode" : 5301,
5790+
"operands" : [
5791+
{ "kind" : "IdResultType" },
5792+
{ "kind" : "IdResult" },
5793+
{ "kind" : "IdRef", "name" : "'Accel'" },
5794+
{ "kind" : "IdRef", "name" : "'Instance Id'" },
5795+
{ "kind" : "IdRef", "name" : "'Geometry Index'" },
5796+
{ "kind" : "IdRef", "name" : "'Primitive Index'" },
5797+
{ "kind" : "IdRef", "name" : "'Barycentric'" }
5798+
],
5799+
"capabilities" : [ "DisplacementMicromapNV" ],
5800+
"version" : "None"
5801+
},
57705802
{
57715803
"opname" : "OpReportIntersectionNV",
57725804
"class" : "Reserved",
@@ -14476,6 +14508,18 @@
1447614508
"capabilities" : [ "RayTracingPositionFetchKHR" ],
1447714509
"version" : "None"
1447814510
},
14511+
{
14512+
"enumerant" : "HitMicroTriangleVertexPositionsNV",
14513+
"value" : 5337,
14514+
"capabilities" : [ "RayTracingDisplacementMicromapNV" ],
14515+
"version" : "None"
14516+
},
14517+
{
14518+
"enumerant" : "HitMicroTriangleVertexBarycentricsNV",
14519+
"value" : 5344,
14520+
"capabilities" : [ "RayTracingDisplacementMicromapNV" ],
14521+
"version" : "None"
14522+
},
1447914523
{
1448014524
"enumerant" : "IncomingRayFlagsNV",
1448114525
"value" : 5351,
@@ -14525,6 +14569,18 @@
1452514569
"extensions" : [ "SPV_NV_shader_sm_builtins" ],
1452614570
"version" : "None"
1452714571
},
14572+
{
14573+
"enumerant" : "HitKindFrontFacingMicroTriangleNV",
14574+
"value" : 5405,
14575+
"capabilities" : [ "RayTracingDisplacementMicromapNV" ],
14576+
"version" : "None"
14577+
},
14578+
{
14579+
"enumerant" : "HitKindBackFacingMicroTriangleNV",
14580+
"value" : 5406,
14581+
"capabilities" : [ "RayTracingDisplacementMicromapNV" ],
14582+
"version" : "None"
14583+
},
1452814584
{
1452914585
"enumerant" : "CullMaskKHR",
1453014586
"value" : 6021,
@@ -15759,6 +15815,13 @@
1575915815
"extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
1576015816
"version" : "1.6"
1576115817
},
15818+
{
15819+
"enumerant" : "DisplacementMicromapNV",
15820+
"value" : 5380,
15821+
"capabilities" : [ "Shader" ],
15822+
"extensions" : [ "SPV_NV_displacement_micromap" ],
15823+
"version" : "None"
15824+
},
1576215825
{
1576315826
"enumerant" : "RayTracingOpacityMicromapEXT",
1576415827
"value" : 5381,
@@ -15786,6 +15849,13 @@
1578615849
"extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ],
1578715850
"version" : "None"
1578815851
},
15852+
{
15853+
"enumerant" : "RayTracingDisplacementMicromapNV",
15854+
"value" : 5409,
15855+
"capabilities" : [ "RayTracingKHR" ],
15856+
"extensions" : [ "SPV_NV_displacement_micromap" ],
15857+
"version" : "None"
15858+
},
1578915859
{
1579015860
"enumerant" : "SubgroupShuffleINTEL",
1579115861
"value" : 5568,

include/spirv/unified1/spirv.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,13 +745,17 @@ public enum BuiltIn
745745
HitKindNV = 5333,
746746
CurrentRayTimeNV = 5334,
747747
HitTriangleVertexPositionsKHR = 5335,
748+
HitMicroTriangleVertexPositionsNV = 5337,
749+
HitMicroTriangleVertexBarycentricsNV = 5344,
748750
IncomingRayFlagsKHR = 5351,
749751
IncomingRayFlagsNV = 5351,
750752
RayGeometryIndexKHR = 5352,
751753
WarpsPerSMNV = 5374,
752754
SMCountNV = 5375,
753755
WarpIDNV = 5376,
754756
SMIDNV = 5377,
757+
HitKindFrontFacingMicroTriangleNV = 5405,
758+
HitKindBackFacingMicroTriangleNV = 5406,
755759
CullMaskKHR = 6021,
756760
}
757761

@@ -1126,10 +1130,12 @@ public enum Capability
11261130
FragmentShaderPixelInterlockEXT = 5378,
11271131
DemoteToHelperInvocation = 5379,
11281132
DemoteToHelperInvocationEXT = 5379,
1133+
DisplacementMicromapNV = 5380,
11291134
RayTracingOpacityMicromapEXT = 5381,
11301135
ShaderInvocationReorderNV = 5383,
11311136
BindlessTextureNV = 5390,
11321137
RayQueryPositionFetchKHR = 5391,
1138+
RayTracingDisplacementMicromapNV = 5409,
11331139
SubgroupShuffleINTEL = 5568,
11341140
SubgroupBufferBlockIOINTEL = 5569,
11351141
SubgroupImageBlockIOINTEL = 5570,
@@ -1812,6 +1818,8 @@ public enum Op
18121818
OpSetMeshOutputsEXT = 5295,
18131819
OpGroupNonUniformPartitionNV = 5296,
18141820
OpWritePackedPrimitiveIndices4x8NV = 5299,
1821+
OpFetchMicroTriangleVertexPositionNV = 5300,
1822+
OpFetchMicroTriangleVertexBarycentricNV = 5301,
18151823
OpReportIntersectionKHR = 5334,
18161824
OpReportIntersectionNV = 5334,
18171825
OpIgnoreIntersectionNV = 5335,

include/spirv/unified1/spirv.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,13 +751,17 @@ typedef enum SpvBuiltIn_ {
751751
SpvBuiltInHitKindNV = 5333,
752752
SpvBuiltInCurrentRayTimeNV = 5334,
753753
SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
754+
SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337,
755+
SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
754756
SpvBuiltInIncomingRayFlagsKHR = 5351,
755757
SpvBuiltInIncomingRayFlagsNV = 5351,
756758
SpvBuiltInRayGeometryIndexKHR = 5352,
757759
SpvBuiltInWarpsPerSMNV = 5374,
758760
SpvBuiltInSMCountNV = 5375,
759761
SpvBuiltInWarpIDNV = 5376,
760762
SpvBuiltInSMIDNV = 5377,
763+
SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
764+
SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
761765
SpvBuiltInCullMaskKHR = 6021,
762766
SpvBuiltInMax = 0x7fffffff,
763767
} SpvBuiltIn;
@@ -1126,10 +1130,12 @@ typedef enum SpvCapability_ {
11261130
SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
11271131
SpvCapabilityDemoteToHelperInvocation = 5379,
11281132
SpvCapabilityDemoteToHelperInvocationEXT = 5379,
1133+
SpvCapabilityDisplacementMicromapNV = 5380,
11291134
SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
11301135
SpvCapabilityShaderInvocationReorderNV = 5383,
11311136
SpvCapabilityBindlessTextureNV = 5390,
11321137
SpvCapabilityRayQueryPositionFetchKHR = 5391,
1138+
SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
11331139
SpvCapabilitySubgroupShuffleINTEL = 5568,
11341140
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
11351141
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1809,6 +1815,8 @@ typedef enum SpvOp_ {
18091815
SpvOpSetMeshOutputsEXT = 5295,
18101816
SpvOpGroupNonUniformPartitionNV = 5296,
18111817
SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1818+
SpvOpFetchMicroTriangleVertexPositionNV = 5300,
1819+
SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
18121820
SpvOpReportIntersectionKHR = 5334,
18131821
SpvOpReportIntersectionNV = 5334,
18141822
SpvOpIgnoreIntersectionNV = 5335,
@@ -2535,6 +2543,8 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
25352543
case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
25362544
case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
25372545
case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2546+
case SpvOpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
2547+
case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
25382548
case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
25392549
case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
25402550
case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;

include/spirv/unified1/spirv.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -747,13 +747,17 @@ enum BuiltIn {
747747
BuiltInHitKindNV = 5333,
748748
BuiltInCurrentRayTimeNV = 5334,
749749
BuiltInHitTriangleVertexPositionsKHR = 5335,
750+
BuiltInHitMicroTriangleVertexPositionsNV = 5337,
751+
BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
750752
BuiltInIncomingRayFlagsKHR = 5351,
751753
BuiltInIncomingRayFlagsNV = 5351,
752754
BuiltInRayGeometryIndexKHR = 5352,
753755
BuiltInWarpsPerSMNV = 5374,
754756
BuiltInSMCountNV = 5375,
755757
BuiltInWarpIDNV = 5376,
756758
BuiltInSMIDNV = 5377,
759+
BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
760+
BuiltInHitKindBackFacingMicroTriangleNV = 5406,
757761
BuiltInCullMaskKHR = 6021,
758762
BuiltInMax = 0x7fffffff,
759763
};
@@ -1122,10 +1126,12 @@ enum Capability {
11221126
CapabilityFragmentShaderPixelInterlockEXT = 5378,
11231127
CapabilityDemoteToHelperInvocation = 5379,
11241128
CapabilityDemoteToHelperInvocationEXT = 5379,
1129+
CapabilityDisplacementMicromapNV = 5380,
11251130
CapabilityRayTracingOpacityMicromapEXT = 5381,
11261131
CapabilityShaderInvocationReorderNV = 5383,
11271132
CapabilityBindlessTextureNV = 5390,
11281133
CapabilityRayQueryPositionFetchKHR = 5391,
1134+
CapabilityRayTracingDisplacementMicromapNV = 5409,
11291135
CapabilitySubgroupShuffleINTEL = 5568,
11301136
CapabilitySubgroupBufferBlockIOINTEL = 5569,
11311137
CapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1805,6 +1811,8 @@ enum Op {
18051811
OpSetMeshOutputsEXT = 5295,
18061812
OpGroupNonUniformPartitionNV = 5296,
18071813
OpWritePackedPrimitiveIndices4x8NV = 5299,
1814+
OpFetchMicroTriangleVertexPositionNV = 5300,
1815+
OpFetchMicroTriangleVertexBarycentricNV = 5301,
18081816
OpReportIntersectionKHR = 5334,
18091817
OpReportIntersectionNV = 5334,
18101818
OpIgnoreIntersectionNV = 5335,
@@ -2531,6 +2539,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
25312539
case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
25322540
case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
25332541
case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2542+
case OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
2543+
case OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
25342544
case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
25352545
case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
25362546
case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;

include/spirv/unified1/spirv.hpp11

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -747,13 +747,17 @@ enum class BuiltIn : unsigned {
747747
HitKindNV = 5333,
748748
CurrentRayTimeNV = 5334,
749749
HitTriangleVertexPositionsKHR = 5335,
750+
HitMicroTriangleVertexPositionsNV = 5337,
751+
HitMicroTriangleVertexBarycentricsNV = 5344,
750752
IncomingRayFlagsKHR = 5351,
751753
IncomingRayFlagsNV = 5351,
752754
RayGeometryIndexKHR = 5352,
753755
WarpsPerSMNV = 5374,
754756
SMCountNV = 5375,
755757
WarpIDNV = 5376,
756758
SMIDNV = 5377,
759+
HitKindFrontFacingMicroTriangleNV = 5405,
760+
HitKindBackFacingMicroTriangleNV = 5406,
757761
CullMaskKHR = 6021,
758762
Max = 0x7fffffff,
759763
};
@@ -1122,10 +1126,12 @@ enum class Capability : unsigned {
11221126
FragmentShaderPixelInterlockEXT = 5378,
11231127
DemoteToHelperInvocation = 5379,
11241128
DemoteToHelperInvocationEXT = 5379,
1129+
DisplacementMicromapNV = 5380,
11251130
RayTracingOpacityMicromapEXT = 5381,
11261131
ShaderInvocationReorderNV = 5383,
11271132
BindlessTextureNV = 5390,
11281133
RayQueryPositionFetchKHR = 5391,
1134+
RayTracingDisplacementMicromapNV = 5409,
11291135
SubgroupShuffleINTEL = 5568,
11301136
SubgroupBufferBlockIOINTEL = 5569,
11311137
SubgroupImageBlockIOINTEL = 5570,
@@ -1805,6 +1811,8 @@ enum class Op : unsigned {
18051811
OpSetMeshOutputsEXT = 5295,
18061812
OpGroupNonUniformPartitionNV = 5296,
18071813
OpWritePackedPrimitiveIndices4x8NV = 5299,
1814+
OpFetchMicroTriangleVertexPositionNV = 5300,
1815+
OpFetchMicroTriangleVertexBarycentricNV = 5301,
18081816
OpReportIntersectionKHR = 5334,
18091817
OpReportIntersectionNV = 5334,
18101818
OpIgnoreIntersectionNV = 5335,
@@ -2531,6 +2539,8 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
25312539
case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
25322540
case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
25332541
case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2542+
case Op::OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
2543+
case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
25342544
case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
25352545
case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
25362546
case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;

include/spirv/unified1/spirv.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -776,13 +776,17 @@
776776
"HitKindNV": 5333,
777777
"CurrentRayTimeNV": 5334,
778778
"HitTriangleVertexPositionsKHR": 5335,
779+
"HitMicroTriangleVertexPositionsNV": 5337,
780+
"HitMicroTriangleVertexBarycentricsNV": 5344,
779781
"IncomingRayFlagsKHR": 5351,
780782
"IncomingRayFlagsNV": 5351,
781783
"RayGeometryIndexKHR": 5352,
782784
"WarpsPerSMNV": 5374,
783785
"SMCountNV": 5375,
784786
"WarpIDNV": 5376,
785787
"SMIDNV": 5377,
788+
"HitKindFrontFacingMicroTriangleNV": 5405,
789+
"HitKindBackFacingMicroTriangleNV": 5406,
786790
"CullMaskKHR": 6021
787791
}
788792
},
@@ -1102,10 +1106,12 @@
11021106
"FragmentShaderPixelInterlockEXT": 5378,
11031107
"DemoteToHelperInvocation": 5379,
11041108
"DemoteToHelperInvocationEXT": 5379,
1109+
"DisplacementMicromapNV": 5380,
11051110
"RayTracingOpacityMicromapEXT": 5381,
11061111
"ShaderInvocationReorderNV": 5383,
11071112
"BindlessTextureNV": 5390,
11081113
"RayQueryPositionFetchKHR": 5391,
1114+
"RayTracingDisplacementMicromapNV": 5409,
11091115
"SubgroupShuffleINTEL": 5568,
11101116
"SubgroupBufferBlockIOINTEL": 5569,
11111117
"SubgroupImageBlockIOINTEL": 5570,
@@ -1807,6 +1813,8 @@
18071813
"OpSetMeshOutputsEXT": 5295,
18081814
"OpGroupNonUniformPartitionNV": 5296,
18091815
"OpWritePackedPrimitiveIndices4x8NV": 5299,
1816+
"OpFetchMicroTriangleVertexPositionNV": 5300,
1817+
"OpFetchMicroTriangleVertexBarycentricNV": 5301,
18101818
"OpReportIntersectionKHR": 5334,
18111819
"OpReportIntersectionNV": 5334,
18121820
"OpIgnoreIntersectionNV": 5335,

0 commit comments

Comments
 (0)