Skip to content

Commit 7f1d2f4

Browse files
authored
Merge pull request KhronosGroup#344 from ewerness-nv/SPV_KHR_ray_tracing_position_fetch
Add support for SPV_KHR_ray_tracing_position_fetch
2 parents e08a279 + 131fdde commit 7f1d2f4

File tree

10 files changed

+78
-0
lines changed

10 files changed

+78
-0
lines changed

include/spirv/unified1/spirv.bf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,7 @@ namespace Spv
721721
HitKindKHR = 5333,
722722
HitKindNV = 5333,
723723
CurrentRayTimeNV = 5334,
724+
HitTriangleVertexPositionsKHR = 5335,
724725
IncomingRayFlagsKHR = 5351,
725726
IncomingRayFlagsNV = 5351,
726727
RayGeometryIndexKHR = 5352,
@@ -1083,6 +1084,7 @@ namespace Spv
10831084
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
10841085
StorageTexelBufferArrayNonUniformIndexing = 5312,
10851086
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1087+
RayTracingPositionFetchKHR = 5336,
10861088
RayTracingNV = 5340,
10871089
RayTracingMotionBlurNV = 5341,
10881090
VulkanMemoryModel = 5345,
@@ -1103,6 +1105,7 @@ namespace Spv
11031105
RayTracingOpacityMicromapEXT = 5381,
11041106
ShaderInvocationReorderNV = 5383,
11051107
BindlessTextureNV = 5390,
1108+
RayQueryPositionFetchKHR = 5391,
11061109
SubgroupShuffleINTEL = 5568,
11071110
SubgroupBufferBlockIOINTEL = 5569,
11081111
SubgroupImageBlockIOINTEL = 5570,
@@ -1716,6 +1719,7 @@ namespace Spv
17161719
OpTraceNV = 5337,
17171720
OpTraceMotionNV = 5338,
17181721
OpTraceRayMotionNV = 5339,
1722+
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
17191723
OpTypeAccelerationStructureKHR = 5341,
17201724
OpTypeAccelerationStructureNV = 5341,
17211725
OpExecuteCallableNV = 5344,

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

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5483,6 +5483,25 @@
54835483
"extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
54845484
"version" : "None"
54855485
},
5486+
{
5487+
"opname" : "OpRayQueryGetIntersectionTriangleVertexPositionsKHR",
5488+
"class" : "Reserved",
5489+
"opcode" : 5340,
5490+
"operands" : [
5491+
{ "kind" : "IdResultType" },
5492+
{ "kind" : "IdResult" },
5493+
{
5494+
"kind" : "IdRef",
5495+
"name" : "'RayQuery'"
5496+
},
5497+
{
5498+
"kind" : "IdRef",
5499+
"name" : "'Intersection'"
5500+
}
5501+
],
5502+
"capabilities" : [ "RayQueryPositionFetchKHR" ],
5503+
"version" : "None"
5504+
},
54865505
{
54875506
"opname" : "OpTypeAccelerationStructureNV",
54885507
"class" : "Reserved",
@@ -13537,6 +13556,12 @@
1353713556
"extensions" : [ "SPV_NV_ray_tracing_motion_blur" ],
1353813557
"version" : "None"
1353913558
},
13559+
{
13560+
"enumerant" : "HitTriangleVertexPositionsKHR",
13561+
"value" : 5335,
13562+
"capabilities" : [ "RayTracingPositionFetchKHR" ],
13563+
"version" : "None"
13564+
},
1354013565
{
1354113566
"enumerant" : "IncomingRayFlagsNV",
1354213567
"value" : 5351,
@@ -14627,6 +14652,13 @@
1462714652
"extensions" : [ "SPV_EXT_descriptor_indexing" ],
1462814653
"version" : "1.5"
1462914654
},
14655+
{
14656+
"enumerant" : "RayTracingPositionFetchKHR",
14657+
"value" : 5336,
14658+
"capabilities" : [ "Shader" ],
14659+
"extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ],
14660+
"version" : "None"
14661+
},
1463014662
{
1463114663
"enumerant" : "RayTracingNV",
1463214664
"value" : 5340,
@@ -14758,6 +14790,13 @@
1475814790
"extensions" : [ "SPV_NV_bindless_texture" ],
1475914791
"version" : "None"
1476014792
},
14793+
{
14794+
"enumerant" : "RayQueryPositionFetchKHR",
14795+
"value" : 5391,
14796+
"capabilities" : [ "Shader" ],
14797+
"extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ],
14798+
"version" : "None"
14799+
},
1476114800
{
1476214801
"enumerant" : "SubgroupShuffleINTEL",
1476314802
"value" : 5568,

include/spirv/unified1/spirv.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,7 @@ public enum BuiltIn
720720
HitKindKHR = 5333,
721721
HitKindNV = 5333,
722722
CurrentRayTimeNV = 5334,
723+
HitTriangleVertexPositionsKHR = 5335,
723724
IncomingRayFlagsKHR = 5351,
724725
IncomingRayFlagsNV = 5351,
725726
RayGeometryIndexKHR = 5352,
@@ -1082,6 +1083,7 @@ public enum Capability
10821083
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
10831084
StorageTexelBufferArrayNonUniformIndexing = 5312,
10841085
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1086+
RayTracingPositionFetchKHR = 5336,
10851087
RayTracingNV = 5340,
10861088
RayTracingMotionBlurNV = 5341,
10871089
VulkanMemoryModel = 5345,
@@ -1102,6 +1104,7 @@ public enum Capability
11021104
RayTracingOpacityMicromapEXT = 5381,
11031105
ShaderInvocationReorderNV = 5383,
11041106
BindlessTextureNV = 5390,
1107+
RayQueryPositionFetchKHR = 5391,
11051108
SubgroupShuffleINTEL = 5568,
11061109
SubgroupBufferBlockIOINTEL = 5569,
11071110
SubgroupImageBlockIOINTEL = 5570,
@@ -1715,6 +1718,7 @@ public enum Op
17151718
OpTraceNV = 5337,
17161719
OpTraceMotionNV = 5338,
17171720
OpTraceRayMotionNV = 5339,
1721+
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
17181722
OpTypeAccelerationStructureKHR = 5341,
17191723
OpTypeAccelerationStructureNV = 5341,
17201724
OpExecuteCallableNV = 5344,

include/spirv/unified1/spirv.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,7 @@ typedef enum SpvBuiltIn_ {
726726
SpvBuiltInHitKindKHR = 5333,
727727
SpvBuiltInHitKindNV = 5333,
728728
SpvBuiltInCurrentRayTimeNV = 5334,
729+
SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
729730
SpvBuiltInIncomingRayFlagsKHR = 5351,
730731
SpvBuiltInIncomingRayFlagsNV = 5351,
731732
SpvBuiltInRayGeometryIndexKHR = 5352,
@@ -1082,6 +1083,7 @@ typedef enum SpvCapability_ {
10821083
SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
10831084
SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
10841085
SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1086+
SpvCapabilityRayTracingPositionFetchKHR = 5336,
10851087
SpvCapabilityRayTracingNV = 5340,
10861088
SpvCapabilityRayTracingMotionBlurNV = 5341,
10871089
SpvCapabilityVulkanMemoryModel = 5345,
@@ -1102,6 +1104,7 @@ typedef enum SpvCapability_ {
11021104
SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
11031105
SpvCapabilityShaderInvocationReorderNV = 5383,
11041106
SpvCapabilityBindlessTextureNV = 5390,
1107+
SpvCapabilityRayQueryPositionFetchKHR = 5391,
11051108
SpvCapabilitySubgroupShuffleINTEL = 5568,
11061109
SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
11071110
SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1713,6 +1716,7 @@ typedef enum SpvOp_ {
17131716
SpvOpTraceNV = 5337,
17141717
SpvOpTraceMotionNV = 5338,
17151718
SpvOpTraceRayMotionNV = 5339,
1719+
SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
17161720
SpvOpTypeAccelerationStructureKHR = 5341,
17171721
SpvOpTypeAccelerationStructureNV = 5341,
17181722
SpvOpExecuteCallableNV = 5344,
@@ -2429,6 +2433,7 @@ inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultTy
24292433
case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
24302434
case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
24312435
case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2436+
case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
24322437
case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
24332438
case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
24342439
case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;

include/spirv/unified1/spirv.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,7 @@ enum BuiltIn {
722722
BuiltInHitKindKHR = 5333,
723723
BuiltInHitKindNV = 5333,
724724
BuiltInCurrentRayTimeNV = 5334,
725+
BuiltInHitTriangleVertexPositionsKHR = 5335,
725726
BuiltInIncomingRayFlagsKHR = 5351,
726727
BuiltInIncomingRayFlagsNV = 5351,
727728
BuiltInRayGeometryIndexKHR = 5352,
@@ -1078,6 +1079,7 @@ enum Capability {
10781079
CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
10791080
CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
10801081
CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1082+
CapabilityRayTracingPositionFetchKHR = 5336,
10811083
CapabilityRayTracingNV = 5340,
10821084
CapabilityRayTracingMotionBlurNV = 5341,
10831085
CapabilityVulkanMemoryModel = 5345,
@@ -1098,6 +1100,7 @@ enum Capability {
10981100
CapabilityRayTracingOpacityMicromapEXT = 5381,
10991101
CapabilityShaderInvocationReorderNV = 5383,
11001102
CapabilityBindlessTextureNV = 5390,
1103+
CapabilityRayQueryPositionFetchKHR = 5391,
11011104
CapabilitySubgroupShuffleINTEL = 5568,
11021105
CapabilitySubgroupBufferBlockIOINTEL = 5569,
11031106
CapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1709,6 +1712,7 @@ enum Op {
17091712
OpTraceNV = 5337,
17101713
OpTraceMotionNV = 5338,
17111714
OpTraceRayMotionNV = 5339,
1715+
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
17121716
OpTypeAccelerationStructureKHR = 5341,
17131717
OpTypeAccelerationStructureNV = 5341,
17141718
OpExecuteCallableNV = 5344,
@@ -2425,6 +2429,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
24252429
case OpTraceNV: *hasResult = false; *hasResultType = false; break;
24262430
case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
24272431
case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2432+
case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
24282433
case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
24292434
case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
24302435
case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;

include/spirv/unified1/spirv.hpp11

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,7 @@ enum class BuiltIn : unsigned {
722722
HitKindKHR = 5333,
723723
HitKindNV = 5333,
724724
CurrentRayTimeNV = 5334,
725+
HitTriangleVertexPositionsKHR = 5335,
725726
IncomingRayFlagsKHR = 5351,
726727
IncomingRayFlagsNV = 5351,
727728
RayGeometryIndexKHR = 5352,
@@ -1078,6 +1079,7 @@ enum class Capability : unsigned {
10781079
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
10791080
StorageTexelBufferArrayNonUniformIndexing = 5312,
10801081
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1082+
RayTracingPositionFetchKHR = 5336,
10811083
RayTracingNV = 5340,
10821084
RayTracingMotionBlurNV = 5341,
10831085
VulkanMemoryModel = 5345,
@@ -1098,6 +1100,7 @@ enum class Capability : unsigned {
10981100
RayTracingOpacityMicromapEXT = 5381,
10991101
ShaderInvocationReorderNV = 5383,
11001102
BindlessTextureNV = 5390,
1103+
RayQueryPositionFetchKHR = 5391,
11011104
SubgroupShuffleINTEL = 5568,
11021105
SubgroupBufferBlockIOINTEL = 5569,
11031106
SubgroupImageBlockIOINTEL = 5570,
@@ -1709,6 +1712,7 @@ enum class Op : unsigned {
17091712
OpTraceNV = 5337,
17101713
OpTraceMotionNV = 5338,
17111714
OpTraceRayMotionNV = 5339,
1715+
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
17121716
OpTypeAccelerationStructureKHR = 5341,
17131717
OpTypeAccelerationStructureNV = 5341,
17141718
OpExecuteCallableNV = 5344,
@@ -2425,6 +2429,7 @@ inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
24252429
case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
24262430
case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
24272431
case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2432+
case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
24282433
case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
24292434
case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
24302435
case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;

include/spirv/unified1/spirv.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,7 @@
751751
"HitKindKHR": 5333,
752752
"HitKindNV": 5333,
753753
"CurrentRayTimeNV": 5334,
754+
"HitTriangleVertexPositionsKHR": 5335,
754755
"IncomingRayFlagsKHR": 5351,
755756
"IncomingRayFlagsNV": 5351,
756757
"RayGeometryIndexKHR": 5352,
@@ -1058,6 +1059,7 @@
10581059
"UniformTexelBufferArrayNonUniformIndexingEXT": 5311,
10591060
"StorageTexelBufferArrayNonUniformIndexing": 5312,
10601061
"StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
1062+
"RayTracingPositionFetchKHR": 5336,
10611063
"RayTracingNV": 5340,
10621064
"RayTracingMotionBlurNV": 5341,
10631065
"VulkanMemoryModel": 5345,
@@ -1078,6 +1080,7 @@
10781080
"RayTracingOpacityMicromapEXT": 5381,
10791081
"ShaderInvocationReorderNV": 5383,
10801082
"BindlessTextureNV": 5390,
1083+
"RayQueryPositionFetchKHR": 5391,
10811084
"SubgroupShuffleINTEL": 5568,
10821085
"SubgroupBufferBlockIOINTEL": 5569,
10831086
"SubgroupImageBlockIOINTEL": 5570,
@@ -1699,6 +1702,7 @@
16991702
"OpTraceNV": 5337,
17001703
"OpTraceMotionNV": 5338,
17011704
"OpTraceRayMotionNV": 5339,
1705+
"OpRayQueryGetIntersectionTriangleVertexPositionsKHR": 5340,
17021706
"OpTypeAccelerationStructureKHR": 5341,
17031707
"OpTypeAccelerationStructureNV": 5341,
17041708
"OpExecuteCallableNV": 5344,

include/spirv/unified1/spirv.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,7 @@ spv = {
694694
HitKindKHR = 5333,
695695
HitKindNV = 5333,
696696
CurrentRayTimeNV = 5334,
697+
HitTriangleVertexPositionsKHR = 5335,
697698
IncomingRayFlagsKHR = 5351,
698699
IncomingRayFlagsNV = 5351,
699700
RayGeometryIndexKHR = 5352,
@@ -1040,6 +1041,7 @@ spv = {
10401041
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
10411042
StorageTexelBufferArrayNonUniformIndexing = 5312,
10421043
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1044+
RayTracingPositionFetchKHR = 5336,
10431045
RayTracingNV = 5340,
10441046
RayTracingMotionBlurNV = 5341,
10451047
VulkanMemoryModel = 5345,
@@ -1060,6 +1062,7 @@ spv = {
10601062
RayTracingOpacityMicromapEXT = 5381,
10611063
ShaderInvocationReorderNV = 5383,
10621064
BindlessTextureNV = 5390,
1065+
RayQueryPositionFetchKHR = 5391,
10631066
SubgroupShuffleINTEL = 5568,
10641067
SubgroupBufferBlockIOINTEL = 5569,
10651068
SubgroupImageBlockIOINTEL = 5570,
@@ -1660,6 +1663,7 @@ spv = {
16601663
OpTraceNV = 5337,
16611664
OpTraceMotionNV = 5338,
16621665
OpTraceRayMotionNV = 5339,
1666+
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
16631667
OpTypeAccelerationStructureKHR = 5341,
16641668
OpTypeAccelerationStructureNV = 5341,
16651669
OpExecuteCallableNV = 5344,

include/spirv/unified1/spirv.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,7 @@
694694
'HitKindKHR' : 5333,
695695
'HitKindNV' : 5333,
696696
'CurrentRayTimeNV' : 5334,
697+
'HitTriangleVertexPositionsKHR' : 5335,
697698
'IncomingRayFlagsKHR' : 5351,
698699
'IncomingRayFlagsNV' : 5351,
699700
'RayGeometryIndexKHR' : 5352,
@@ -1040,6 +1041,7 @@
10401041
'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
10411042
'StorageTexelBufferArrayNonUniformIndexing' : 5312,
10421043
'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
1044+
'RayTracingPositionFetchKHR' : 5336,
10431045
'RayTracingNV' : 5340,
10441046
'RayTracingMotionBlurNV' : 5341,
10451047
'VulkanMemoryModel' : 5345,
@@ -1060,6 +1062,7 @@
10601062
'RayTracingOpacityMicromapEXT' : 5381,
10611063
'ShaderInvocationReorderNV' : 5383,
10621064
'BindlessTextureNV' : 5390,
1065+
'RayQueryPositionFetchKHR' : 5391,
10631066
'SubgroupShuffleINTEL' : 5568,
10641067
'SubgroupBufferBlockIOINTEL' : 5569,
10651068
'SubgroupImageBlockIOINTEL' : 5570,
@@ -1660,6 +1663,7 @@
16601663
'OpTraceNV' : 5337,
16611664
'OpTraceMotionNV' : 5338,
16621665
'OpTraceRayMotionNV' : 5339,
1666+
'OpRayQueryGetIntersectionTriangleVertexPositionsKHR' : 5340,
16631667
'OpTypeAccelerationStructureKHR' : 5341,
16641668
'OpTypeAccelerationStructureNV' : 5341,
16651669
'OpExecuteCallableNV' : 5344,

include/spirv/unified1/spv.d

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,7 @@ enum BuiltIn : uint
723723
HitKindKHR = 5333,
724724
HitKindNV = 5333,
725725
CurrentRayTimeNV = 5334,
726+
HitTriangleVertexPositionsKHR = 5335,
726727
IncomingRayFlagsKHR = 5351,
727728
IncomingRayFlagsNV = 5351,
728729
RayGeometryIndexKHR = 5352,
@@ -1085,6 +1086,7 @@ enum Capability : uint
10851086
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
10861087
StorageTexelBufferArrayNonUniformIndexing = 5312,
10871088
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1089+
RayTracingPositionFetchKHR = 5336,
10881090
RayTracingNV = 5340,
10891091
RayTracingMotionBlurNV = 5341,
10901092
VulkanMemoryModel = 5345,
@@ -1105,6 +1107,7 @@ enum Capability : uint
11051107
RayTracingOpacityMicromapEXT = 5381,
11061108
ShaderInvocationReorderNV = 5383,
11071109
BindlessTextureNV = 5390,
1110+
RayQueryPositionFetchKHR = 5391,
11081111
SubgroupShuffleINTEL = 5568,
11091112
SubgroupBufferBlockIOINTEL = 5569,
11101113
SubgroupImageBlockIOINTEL = 5570,
@@ -1718,6 +1721,7 @@ enum Op : uint
17181721
OpTraceNV = 5337,
17191722
OpTraceMotionNV = 5338,
17201723
OpTraceRayMotionNV = 5339,
1724+
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
17211725
OpTypeAccelerationStructureKHR = 5341,
17221726
OpTypeAccelerationStructureNV = 5341,
17231727
OpExecuteCallableNV = 5344,

0 commit comments

Comments
 (0)