Make gl_HitT proper aliases of gl_RayTmax

Changes the gl_HitT builtins properly alias
their gl_RayTmax. Previously they ended up as
duplicate variables, rather than aliased.
This commit is contained in:
Max Andersson 2022-03-21 07:01:08 +01:00 committed by arcady-lunarg
parent 7c3c50ea94
commit 1cad045cc2
9 changed files with 303 additions and 327 deletions

View File

@ -989,18 +989,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
return spv::BuiltInHitTriangleVertexPositionsKHR;
case glslang::EbvInstanceCustomIndex:
return spv::BuiltInInstanceCustomIndexKHR;
case glslang::EbvHitT:
{
// this is a GLSL alias of RayTmax
// in SPV_NV_ray_tracing it has a dedicated builtin
// but in SPV_KHR_ray_tracing it gets mapped to RayTmax
auto& extensions = glslangIntermediate->getRequestedExtensions();
if (extensions.find("GL_NV_ray_tracing") != extensions.end()) {
return spv::BuiltInHitTNV;
} else {
return spv::BuiltInRayTmaxKHR;
}
}
case glslang::EbvHitKind:
return spv::BuiltInHitKindKHR;
case glslang::EbvObjectToWorld:

View File

@ -383,7 +383,7 @@ ERROR: node is still EOpNull!
0:119 Sequence
0:119 move second child to first child ( temp float)
0:119 'v11' ( temp float)
0:119 'gl_HitTNV' ( in float HitTNV)
0:119 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:120 Sequence
0:120 move second child to first child ( temp uint)
0:120 'v12' ( temp uint)
@ -760,7 +760,7 @@ ERROR: node is still EOpNull!
0:119 Sequence
0:119 move second child to first child ( temp float)
0:119 'v11' ( temp float)
0:119 'gl_HitTNV' ( in float HitTNV)
0:119 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:120 Sequence
0:120 move second child to first child ( temp uint)
0:120 'v12' ( temp uint)

View File

@ -383,7 +383,7 @@ ERROR: node is still EOpNull!
0:121 Sequence
0:121 move second child to first child ( temp float)
0:121 'v11' ( temp float)
0:121 'gl_HitTNV' ( in float HitTNV)
0:121 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:122 Sequence
0:122 move second child to first child ( temp uint)
0:122 'v12' ( temp uint)
@ -771,7 +771,7 @@ ERROR: node is still EOpNull!
0:121 Sequence
0:121 move second child to first child ( temp float)
0:121 'v11' ( temp float)
0:121 'gl_HitTNV' ( in float HitTNV)
0:121 'gl_RayTmaxNV' ( in float ObjectRayTmaxNV)
0:122 Sequence
0:122 move second child to first child ( temp uint)
0:122 'v12' ( temp uint)

View File

@ -1,13 +1,13 @@
spv.AnyHitShader.rahit
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 81
// Id's are bound by 80
Capability RayTracingNV
Extension "SPV_NV_ray_tracing"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67
EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 57 63 66
Source GLSL 460
SourceExtension "GL_NV_ray_tracing"
Name 4 "main"
@ -34,14 +34,13 @@ spv.AnyHitShader.rahit
Name 49 "v10"
Name 50 "gl_RayTmaxNV"
Name 52 "v11"
Name 53 "gl_HitTNV"
Name 56 "v12"
Name 58 "gl_HitKindNV"
Name 62 "v13"
Name 64 "gl_ObjectToWorldNV"
Name 66 "v14"
Name 67 "gl_WorldToObjectNV"
Name 71 "incomingPayload"
Name 55 "v12"
Name 57 "gl_HitKindNV"
Name 61 "v13"
Name 63 "gl_ObjectToWorldNV"
Name 65 "v14"
Name 66 "gl_WorldToObjectNV"
Name 70 "incomingPayload"
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR
Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
@ -53,11 +52,10 @@ spv.AnyHitShader.rahit
Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionKHR
Decorate 47(gl_RayTminNV) BuiltIn RayTminKHR
Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxKHR
Decorate 53(gl_HitTNV) BuiltIn HitTNV
Decorate 58(gl_HitKindNV) BuiltIn HitKindKHR
Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldKHR
Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectKHR
Decorate 71(incomingPayload) Location 1
Decorate 57(gl_HitKindNV) BuiltIn HitKindKHR
Decorate 63(gl_ObjectToWorldNV) BuiltIn ObjectToWorldKHR
Decorate 66(gl_WorldToObjectNV) BuiltIn WorldToObjectKHR
Decorate 70(incomingPayload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
@ -84,22 +82,21 @@ spv.AnyHitShader.rahit
46: TypePointer Input 28(float)
47(gl_RayTminNV): 46(ptr) Variable Input
50(gl_RayTmaxNV): 46(ptr) Variable Input
53(gl_HitTNV): 46(ptr) Variable Input
55: TypePointer Function 6(int)
57: TypePointer Input 6(int)
58(gl_HitKindNV): 57(ptr) Variable Input
60: TypeMatrix 29(fvec3) 4
61: TypePointer Function 60
63: TypePointer Input 60
64(gl_ObjectToWorldNV): 63(ptr) Variable Input
67(gl_WorldToObjectNV): 63(ptr) Variable Input
69: TypeVector 28(float) 4
70: TypePointer IncomingRayPayloadKHR 69(fvec4)
71(incomingPayload): 70(ptr) Variable IncomingRayPayloadKHR
72: 28(float) Constant 1056964608
73: 69(fvec4) ConstantComposite 72 72 72 72
75: 16(int) Constant 1
76: TypeBool
54: TypePointer Function 6(int)
56: TypePointer Input 6(int)
57(gl_HitKindNV): 56(ptr) Variable Input
59: TypeMatrix 29(fvec3) 4
60: TypePointer Function 59
62: TypePointer Input 59
63(gl_ObjectToWorldNV): 62(ptr) Variable Input
66(gl_WorldToObjectNV): 62(ptr) Variable Input
68: TypeVector 28(float) 4
69: TypePointer IncomingRayPayloadKHR 68(fvec4)
70(incomingPayload): 69(ptr) Variable IncomingRayPayloadKHR
71: 28(float) Constant 1056964608
72: 68(fvec4) ConstantComposite 71 71 71 71
74: 16(int) Constant 1
75: TypeBool
4(main): 2 Function None 3
5: Label
9(v0): 8(ptr) Variable Function
@ -114,9 +111,9 @@ spv.AnyHitShader.rahit
45(v9): 44(ptr) Variable Function
49(v10): 44(ptr) Variable Function
52(v11): 44(ptr) Variable Function
56(v12): 55(ptr) Variable Function
62(v13): 61(ptr) Variable Function
66(v14): 61(ptr) Variable Function
55(v12): 54(ptr) Variable Function
61(v13): 60(ptr) Variable Function
65(v14): 60(ptr) Variable Function
12: 7(ivec3) Load 11(gl_LaunchIDNV)
Store 9(v0) 12
15: 7(ivec3) Load 14(gl_LaunchSizeNV)
@ -139,25 +136,25 @@ spv.AnyHitShader.rahit
Store 45(v9) 48
51: 28(float) Load 50(gl_RayTmaxNV)
Store 49(v10) 51
54: 28(float) Load 53(gl_HitTNV)
Store 52(v11) 54
59: 6(int) Load 58(gl_HitKindNV)
Store 56(v12) 59
65: 60 Load 64(gl_ObjectToWorldNV)
Store 62(v13) 65
68: 60 Load 67(gl_WorldToObjectNV)
Store 66(v14) 68
Store 71(incomingPayload) 73
74: 16(int) Load 18(v2)
77: 76(bool) IEqual 74 75
SelectionMerge 79 None
BranchConditional 77 78 80
78: Label
53: 28(float) Load 50(gl_RayTmaxNV)
Store 52(v11) 53
58: 6(int) Load 57(gl_HitKindNV)
Store 55(v12) 58
64: 59 Load 63(gl_ObjectToWorldNV)
Store 61(v13) 64
67: 59 Load 66(gl_WorldToObjectNV)
Store 65(v14) 67
Store 70(incomingPayload) 72
73: 16(int) Load 18(v2)
76: 75(bool) IEqual 73 74
SelectionMerge 78 None
BranchConditional 76 77 79
77: Label
IgnoreIntersectionNV
Branch 79
80: Label
Branch 78
79: Label
TerminateRayNV
Branch 79
79: Label
Branch 78
78: Label
Return
FunctionEnd

View File

@ -1,13 +1,13 @@
spv.ClosestHitShader.rchit
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 88
// Id's are bound by 87
Capability RayTracingNV
Extension "SPV_NV_ray_tracing"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67
EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 57 63 66
Source GLSL 460
SourceExtension "GL_NV_ray_tracing"
Name 4 "main"
@ -34,16 +34,15 @@ spv.ClosestHitShader.rchit
Name 49 "v10"
Name 50 "gl_RayTmaxNV"
Name 52 "v11"
Name 53 "gl_HitTNV"
Name 56 "v12"
Name 58 "gl_HitKindNV"
Name 62 "v13"
Name 64 "gl_ObjectToWorldNV"
Name 66 "v14"
Name 67 "gl_WorldToObjectNV"
Name 71 "accNV"
Name 85 "localPayload"
Name 87 "incomingPayload"
Name 55 "v12"
Name 57 "gl_HitKindNV"
Name 61 "v13"
Name 63 "gl_ObjectToWorldNV"
Name 65 "v14"
Name 66 "gl_WorldToObjectNV"
Name 70 "accNV"
Name 84 "localPayload"
Name 86 "incomingPayload"
Decorate 11(gl_LaunchIDNV) BuiltIn LaunchIdKHR
Decorate 14(gl_LaunchSizeNV) BuiltIn LaunchSizeKHR
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
@ -55,14 +54,13 @@ spv.ClosestHitShader.rchit
Decorate 42(gl_ObjectRayDirectionNV) BuiltIn ObjectRayDirectionKHR
Decorate 47(gl_RayTminNV) BuiltIn RayTminKHR
Decorate 50(gl_RayTmaxNV) BuiltIn RayTmaxKHR
Decorate 53(gl_HitTNV) BuiltIn HitTNV
Decorate 58(gl_HitKindNV) BuiltIn HitKindKHR
Decorate 64(gl_ObjectToWorldNV) BuiltIn ObjectToWorldKHR
Decorate 67(gl_WorldToObjectNV) BuiltIn WorldToObjectKHR
Decorate 71(accNV) DescriptorSet 0
Decorate 71(accNV) Binding 0
Decorate 85(localPayload) Location 0
Decorate 87(incomingPayload) Location 1
Decorate 57(gl_HitKindNV) BuiltIn HitKindKHR
Decorate 63(gl_ObjectToWorldNV) BuiltIn ObjectToWorldKHR
Decorate 66(gl_WorldToObjectNV) BuiltIn WorldToObjectKHR
Decorate 70(accNV) DescriptorSet 0
Decorate 70(accNV) Binding 0
Decorate 84(localPayload) Location 0
Decorate 86(incomingPayload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
@ -89,33 +87,32 @@ spv.ClosestHitShader.rchit
46: TypePointer Input 28(float)
47(gl_RayTminNV): 46(ptr) Variable Input
50(gl_RayTmaxNV): 46(ptr) Variable Input
53(gl_HitTNV): 46(ptr) Variable Input
55: TypePointer Function 6(int)
57: TypePointer Input 6(int)
58(gl_HitKindNV): 57(ptr) Variable Input
60: TypeMatrix 29(fvec3) 4
61: TypePointer Function 60
63: TypePointer Input 60
64(gl_ObjectToWorldNV): 63(ptr) Variable Input
67(gl_WorldToObjectNV): 63(ptr) Variable Input
69: TypeAccelerationStructureKHR
70: TypePointer UniformConstant 69
71(accNV): 70(ptr) Variable UniformConstant
73: 6(int) Constant 0
74: 6(int) Constant 1
75: 6(int) Constant 2
76: 6(int) Constant 3
77: 28(float) Constant 1056964608
78: 29(fvec3) ConstantComposite 77 77 77
79: 28(float) Constant 1065353216
80: 29(fvec3) ConstantComposite 79 79 79
81: 28(float) Constant 1061158912
82: 16(int) Constant 1
83: TypeVector 28(float) 4
84: TypePointer RayPayloadKHR 83(fvec4)
85(localPayload): 84(ptr) Variable RayPayloadKHR
86: TypePointer IncomingRayPayloadKHR 83(fvec4)
87(incomingPayload): 86(ptr) Variable IncomingRayPayloadKHR
54: TypePointer Function 6(int)
56: TypePointer Input 6(int)
57(gl_HitKindNV): 56(ptr) Variable Input
59: TypeMatrix 29(fvec3) 4
60: TypePointer Function 59
62: TypePointer Input 59
63(gl_ObjectToWorldNV): 62(ptr) Variable Input
66(gl_WorldToObjectNV): 62(ptr) Variable Input
68: TypeAccelerationStructureKHR
69: TypePointer UniformConstant 68
70(accNV): 69(ptr) Variable UniformConstant
72: 6(int) Constant 0
73: 6(int) Constant 1
74: 6(int) Constant 2
75: 6(int) Constant 3
76: 28(float) Constant 1056964608
77: 29(fvec3) ConstantComposite 76 76 76
78: 28(float) Constant 1065353216
79: 29(fvec3) ConstantComposite 78 78 78
80: 28(float) Constant 1061158912
81: 16(int) Constant 1
82: TypeVector 28(float) 4
83: TypePointer RayPayloadKHR 82(fvec4)
84(localPayload): 83(ptr) Variable RayPayloadKHR
85: TypePointer IncomingRayPayloadKHR 82(fvec4)
86(incomingPayload): 85(ptr) Variable IncomingRayPayloadKHR
4(main): 2 Function None 3
5: Label
9(v0): 8(ptr) Variable Function
@ -130,9 +127,9 @@ spv.ClosestHitShader.rchit
45(v9): 44(ptr) Variable Function
49(v10): 44(ptr) Variable Function
52(v11): 44(ptr) Variable Function
56(v12): 55(ptr) Variable Function
62(v13): 61(ptr) Variable Function
66(v14): 61(ptr) Variable Function
55(v12): 54(ptr) Variable Function
61(v13): 60(ptr) Variable Function
65(v14): 60(ptr) Variable Function
12: 7(ivec3) Load 11(gl_LaunchIDNV)
Store 9(v0) 12
15: 7(ivec3) Load 14(gl_LaunchSizeNV)
@ -155,15 +152,15 @@ spv.ClosestHitShader.rchit
Store 45(v9) 48
51: 28(float) Load 50(gl_RayTmaxNV)
Store 49(v10) 51
54: 28(float) Load 53(gl_HitTNV)
Store 52(v11) 54
59: 6(int) Load 58(gl_HitKindNV)
Store 56(v12) 59
65: 60 Load 64(gl_ObjectToWorldNV)
Store 62(v13) 65
68: 60 Load 67(gl_WorldToObjectNV)
Store 66(v14) 68
72: 69 Load 71(accNV)
TraceNV 72 73 74 75 76 73 78 77 80 81 82
53: 28(float) Load 50(gl_RayTmaxNV)
Store 52(v11) 53
58: 6(int) Load 57(gl_HitKindNV)
Store 55(v12) 58
64: 59 Load 63(gl_ObjectToWorldNV)
Store 61(v13) 64
67: 59 Load 66(gl_WorldToObjectNV)
Store 65(v14) 67
71: 68 Load 70(accNV)
TraceNV 71 72 73 74 75 72 77 76 79 80 81
Return
FunctionEnd

View File

@ -1,7 +1,7 @@
spv.ext.AnyHitShader.rahit
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 116
// Id's are bound by 115
Capability GroupNonUniform
Capability RayTracingKHR
@ -12,7 +12,7 @@ spv.ext.AnyHitShader.rahit
Extension "SPV_KHR_ray_tracing_position_fetch"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 82 88 93 107
EntryPoint AnyHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 57 63 66 69 81 87 92 106
Source GLSL 460
SourceExtension "GL_EXT_ray_cull_mask"
SourceExtension "GL_EXT_ray_tracing"
@ -42,23 +42,22 @@ spv.ext.AnyHitShader.rahit
Name 49 "v10"
Name 50 "gl_RayTmaxEXT"
Name 52 "v11"
Name 53 "gl_HitTEXT"
Name 56 "v12"
Name 58 "gl_HitKindEXT"
Name 62 "v13"
Name 64 "gl_ObjectToWorldEXT"
Name 66 "v14"
Name 67 "gl_WorldToObjectEXT"
Name 69 "v15"
Name 70 "gl_GeometryIndexEXT"
Name 75 "v16"
Name 78 "v17"
Name 81 "v18"
Name 82 "gl_CullMaskEXT"
Name 84 "v19"
Name 88 "gl_HitTriangleVertexPositionsEXT"
Name 93 "incomingPayload"
Name 107 "gl_SubgroupSize"
Name 55 "v12"
Name 57 "gl_HitKindEXT"
Name 61 "v13"
Name 63 "gl_ObjectToWorldEXT"
Name 65 "v14"
Name 66 "gl_WorldToObjectEXT"
Name 68 "v15"
Name 69 "gl_GeometryIndexEXT"
Name 74 "v16"
Name 77 "v17"
Name 80 "v18"
Name 81 "gl_CullMaskEXT"
Name 83 "v19"
Name 87 "gl_HitTriangleVertexPositionsEXT"
Name 92 "incomingPayload"
Name 106 "gl_SubgroupSize"
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
@ -70,17 +69,16 @@ spv.ext.AnyHitShader.rahit
Decorate 42(gl_ObjectRayDirectionEXT) BuiltIn ObjectRayDirectionKHR
Decorate 47(gl_RayTminEXT) BuiltIn RayTminKHR
Decorate 50(gl_RayTmaxEXT) BuiltIn RayTmaxKHR
Decorate 53(gl_HitTEXT) BuiltIn RayTmaxKHR
Decorate 58(gl_HitKindEXT) BuiltIn HitKindKHR
Decorate 64(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR
Decorate 67(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR
Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
Decorate 82(gl_CullMaskEXT) BuiltIn CullMaskKHR
Decorate 88(gl_HitTriangleVertexPositionsEXT) BuiltIn HitTriangleVertexPositionsKHR
Decorate 107(gl_SubgroupSize) RelaxedPrecision
Decorate 107(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 57(gl_HitKindEXT) BuiltIn HitKindKHR
Decorate 63(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR
Decorate 66(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR
Decorate 69(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
Decorate 81(gl_CullMaskEXT) BuiltIn CullMaskKHR
Decorate 87(gl_HitTriangleVertexPositionsEXT) BuiltIn HitTriangleVertexPositionsKHR
Decorate 106(gl_SubgroupSize) RelaxedPrecision
Decorate 106(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 107 RelaxedPrecision
Decorate 108 RelaxedPrecision
Decorate 109 RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
@ -107,34 +105,33 @@ spv.ext.AnyHitShader.rahit
46: TypePointer Input 28(float)
47(gl_RayTminEXT): 46(ptr) Variable Input
50(gl_RayTmaxEXT): 46(ptr) Variable Input
53(gl_HitTEXT): 46(ptr) Variable Input
55: TypePointer Function 6(int)
57: TypePointer Input 6(int)
58(gl_HitKindEXT): 57(ptr) Variable Input
60: TypeMatrix 29(fvec3) 4
61: TypePointer Function 60
63: TypePointer Input 60
64(gl_ObjectToWorldEXT): 63(ptr) Variable Input
67(gl_WorldToObjectEXT): 63(ptr) Variable Input
70(gl_GeometryIndexEXT): 19(ptr) Variable Input
72: TypeVector 28(float) 4
73: TypeMatrix 72(fvec4) 3
74: TypePointer Function 73
82(gl_CullMaskEXT): 57(ptr) Variable Input
85: 6(int) Constant 3
86: TypeArray 29(fvec3) 85
87: TypePointer Input 86
88(gl_HitTriangleVertexPositionsEXT): 87(ptr) Variable Input
89: 16(int) Constant 0
92: TypePointer IncomingRayPayloadKHR 72(fvec4)
93(incomingPayload): 92(ptr) Variable IncomingRayPayloadKHR
94: 28(float) Constant 1056964608
95: 72(fvec4) ConstantComposite 94 94 94 94
97: 16(int) Constant 1
98: TypeBool
103: 6(int) Constant 0
107(gl_SubgroupSize): 57(ptr) Variable Input
110: TypePointer IncomingRayPayloadKHR 28(float)
54: TypePointer Function 6(int)
56: TypePointer Input 6(int)
57(gl_HitKindEXT): 56(ptr) Variable Input
59: TypeMatrix 29(fvec3) 4
60: TypePointer Function 59
62: TypePointer Input 59
63(gl_ObjectToWorldEXT): 62(ptr) Variable Input
66(gl_WorldToObjectEXT): 62(ptr) Variable Input
69(gl_GeometryIndexEXT): 19(ptr) Variable Input
71: TypeVector 28(float) 4
72: TypeMatrix 71(fvec4) 3
73: TypePointer Function 72
81(gl_CullMaskEXT): 56(ptr) Variable Input
84: 6(int) Constant 3
85: TypeArray 29(fvec3) 84
86: TypePointer Input 85
87(gl_HitTriangleVertexPositionsEXT): 86(ptr) Variable Input
88: 16(int) Constant 0
91: TypePointer IncomingRayPayloadKHR 71(fvec4)
92(incomingPayload): 91(ptr) Variable IncomingRayPayloadKHR
93: 28(float) Constant 1056964608
94: 71(fvec4) ConstantComposite 93 93 93 93
96: 16(int) Constant 1
97: TypeBool
102: 6(int) Constant 0
106(gl_SubgroupSize): 56(ptr) Variable Input
109: TypePointer IncomingRayPayloadKHR 28(float)
4(main): 2 Function None 3
5: Label
9(v0): 8(ptr) Variable Function
@ -149,14 +146,14 @@ spv.ext.AnyHitShader.rahit
45(v9): 44(ptr) Variable Function
49(v10): 44(ptr) Variable Function
52(v11): 44(ptr) Variable Function
56(v12): 55(ptr) Variable Function
62(v13): 61(ptr) Variable Function
66(v14): 61(ptr) Variable Function
69(v15): 17(ptr) Variable Function
75(v16): 74(ptr) Variable Function
78(v17): 74(ptr) Variable Function
81(v18): 55(ptr) Variable Function
84(v19): 30(ptr) Variable Function
55(v12): 54(ptr) Variable Function
61(v13): 60(ptr) Variable Function
65(v14): 60(ptr) Variable Function
68(v15): 17(ptr) Variable Function
74(v16): 73(ptr) Variable Function
77(v17): 73(ptr) Variable Function
80(v18): 54(ptr) Variable Function
83(v19): 30(ptr) Variable Function
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
Store 9(v0) 12
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
@ -179,41 +176,41 @@ spv.ext.AnyHitShader.rahit
Store 45(v9) 48
51: 28(float) Load 50(gl_RayTmaxEXT)
Store 49(v10) 51
54: 28(float) Load 53(gl_HitTEXT)
Store 52(v11) 54
59: 6(int) Load 58(gl_HitKindEXT)
Store 56(v12) 59
65: 60 Load 64(gl_ObjectToWorldEXT)
Store 62(v13) 65
68: 60 Load 67(gl_WorldToObjectEXT)
Store 66(v14) 68
71: 16(int) Load 70(gl_GeometryIndexEXT)
Store 69(v15) 71
76: 60 Load 64(gl_ObjectToWorldEXT)
77: 73 Transpose 76
Store 75(v16) 77
79: 60 Load 67(gl_WorldToObjectEXT)
80: 73 Transpose 79
Store 78(v17) 80
83: 6(int) Load 82(gl_CullMaskEXT)
Store 81(v18) 83
90: 32(ptr) AccessChain 88(gl_HitTriangleVertexPositionsEXT) 89
91: 29(fvec3) Load 90
Store 84(v19) 91
Store 93(incomingPayload) 95
96: 16(int) Load 18(v2)
99: 98(bool) IEqual 96 97
SelectionMerge 101 None
BranchConditional 99 100 101
100: Label
53: 28(float) Load 50(gl_RayTmaxEXT)
Store 52(v11) 53
58: 6(int) Load 57(gl_HitKindEXT)
Store 55(v12) 58
64: 59 Load 63(gl_ObjectToWorldEXT)
Store 61(v13) 64
67: 59 Load 66(gl_WorldToObjectEXT)
Store 65(v14) 67
70: 16(int) Load 69(gl_GeometryIndexEXT)
Store 68(v15) 70
75: 59 Load 63(gl_ObjectToWorldEXT)
76: 72 Transpose 75
Store 74(v16) 76
78: 59 Load 66(gl_WorldToObjectEXT)
79: 72 Transpose 78
Store 77(v17) 79
82: 6(int) Load 81(gl_CullMaskEXT)
Store 80(v18) 82
89: 32(ptr) AccessChain 87(gl_HitTriangleVertexPositionsEXT) 88
90: 29(fvec3) Load 89
Store 83(v19) 90
Store 92(incomingPayload) 94
95: 16(int) Load 18(v2)
98: 97(bool) IEqual 95 96
SelectionMerge 100 None
BranchConditional 98 99 100
99: Label
IgnoreIntersectionKHR
101: Label
108: 6(int) Load 107(gl_SubgroupSize)
109: 28(float) ConvertUToF 108
111: 110(ptr) AccessChain 93(incomingPayload) 103
112: 28(float) Load 111
113: 28(float) FAdd 112 109
114: 110(ptr) AccessChain 93(incomingPayload) 103
Store 114 113
100: Label
107: 6(int) Load 106(gl_SubgroupSize)
108: 28(float) ConvertUToF 107
110: 109(ptr) AccessChain 92(incomingPayload) 102
111: 28(float) Load 110
112: 28(float) FAdd 111 108
113: 109(ptr) AccessChain 92(incomingPayload) 102
Store 113 112
TerminateRayKHR
FunctionEnd

View File

@ -1,7 +1,7 @@
spv.ext.ClosestHitShader.rchit
// Module Version 10400
// Generated by (magic number): 8000b
// Id's are bound by 109
// Id's are bound by 108
Capability RayTracingKHR
Capability RayTracingPositionFetchKHR
@ -11,7 +11,7 @@ spv.ext.ClosestHitShader.rchit
Extension "SPV_KHR_ray_tracing_position_fetch"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67 70 82 88 94 106 108
EntryPoint ClosestHitKHR 4 "main" 11 14 20 23 26 33 36 39 42 47 50 57 63 66 69 81 87 93 105 107
Source GLSL 460
SourceExtension "GL_EXT_ray_cull_mask"
SourceExtension "GL_EXT_ray_tracing"
@ -40,24 +40,23 @@ spv.ext.ClosestHitShader.rchit
Name 49 "v10"
Name 50 "gl_RayTmaxEXT"
Name 52 "v11"
Name 53 "gl_HitTEXT"
Name 56 "v12"
Name 58 "gl_HitKindEXT"
Name 62 "v13"
Name 64 "gl_ObjectToWorldEXT"
Name 66 "v14"
Name 67 "gl_WorldToObjectEXT"
Name 69 "v15"
Name 70 "gl_GeometryIndexEXT"
Name 75 "v16"
Name 78 "v17"
Name 81 "v18"
Name 82 "gl_CullMaskEXT"
Name 84 "v19"
Name 88 "gl_HitTriangleVertexPositionsEXT"
Name 94 "accEXT"
Name 106 "incomingPayload"
Name 108 "localPayload"
Name 55 "v12"
Name 57 "gl_HitKindEXT"
Name 61 "v13"
Name 63 "gl_ObjectToWorldEXT"
Name 65 "v14"
Name 66 "gl_WorldToObjectEXT"
Name 68 "v15"
Name 69 "gl_GeometryIndexEXT"
Name 74 "v16"
Name 77 "v17"
Name 80 "v18"
Name 81 "gl_CullMaskEXT"
Name 83 "v19"
Name 87 "gl_HitTriangleVertexPositionsEXT"
Name 93 "accEXT"
Name 105 "incomingPayload"
Name 107 "localPayload"
Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
Decorate 14(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
@ -69,15 +68,14 @@ spv.ext.ClosestHitShader.rchit
Decorate 42(gl_ObjectRayDirectionEXT) BuiltIn ObjectRayDirectionKHR
Decorate 47(gl_RayTminEXT) BuiltIn RayTminKHR
Decorate 50(gl_RayTmaxEXT) BuiltIn RayTmaxKHR
Decorate 53(gl_HitTEXT) BuiltIn RayTmaxKHR
Decorate 58(gl_HitKindEXT) BuiltIn HitKindKHR
Decorate 64(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR
Decorate 67(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR
Decorate 70(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
Decorate 82(gl_CullMaskEXT) BuiltIn CullMaskKHR
Decorate 88(gl_HitTriangleVertexPositionsEXT) BuiltIn HitTriangleVertexPositionsKHR
Decorate 94(accEXT) DescriptorSet 0
Decorate 94(accEXT) Binding 0
Decorate 57(gl_HitKindEXT) BuiltIn HitKindKHR
Decorate 63(gl_ObjectToWorldEXT) BuiltIn ObjectToWorldKHR
Decorate 66(gl_WorldToObjectEXT) BuiltIn WorldToObjectKHR
Decorate 69(gl_GeometryIndexEXT) BuiltIn RayGeometryIndexKHR
Decorate 81(gl_CullMaskEXT) BuiltIn CullMaskKHR
Decorate 87(gl_HitTriangleVertexPositionsEXT) BuiltIn HitTriangleVertexPositionsKHR
Decorate 93(accEXT) DescriptorSet 0
Decorate 93(accEXT) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
@ -104,41 +102,40 @@ spv.ext.ClosestHitShader.rchit
46: TypePointer Input 28(float)
47(gl_RayTminEXT): 46(ptr) Variable Input
50(gl_RayTmaxEXT): 46(ptr) Variable Input
53(gl_HitTEXT): 46(ptr) Variable Input
55: TypePointer Function 6(int)
57: TypePointer Input 6(int)
58(gl_HitKindEXT): 57(ptr) Variable Input
60: TypeMatrix 29(fvec3) 4
61: TypePointer Function 60
63: TypePointer Input 60
64(gl_ObjectToWorldEXT): 63(ptr) Variable Input
67(gl_WorldToObjectEXT): 63(ptr) Variable Input
70(gl_GeometryIndexEXT): 19(ptr) Variable Input
72: TypeVector 28(float) 4
73: TypeMatrix 72(fvec4) 3
74: TypePointer Function 73
82(gl_CullMaskEXT): 57(ptr) Variable Input
85: 6(int) Constant 3
86: TypeArray 29(fvec3) 85
87: TypePointer Input 86
88(gl_HitTriangleVertexPositionsEXT): 87(ptr) Variable Input
89: 16(int) Constant 0
92: TypeAccelerationStructureKHR
93: TypePointer UniformConstant 92
94(accEXT): 93(ptr) Variable UniformConstant
96: 6(int) Constant 0
97: 6(int) Constant 1
98: 6(int) Constant 2
99: 28(float) Constant 1056964608
100: 29(fvec3) ConstantComposite 99 99 99
101: 28(float) Constant 1065353216
102: 29(fvec3) ConstantComposite 101 101 101
103: 28(float) Constant 1061158912
104: 16(int) Constant 1
105: TypePointer IncomingRayPayloadKHR 72(fvec4)
106(incomingPayload): 105(ptr) Variable IncomingRayPayloadKHR
107: TypePointer RayPayloadKHR 72(fvec4)
108(localPayload): 107(ptr) Variable RayPayloadKHR
54: TypePointer Function 6(int)
56: TypePointer Input 6(int)
57(gl_HitKindEXT): 56(ptr) Variable Input
59: TypeMatrix 29(fvec3) 4
60: TypePointer Function 59
62: TypePointer Input 59
63(gl_ObjectToWorldEXT): 62(ptr) Variable Input
66(gl_WorldToObjectEXT): 62(ptr) Variable Input
69(gl_GeometryIndexEXT): 19(ptr) Variable Input
71: TypeVector 28(float) 4
72: TypeMatrix 71(fvec4) 3
73: TypePointer Function 72
81(gl_CullMaskEXT): 56(ptr) Variable Input
84: 6(int) Constant 3
85: TypeArray 29(fvec3) 84
86: TypePointer Input 85
87(gl_HitTriangleVertexPositionsEXT): 86(ptr) Variable Input
88: 16(int) Constant 0
91: TypeAccelerationStructureKHR
92: TypePointer UniformConstant 91
93(accEXT): 92(ptr) Variable UniformConstant
95: 6(int) Constant 0
96: 6(int) Constant 1
97: 6(int) Constant 2
98: 28(float) Constant 1056964608
99: 29(fvec3) ConstantComposite 98 98 98
100: 28(float) Constant 1065353216
101: 29(fvec3) ConstantComposite 100 100 100
102: 28(float) Constant 1061158912
103: 16(int) Constant 1
104: TypePointer IncomingRayPayloadKHR 71(fvec4)
105(incomingPayload): 104(ptr) Variable IncomingRayPayloadKHR
106: TypePointer RayPayloadKHR 71(fvec4)
107(localPayload): 106(ptr) Variable RayPayloadKHR
4(main): 2 Function None 3
5: Label
9(v0): 8(ptr) Variable Function
@ -153,14 +150,14 @@ spv.ext.ClosestHitShader.rchit
45(v9): 44(ptr) Variable Function
49(v10): 44(ptr) Variable Function
52(v11): 44(ptr) Variable Function
56(v12): 55(ptr) Variable Function
62(v13): 61(ptr) Variable Function
66(v14): 61(ptr) Variable Function
69(v15): 17(ptr) Variable Function
75(v16): 74(ptr) Variable Function
78(v17): 74(ptr) Variable Function
81(v18): 55(ptr) Variable Function
84(v19): 30(ptr) Variable Function
55(v12): 54(ptr) Variable Function
61(v13): 60(ptr) Variable Function
65(v14): 60(ptr) Variable Function
68(v15): 17(ptr) Variable Function
74(v16): 73(ptr) Variable Function
77(v17): 73(ptr) Variable Function
80(v18): 54(ptr) Variable Function
83(v19): 30(ptr) Variable Function
12: 7(ivec3) Load 11(gl_LaunchIDEXT)
Store 9(v0) 12
15: 7(ivec3) Load 14(gl_LaunchSizeEXT)
@ -183,28 +180,28 @@ spv.ext.ClosestHitShader.rchit
Store 45(v9) 48
51: 28(float) Load 50(gl_RayTmaxEXT)
Store 49(v10) 51
54: 28(float) Load 53(gl_HitTEXT)
Store 52(v11) 54
59: 6(int) Load 58(gl_HitKindEXT)
Store 56(v12) 59
65: 60 Load 64(gl_ObjectToWorldEXT)
Store 62(v13) 65
68: 60 Load 67(gl_WorldToObjectEXT)
Store 66(v14) 68
71: 16(int) Load 70(gl_GeometryIndexEXT)
Store 69(v15) 71
76: 60 Load 64(gl_ObjectToWorldEXT)
77: 73 Transpose 76
Store 75(v16) 77
79: 60 Load 67(gl_WorldToObjectEXT)
80: 73 Transpose 79
Store 78(v17) 80
83: 6(int) Load 82(gl_CullMaskEXT)
Store 81(v18) 83
90: 32(ptr) AccessChain 88(gl_HitTriangleVertexPositionsEXT) 89
91: 29(fvec3) Load 90
Store 84(v19) 91
95: 92 Load 94(accEXT)
TraceRayKHR 95 96 97 98 85 96 100 99 102 103 106(incomingPayload)
53: 28(float) Load 50(gl_RayTmaxEXT)
Store 52(v11) 53
58: 6(int) Load 57(gl_HitKindEXT)
Store 55(v12) 58
64: 59 Load 63(gl_ObjectToWorldEXT)
Store 61(v13) 64
67: 59 Load 66(gl_WorldToObjectEXT)
Store 65(v14) 67
70: 16(int) Load 69(gl_GeometryIndexEXT)
Store 68(v15) 70
75: 59 Load 63(gl_ObjectToWorldEXT)
76: 72 Transpose 75
Store 74(v16) 76
78: 59 Load 66(gl_WorldToObjectEXT)
79: 72 Transpose 78
Store 77(v17) 79
82: 6(int) Load 81(gl_CullMaskEXT)
Store 80(v18) 82
89: 32(ptr) AccessChain 87(gl_HitTriangleVertexPositionsEXT) 88
90: 29(fvec3) Load 89
Store 83(v19) 90
94: 91 Load 93(accEXT)
TraceRayKHR 94 95 96 97 84 95 99 98 101 102 105(incomingPayload)
Return
FunctionEnd

View File

@ -268,7 +268,6 @@ enum TBuiltInVariable {
EbvRayTmin,
EbvRayTmax,
EbvCullMask,
EbvHitT,
EbvHitKind,
EbvObjectToWorld,
EbvObjectToWorld3x4,
@ -495,7 +494,6 @@ __inline const char* GetBuiltInVariableString(TBuiltInVariable v)
case EbvObjectRayDirection: return "ObjectRayDirectionNV";
case EbvRayTmin: return "ObjectRayTminNV";
case EbvRayTmax: return "ObjectRayTmaxNV";
case EbvHitT: return "HitTNV";
case EbvHitKind: return "HitKindNV";
case EbvIncomingRayFlags: return "IncomingRayFlagsNV";
case EbvObjectToWorld: return "ObjectToWorldNV";

View File

@ -9209,8 +9209,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
BuiltInVariable("gl_RayTmaxNV", EbvRayTmax, symbolTable);
BuiltInVariable("gl_RayTmaxEXT", EbvRayTmax, symbolTable);
BuiltInVariable("gl_CullMaskEXT", EbvCullMask, symbolTable);
BuiltInVariable("gl_HitTNV", EbvHitT, symbolTable);
BuiltInVariable("gl_HitTEXT", EbvHitT, symbolTable);
BuiltInVariable("gl_HitKindNV", EbvHitKind, symbolTable);
BuiltInVariable("gl_HitKindEXT", EbvHitKind, symbolTable);
BuiltInVariable("gl_ObjectToWorldNV", EbvObjectToWorld, symbolTable);
@ -9229,6 +9227,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
BuiltInVariable("gl_HitKindFrontFacingMicroTriangleNV", EbvHitKindFrontFacingMicroTriangleNV, symbolTable);
BuiltInVariable("gl_HitKindBackFacingMicroTriangleNV", EbvHitKindBackFacingMicroTriangleNV, symbolTable);
// gl_HitT variables are aliases of their gl_RayTmax counterparts.
RetargetVariable("gl_HitTNV", "gl_RayTmaxNV", symbolTable);
RetargetVariable("gl_HitTEXT", "gl_RayTmaxEXT", symbolTable);
// GL_ARB_shader_ballot
symbolTable.setVariableExtensions("gl_SubGroupSizeARB", 1, &E_GL_ARB_shader_ballot);
symbolTable.setVariableExtensions("gl_SubGroupInvocationARB", 1, &E_GL_ARB_shader_ballot);