Add-support-for-SPV_NVX_raytracing

This commit is contained in:
Chao Chen
2018-09-19 11:42:24 -07:00
parent 3c3669904c
commit b50c02ef53
50 changed files with 5970 additions and 4184 deletions

View File

@@ -0,0 +1,163 @@
spv.AnyHitShader.rahit
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 81
Capability RaytracingNVX
Extension "SPV_NVX_raytracing"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint AnyHitNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67
Source GLSL 460
SourceExtension "GL_NVX_raytracing"
Name 4 "main"
Name 9 "v0"
Name 11 "gl_LaunchIDNVX"
Name 13 "v1"
Name 14 "gl_LaunchSizeNVX"
Name 18 "v2"
Name 20 "gl_PrimitiveID"
Name 22 "v3"
Name 23 "gl_InstanceID"
Name 25 "v4"
Name 26 "gl_InstanceCustomIndexNVX"
Name 31 "v5"
Name 33 "gl_WorldRayOriginNVX"
Name 35 "v6"
Name 36 "gl_WorldRayDirectionNVX"
Name 38 "v7"
Name 39 "gl_ObjectRayOriginNVX"
Name 41 "v8"
Name 42 "gl_ObjectRayDirectionNVX"
Name 45 "v9"
Name 47 "gl_RayTminNVX"
Name 49 "v10"
Name 50 "gl_RayTmaxNVX"
Name 52 "v11"
Name 53 "gl_HitTNVX"
Name 56 "v12"
Name 58 "gl_HitKindNVX"
Name 62 "v13"
Name 64 "gl_ObjectToWorldNVX"
Name 66 "v14"
Name 67 "gl_WorldToObjectNVX"
Name 71 "incomingPayload"
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 23(gl_InstanceID) BuiltIn InstanceId
Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX
Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX
Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX
Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX
Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX
Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX
Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX
Decorate 53(gl_HitTNVX) BuiltIn HitTNVX
Decorate 58(gl_HitKindNVX) BuiltIn HitKindNVX
Decorate 64(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX
Decorate 67(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX
Decorate 71(incomingPayload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypeVector 6(int) 2
8: TypePointer Function 7(ivec2)
10: TypePointer Input 7(ivec2)
11(gl_LaunchIDNVX): 10(ptr) Variable Input
14(gl_LaunchSizeNVX): 10(ptr) Variable Input
16: TypeInt 32 1
17: TypePointer Function 16(int)
19: TypePointer Input 16(int)
20(gl_PrimitiveID): 19(ptr) Variable Input
23(gl_InstanceID): 19(ptr) Variable Input
26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input
28: TypeFloat 32
29: TypeVector 28(float) 3
30: TypePointer Function 29(fvec3)
32: TypePointer Input 29(fvec3)
33(gl_WorldRayOriginNVX): 32(ptr) Variable Input
36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input
39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input
42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input
44: TypePointer Function 28(float)
46: TypePointer Input 28(float)
47(gl_RayTminNVX): 46(ptr) Variable Input
50(gl_RayTmaxNVX): 46(ptr) Variable Input
53(gl_HitTNVX): 46(ptr) Variable Input
55: TypePointer Function 6(int)
57: TypePointer Input 6(int)
58(gl_HitKindNVX): 57(ptr) Variable Input
60: TypeMatrix 29(fvec3) 4
61: TypePointer Function 60
63: TypePointer Input 60
64(gl_ObjectToWorldNVX): 63(ptr) Variable Input
67(gl_WorldToObjectNVX): 63(ptr) Variable Input
69: TypeVector 28(float) 4
70: TypePointer IncomingRayPayloadNVX 69(fvec4)
71(incomingPayload): 70(ptr) Variable IncomingRayPayloadNVX
72: 28(float) Constant 1056964608
73: 69(fvec4) ConstantComposite 72 72 72 72
75: 16(int) Constant 1
76: TypeBool
4(main): 2 Function None 3
5: Label
9(v0): 8(ptr) Variable Function
13(v1): 8(ptr) Variable Function
18(v2): 17(ptr) Variable Function
22(v3): 17(ptr) Variable Function
25(v4): 17(ptr) Variable Function
31(v5): 30(ptr) Variable Function
35(v6): 30(ptr) Variable Function
38(v7): 30(ptr) Variable Function
41(v8): 30(ptr) Variable Function
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
12: 7(ivec2) Load 11(gl_LaunchIDNVX)
Store 9(v0) 12
15: 7(ivec2) Load 14(gl_LaunchSizeNVX)
Store 13(v1) 15
21: 16(int) Load 20(gl_PrimitiveID)
Store 18(v2) 21
24: 16(int) Load 23(gl_InstanceID)
Store 22(v3) 24
27: 16(int) Load 26(gl_InstanceCustomIndexNVX)
Store 25(v4) 27
34: 29(fvec3) Load 33(gl_WorldRayOriginNVX)
Store 31(v5) 34
37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX)
Store 35(v6) 37
40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX)
Store 38(v7) 40
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX)
Store 41(v8) 43
48: 28(float) Load 47(gl_RayTminNVX)
Store 45(v9) 48
51: 28(float) Load 50(gl_RayTmaxNVX)
Store 49(v10) 51
54: 28(float) Load 53(gl_HitTNVX)
Store 52(v11) 54
59: 6(int) Load 58(gl_HitKindNVX)
Store 56(v12) 59
65: 60 Load 64(gl_ObjectToWorldNVX)
Store 62(v13) 65
68: 60 Load 67(gl_WorldToObjectNVX)
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
IgnoreIntersectionNVX
Branch 79
80: Label
TerminateRayNVX
Branch 79
79: Label
Return
FunctionEnd

View File

@@ -0,0 +1,8 @@
spv.AnyHitShader_Errors.rahit
ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNVX in this stage)
ERROR: 0:9: 'reportIntersectionNVX' : no matching overloaded function found
ERROR: 0:10: 'traceNVX' : no matching overloaded function found
ERROR: 3 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@@ -0,0 +1,169 @@
spv.ClosestHitShader.rchit
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 88
Capability RaytracingNVX
Extension "SPV_NVX_raytracing"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint ClosestHitNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 53 58 64 67
Source GLSL 460
SourceExtension "GL_NVX_raytracing"
Name 4 "main"
Name 9 "v0"
Name 11 "gl_LaunchIDNVX"
Name 13 "v1"
Name 14 "gl_LaunchSizeNVX"
Name 18 "v2"
Name 20 "gl_PrimitiveID"
Name 22 "v3"
Name 23 "gl_InstanceID"
Name 25 "v4"
Name 26 "gl_InstanceCustomIndexNVX"
Name 31 "v5"
Name 33 "gl_WorldRayOriginNVX"
Name 35 "v6"
Name 36 "gl_WorldRayDirectionNVX"
Name 38 "v7"
Name 39 "gl_ObjectRayOriginNVX"
Name 41 "v8"
Name 42 "gl_ObjectRayDirectionNVX"
Name 45 "v9"
Name 47 "gl_RayTminNVX"
Name 49 "v10"
Name 50 "gl_RayTmaxNVX"
Name 52 "v11"
Name 53 "gl_HitTNVX"
Name 56 "v12"
Name 58 "gl_HitKindNVX"
Name 62 "v13"
Name 64 "gl_ObjectToWorldNVX"
Name 66 "v14"
Name 67 "gl_WorldToObjectNVX"
Name 71 "accNV"
Name 85 "localPayload"
Name 87 "incomingPayload"
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 23(gl_InstanceID) BuiltIn InstanceId
Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX
Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX
Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX
Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX
Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX
Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX
Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX
Decorate 53(gl_HitTNVX) BuiltIn HitTNVX
Decorate 58(gl_HitKindNVX) BuiltIn HitKindNVX
Decorate 64(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX
Decorate 67(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX
Decorate 71(accNV) DescriptorSet 0
Decorate 71(accNV) Binding 0
Decorate 85(localPayload) Location 0
Decorate 87(incomingPayload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypeVector 6(int) 2
8: TypePointer Function 7(ivec2)
10: TypePointer Input 7(ivec2)
11(gl_LaunchIDNVX): 10(ptr) Variable Input
14(gl_LaunchSizeNVX): 10(ptr) Variable Input
16: TypeInt 32 1
17: TypePointer Function 16(int)
19: TypePointer Input 16(int)
20(gl_PrimitiveID): 19(ptr) Variable Input
23(gl_InstanceID): 19(ptr) Variable Input
26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input
28: TypeFloat 32
29: TypeVector 28(float) 3
30: TypePointer Function 29(fvec3)
32: TypePointer Input 29(fvec3)
33(gl_WorldRayOriginNVX): 32(ptr) Variable Input
36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input
39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input
42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input
44: TypePointer Function 28(float)
46: TypePointer Input 28(float)
47(gl_RayTminNVX): 46(ptr) Variable Input
50(gl_RayTmaxNVX): 46(ptr) Variable Input
53(gl_HitTNVX): 46(ptr) Variable Input
55: TypePointer Function 6(int)
57: TypePointer Input 6(int)
58(gl_HitKindNVX): 57(ptr) Variable Input
60: TypeMatrix 29(fvec3) 4
61: TypePointer Function 60
63: TypePointer Input 60
64(gl_ObjectToWorldNVX): 63(ptr) Variable Input
67(gl_WorldToObjectNVX): 63(ptr) Variable Input
69: TypeAccelerationStructureNVX
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 RayPayloadNVX 83(fvec4)
85(localPayload): 84(ptr) Variable RayPayloadNVX
86: TypePointer IncomingRayPayloadNVX 83(fvec4)
87(incomingPayload): 86(ptr) Variable IncomingRayPayloadNVX
4(main): 2 Function None 3
5: Label
9(v0): 8(ptr) Variable Function
13(v1): 8(ptr) Variable Function
18(v2): 17(ptr) Variable Function
22(v3): 17(ptr) Variable Function
25(v4): 17(ptr) Variable Function
31(v5): 30(ptr) Variable Function
35(v6): 30(ptr) Variable Function
38(v7): 30(ptr) Variable Function
41(v8): 30(ptr) Variable Function
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
12: 7(ivec2) Load 11(gl_LaunchIDNVX)
Store 9(v0) 12
15: 7(ivec2) Load 14(gl_LaunchSizeNVX)
Store 13(v1) 15
21: 16(int) Load 20(gl_PrimitiveID)
Store 18(v2) 21
24: 16(int) Load 23(gl_InstanceID)
Store 22(v3) 24
27: 16(int) Load 26(gl_InstanceCustomIndexNVX)
Store 25(v4) 27
34: 29(fvec3) Load 33(gl_WorldRayOriginNVX)
Store 31(v5) 34
37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX)
Store 35(v6) 37
40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX)
Store 38(v7) 40
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX)
Store 41(v8) 43
48: 28(float) Load 47(gl_RayTminNVX)
Store 45(v9) 48
51: 28(float) Load 50(gl_RayTmaxNVX)
Store 49(v10) 51
54: 28(float) Load 53(gl_HitTNVX)
Store 52(v11) 54
59: 6(int) Load 58(gl_HitKindNVX)
Store 56(v12) 59
65: 60 Load 64(gl_ObjectToWorldNVX)
Store 62(v13) 65
68: 60 Load 67(gl_WorldToObjectNVX)
Store 66(v14) 68
72: 69 Load 71(accNV)
TraceNVX 72 73 74 75 76 73 78 77 80 81 82
Return
FunctionEnd

View File

@@ -0,0 +1,9 @@
spv.ClosestHitShader_Errors.rchit
ERROR: 0:8: 'assign' : l-value required "payload" (cannot modify hitAttributeNVX in this stage)
ERROR: 0:9: 'reportIntersectionNVX' : no matching overloaded function found
ERROR: 0:10: 'terminateRayNVX' : no matching overloaded function found
ERROR: 0:11: 'ignoreIntersectionNVX' : no matching overloaded function found
ERROR: 4 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@@ -0,0 +1,138 @@
spv.IntersectShader.rint
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 71
Capability RaytracingNVX
Extension "SPV_NVX_raytracing"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint IntersectionNVX 4 "main" 11 14 20 23 26 33 36 39 42 47 50 56 59
Source GLSL 460
SourceExtension "GL_NVX_raytracing"
Name 4 "main"
Name 9 "v0"
Name 11 "gl_LaunchIDNVX"
Name 13 "v1"
Name 14 "gl_LaunchSizeNVX"
Name 18 "v2"
Name 20 "gl_PrimitiveID"
Name 22 "v3"
Name 23 "gl_InstanceID"
Name 25 "v4"
Name 26 "gl_InstanceCustomIndexNVX"
Name 31 "v5"
Name 33 "gl_WorldRayOriginNVX"
Name 35 "v6"
Name 36 "gl_WorldRayDirectionNVX"
Name 38 "v7"
Name 39 "gl_ObjectRayOriginNVX"
Name 41 "v8"
Name 42 "gl_ObjectRayDirectionNVX"
Name 45 "v9"
Name 47 "gl_RayTminNVX"
Name 49 "v10"
Name 50 "gl_RayTmaxNVX"
Name 54 "v11"
Name 56 "gl_ObjectToWorldNVX"
Name 58 "v12"
Name 59 "gl_WorldToObjectNVX"
Name 63 "iAttr"
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
Decorate 20(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 23(gl_InstanceID) BuiltIn InstanceId
Decorate 26(gl_InstanceCustomIndexNVX) BuiltIn InstanceCustomIndexNVX
Decorate 33(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX
Decorate 36(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX
Decorate 39(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX
Decorate 42(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX
Decorate 47(gl_RayTminNVX) BuiltIn RayTminNVX
Decorate 50(gl_RayTmaxNVX) BuiltIn RayTmaxNVX
Decorate 56(gl_ObjectToWorldNVX) BuiltIn ObjectToWorldNVX
Decorate 59(gl_WorldToObjectNVX) BuiltIn WorldToObjectNVX
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypeVector 6(int) 2
8: TypePointer Function 7(ivec2)
10: TypePointer Input 7(ivec2)
11(gl_LaunchIDNVX): 10(ptr) Variable Input
14(gl_LaunchSizeNVX): 10(ptr) Variable Input
16: TypeInt 32 1
17: TypePointer Function 16(int)
19: TypePointer Input 16(int)
20(gl_PrimitiveID): 19(ptr) Variable Input
23(gl_InstanceID): 19(ptr) Variable Input
26(gl_InstanceCustomIndexNVX): 19(ptr) Variable Input
28: TypeFloat 32
29: TypeVector 28(float) 3
30: TypePointer Function 29(fvec3)
32: TypePointer Input 29(fvec3)
33(gl_WorldRayOriginNVX): 32(ptr) Variable Input
36(gl_WorldRayDirectionNVX): 32(ptr) Variable Input
39(gl_ObjectRayOriginNVX): 32(ptr) Variable Input
42(gl_ObjectRayDirectionNVX): 32(ptr) Variable Input
44: TypePointer Function 28(float)
46: TypePointer Input 28(float)
47(gl_RayTminNVX): 46(ptr) Variable Input
50(gl_RayTmaxNVX): 46(ptr) Variable Input
52: TypeMatrix 29(fvec3) 4
53: TypePointer Function 52
55: TypePointer Input 52
56(gl_ObjectToWorldNVX): 55(ptr) Variable Input
59(gl_WorldToObjectNVX): 55(ptr) Variable Input
61: TypeVector 28(float) 4
62: TypePointer HitAttributeNVX 61(fvec4)
63(iAttr): 62(ptr) Variable HitAttributeNVX
64: 28(float) Constant 1056964608
65: 28(float) Constant 0
66: 28(float) Constant 1065353216
67: 61(fvec4) ConstantComposite 64 64 65 66
68: 6(int) Constant 1
69: TypeBool
4(main): 2 Function None 3
5: Label
9(v0): 8(ptr) Variable Function
13(v1): 8(ptr) Variable Function
18(v2): 17(ptr) Variable Function
22(v3): 17(ptr) Variable Function
25(v4): 17(ptr) Variable Function
31(v5): 30(ptr) Variable Function
35(v6): 30(ptr) Variable Function
38(v7): 30(ptr) Variable Function
41(v8): 30(ptr) Variable Function
45(v9): 44(ptr) Variable Function
49(v10): 44(ptr) Variable Function
54(v11): 53(ptr) Variable Function
58(v12): 53(ptr) Variable Function
12: 7(ivec2) Load 11(gl_LaunchIDNVX)
Store 9(v0) 12
15: 7(ivec2) Load 14(gl_LaunchSizeNVX)
Store 13(v1) 15
21: 16(int) Load 20(gl_PrimitiveID)
Store 18(v2) 21
24: 16(int) Load 23(gl_InstanceID)
Store 22(v3) 24
27: 16(int) Load 26(gl_InstanceCustomIndexNVX)
Store 25(v4) 27
34: 29(fvec3) Load 33(gl_WorldRayOriginNVX)
Store 31(v5) 34
37: 29(fvec3) Load 36(gl_WorldRayDirectionNVX)
Store 35(v6) 37
40: 29(fvec3) Load 39(gl_ObjectRayOriginNVX)
Store 38(v7) 40
43: 29(fvec3) Load 42(gl_ObjectRayDirectionNVX)
Store 41(v8) 43
48: 28(float) Load 47(gl_RayTminNVX)
Store 45(v9) 48
51: 28(float) Load 50(gl_RayTmaxNVX)
Store 49(v10) 51
57: 52 Load 56(gl_ObjectToWorldNVX)
Store 54(v11) 57
60: 52 Load 59(gl_WorldToObjectNVX)
Store 58(v12) 60
Store 63(iAttr) 67
70: 69(bool) ReportIntersectionNVX 64 68
Return
FunctionEnd

View File

@@ -0,0 +1,10 @@
spv.IntersectShader_Errors.rint
ERROR: 0:3: 'rayPayloadInNVX' : not supported in this stage: intersection
ERROR: 0:4: 'rayPayloadNVX' : not supported in this stage: intersection
ERROR: 0:8: 'gl_HitTNVX' : undeclared identifier
ERROR: 0:9: 'gl_HitKindNVX' : undeclared identifier
ERROR: 0:10: 'traceNVX' : no matching overloaded function found
ERROR: 5 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@@ -0,0 +1,113 @@
spv.MissShader.rmiss
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 60
Capability RaytracingNVX
Extension "SPV_NVX_raytracing"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint MissNVX 4 "main" 11 14 21 24 27 30 35 38
Source GLSL 460
SourceExtension "GL_NVX_raytracing"
Name 4 "main"
Name 9 "v0"
Name 11 "gl_LaunchIDNVX"
Name 13 "v1"
Name 14 "gl_LaunchSizeNVX"
Name 19 "v2"
Name 21 "gl_WorldRayOriginNVX"
Name 23 "v3"
Name 24 "gl_WorldRayDirectionNVX"
Name 26 "v4"
Name 27 "gl_ObjectRayOriginNVX"
Name 29 "v5"
Name 30 "gl_ObjectRayDirectionNVX"
Name 33 "v6"
Name 35 "gl_RayTminNVX"
Name 37 "v7"
Name 38 "gl_RayTmaxNVX"
Name 42 "accNV"
Name 57 "localPayload"
Name 59 "incomingPayload"
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
Decorate 14(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
Decorate 21(gl_WorldRayOriginNVX) BuiltIn WorldRayOriginNVX
Decorate 24(gl_WorldRayDirectionNVX) BuiltIn WorldRayDirectionNVX
Decorate 27(gl_ObjectRayOriginNVX) BuiltIn ObjectRayOriginNVX
Decorate 30(gl_ObjectRayDirectionNVX) BuiltIn ObjectRayDirectionNVX
Decorate 35(gl_RayTminNVX) BuiltIn RayTminNVX
Decorate 38(gl_RayTmaxNVX) BuiltIn RayTmaxNVX
Decorate 42(accNV) DescriptorSet 0
Decorate 42(accNV) Binding 0
Decorate 57(localPayload) Location 0
Decorate 59(incomingPayload) Location 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypeVector 6(int) 2
8: TypePointer Function 7(ivec2)
10: TypePointer Input 7(ivec2)
11(gl_LaunchIDNVX): 10(ptr) Variable Input
14(gl_LaunchSizeNVX): 10(ptr) Variable Input
16: TypeFloat 32
17: TypeVector 16(float) 3
18: TypePointer Function 17(fvec3)
20: TypePointer Input 17(fvec3)
21(gl_WorldRayOriginNVX): 20(ptr) Variable Input
24(gl_WorldRayDirectionNVX): 20(ptr) Variable Input
27(gl_ObjectRayOriginNVX): 20(ptr) Variable Input
30(gl_ObjectRayDirectionNVX): 20(ptr) Variable Input
32: TypePointer Function 16(float)
34: TypePointer Input 16(float)
35(gl_RayTminNVX): 34(ptr) Variable Input
38(gl_RayTmaxNVX): 34(ptr) Variable Input
40: TypeAccelerationStructureNVX
41: TypePointer UniformConstant 40
42(accNV): 41(ptr) Variable UniformConstant
44: 6(int) Constant 0
45: 6(int) Constant 1
46: 6(int) Constant 2
47: 6(int) Constant 3
48: 16(float) Constant 1056964608
49: 17(fvec3) ConstantComposite 48 48 48
50: 16(float) Constant 1065353216
51: 17(fvec3) ConstantComposite 50 50 50
52: 16(float) Constant 1061158912
53: TypeInt 32 1
54: 53(int) Constant 1
55: TypeVector 16(float) 4
56: TypePointer RayPayloadNVX 55(fvec4)
57(localPayload): 56(ptr) Variable RayPayloadNVX
58: TypePointer IncomingRayPayloadNVX 55(fvec4)
59(incomingPayload): 58(ptr) Variable IncomingRayPayloadNVX
4(main): 2 Function None 3
5: Label
9(v0): 8(ptr) Variable Function
13(v1): 8(ptr) Variable Function
19(v2): 18(ptr) Variable Function
23(v3): 18(ptr) Variable Function
26(v4): 18(ptr) Variable Function
29(v5): 18(ptr) Variable Function
33(v6): 32(ptr) Variable Function
37(v7): 32(ptr) Variable Function
12: 7(ivec2) Load 11(gl_LaunchIDNVX)
Store 9(v0) 12
15: 7(ivec2) Load 14(gl_LaunchSizeNVX)
Store 13(v1) 15
22: 17(fvec3) Load 21(gl_WorldRayOriginNVX)
Store 19(v2) 22
25: 17(fvec3) Load 24(gl_WorldRayDirectionNVX)
Store 23(v3) 25
28: 17(fvec3) Load 27(gl_ObjectRayOriginNVX)
Store 26(v4) 28
31: 17(fvec3) Load 30(gl_ObjectRayDirectionNVX)
Store 29(v5) 31
36: 16(float) Load 35(gl_RayTminNVX)
Store 33(v6) 36
39: 16(float) Load 38(gl_RayTmaxNVX)
Store 37(v7) 39
43: 40 Load 42(accNV)
TraceNVX 43 44 45 46 47 44 49 48 51 52 54
Return
FunctionEnd

View File

@@ -0,0 +1,21 @@
spv.MissShader_Errors.rmiss
ERROR: 0:3: 'hitAttributeNVX' : not supported in this stage: miss
ERROR: 0:6: 'gl_PrimitiveID' : undeclared identifier
ERROR: 0:6: '=' : cannot convert from ' temp float' to ' temp highp int'
ERROR: 0:7: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?)
ERROR: 0:7: '=' : cannot convert from ' temp float' to ' temp highp int'
ERROR: 0:8: 'gl_InstanceCustomIndexNVX' : undeclared identifier
ERROR: 0:8: '=' : cannot convert from ' temp float' to ' temp highp int'
ERROR: 0:9: 'gl_ObjectToWorldNVX' : undeclared identifier
ERROR: 0:9: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
ERROR: 0:10: 'gl_WorldToObjectNVX' : undeclared identifier
ERROR: 0:10: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
ERROR: 0:11: 'gl_HitTNVX' : undeclared identifier
ERROR: 0:12: 'gl_HitKindNVX' : undeclared identifier
ERROR: 0:13: 'reportIntersectionNVX' : no matching overloaded function found
ERROR: 0:14: 'ignoreIntersectionNVX' : no matching overloaded function found
ERROR: 0:15: 'terminateRayNVX' : no matching overloaded function found
ERROR: 16 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@@ -0,0 +1,46 @@
spv.RayConstants.rgen
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 27
Capability RaytracingNVX
Extension "SPV_NVX_raytracing"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint RayGenerationNVX 4 "main"
Source GLSL 460
SourceExtension "GL_NVX_raytracing"
Name 4 "main"
Name 8 "accNV"
Name 26 "payload"
Decorate 8(accNV) DescriptorSet 0
Decorate 8(accNV) Binding 0
Decorate 26(payload) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeAccelerationStructureNVX
7: TypePointer UniformConstant 6
8(accNV): 7(ptr) Variable UniformConstant
10: TypeInt 32 0
11: 10(int) Constant 255
12: 10(int) Constant 0
13: 10(int) Constant 1
14: TypeFloat 32
15: TypeVector 14(float) 3
16: 14(float) Constant 0
17: 15(fvec3) ConstantComposite 16 16 16
18: 14(float) Constant 1056964608
19: 14(float) Constant 1065353216
20: 15(fvec3) ConstantComposite 19 19 19
21: 14(float) Constant 1061158912
22: TypeInt 32 1
23: 22(int) Constant 1
24: TypeVector 14(float) 4
25: TypePointer RayPayloadNVX 24(fvec4)
26(payload): 25(ptr) Variable RayPayloadNVX
4(main): 2 Function None 3
5: Label
9: 6 Load 8(accNV)
TraceNVX 9 11 12 13 13 12 17 18 20 21 23
Return
FunctionEnd

View File

@@ -0,0 +1,101 @@
spv.RayGenShader.rgen
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 60
Capability RaytracingNVX
Extension "SPV_NVX_raytracing"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint RayGenerationNVX 4 "main" 11 21
Source GLSL 460
SourceExtension "GL_NVX_raytracing"
Name 4 "main"
Name 8 "lx"
Name 11 "gl_LaunchIDNVX"
Name 16 "ly"
Name 20 "sx"
Name 21 "gl_LaunchSizeNVX"
Name 24 "sy"
Name 29 "accNV"
Name 48 "block"
MemberName 48(block) 0 "arr"
MemberName 48(block) 1 "pad"
Name 50 ""
Name 56 "payload"
Decorate 11(gl_LaunchIDNVX) BuiltIn LaunchIdNVX
Decorate 21(gl_LaunchSizeNVX) BuiltIn LaunchSizeNVX
Decorate 29(accNV) DescriptorSet 0
Decorate 29(accNV) Binding 0
Decorate 46 ArrayStride 4
MemberDecorate 48(block) 0 Offset 0
MemberDecorate 48(block) 1 Offset 16
Decorate 48(block) BufferBlock
Decorate 56(payload) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypeVector 6(int) 2
10: TypePointer Input 9(ivec2)
11(gl_LaunchIDNVX): 10(ptr) Variable Input
12: 6(int) Constant 0
13: TypePointer Input 6(int)
17: 6(int) Constant 1
21(gl_LaunchSizeNVX): 10(ptr) Variable Input
27: TypeAccelerationStructureNVX
28: TypePointer UniformConstant 27
29(accNV): 28(ptr) Variable UniformConstant
35: TypeFloat 32
36: TypeVector 35(float) 3
37: 35(float) Constant 0
38: 36(fvec3) ConstantComposite 37 37 37
39: 35(float) Constant 1056964608
40: 35(float) Constant 1065353216
41: 36(fvec3) ConstantComposite 40 40 40
42: 35(float) Constant 1061158912
43: TypeInt 32 1
44: 43(int) Constant 1
45: 6(int) Constant 4
46: TypeArray 35(float) 45
47: TypeVector 35(float) 4
48(block): TypeStruct 46 47(fvec4)
49: TypePointer ShaderRecordBufferNVX 48(block)
50: 49(ptr) Variable ShaderRecordBufferNVX
51: 43(int) Constant 0
52: 43(int) Constant 3
53: TypePointer ShaderRecordBufferNVX 35(float)
55: TypePointer RayPayloadNVX 47(fvec4)
56(payload): 55(ptr) Variable RayPayloadNVX
58: TypePointer ShaderRecordBufferNVX 47(fvec4)
4(main): 2 Function None 3
5: Label
8(lx): 7(ptr) Variable Function
16(ly): 7(ptr) Variable Function
20(sx): 7(ptr) Variable Function
24(sy): 7(ptr) Variable Function
14: 13(ptr) AccessChain 11(gl_LaunchIDNVX) 12
15: 6(int) Load 14
Store 8(lx) 15
18: 13(ptr) AccessChain 11(gl_LaunchIDNVX) 17
19: 6(int) Load 18
Store 16(ly) 19
22: 13(ptr) AccessChain 21(gl_LaunchSizeNVX) 12
23: 6(int) Load 22
Store 20(sx) 23
25: 13(ptr) AccessChain 21(gl_LaunchSizeNVX) 17
26: 6(int) Load 25
Store 24(sy) 26
30: 27 Load 29(accNV)
31: 6(int) Load 8(lx)
32: 6(int) Load 16(ly)
33: 6(int) Load 20(sx)
34: 6(int) Load 24(sy)
TraceNVX 30 31 32 33 34 12 38 39 41 42 44
54: 53(ptr) AccessChain 50 51 52
Store 54 40
57: 47(fvec4) Load 56(payload)
59: 58(ptr) AccessChain 50 44
Store 59 57
Return
FunctionEnd

View File

@@ -0,0 +1,39 @@
spv.RayGenShader_Errors.rgen
ERROR: 0:3: 'hitAttributeNVX' : not supported in this stage: ray-generation
ERROR: 0:4: 'rayPayloadInNVX' : not supported in this stage: ray-generation
ERROR: 0:5: 'shaderRecordNVX' : can only be used with a buffer
ERROR: 0:9: 'binding' : cannot be used with shaderRecordNVX
ERROR: 0:12: 'set' : cannot be used with shaderRecordNVX
ERROR: 0:23: 'accelerationStructureNVX' : accelerationStructureNVX can only be used in uniform variables or function parameters: a
ERROR: 0:23: '=' : cannot convert from ' const int' to ' temp accelerationStructureNVX'
ERROR: 0:24: 'gl_PrimitiveID' : undeclared identifier
ERROR: 0:24: '=' : cannot convert from ' temp float' to ' temp highp int'
ERROR: 0:25: 'gl_InstanceID' : undeclared identifier (Did you mean gl_InstanceIndex?)
ERROR: 0:25: '=' : cannot convert from ' temp float' to ' temp highp int'
ERROR: 0:26: 'gl_InstanceCustomIndexNVX' : undeclared identifier
ERROR: 0:26: '=' : cannot convert from ' temp float' to ' temp highp int'
ERROR: 0:27: 'gl_WorldRayOriginNVX' : undeclared identifier
ERROR: 0:27: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
ERROR: 0:28: 'gl_WorldRayDirectionNVX' : undeclared identifier
ERROR: 0:28: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
ERROR: 0:29: 'gl_ObjectRayOriginNVX' : undeclared identifier
ERROR: 0:29: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
ERROR: 0:30: 'gl_ObjectRayDirectionNVX' : undeclared identifier
ERROR: 0:30: '=' : cannot convert from ' temp float' to ' temp highp 3-component vector of float'
ERROR: 0:31: 'gl_RayTminNVX' : undeclared identifier
ERROR: 0:32: 'gl_RayTmaxNVX' : undeclared identifier
ERROR: 0:33: 'gl_ObjectToWorldNVX' : undeclared identifier
ERROR: 0:33: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
ERROR: 0:34: 'gl_WorldToObjectNVX' : undeclared identifier
ERROR: 0:34: '=' : cannot convert from ' temp float' to ' temp highp 4X3 matrix of float'
ERROR: 0:35: 'gl_HitTNVX' : undeclared identifier
ERROR: 0:36: 'gl_HitKindNVX' : undeclared identifier
ERROR: 0:37: 'reportIntersectionNVX' : no matching overloaded function found
ERROR: 0:38: 'ignoreIntersectionNVX' : no matching overloaded function found
ERROR: 0:39: 'terminateRayNVX' : no matching overloaded function found
ERROR: 32 compilation errors. No code generated.
ERROR: Linking ray-generation stage: Only one shaderRecordNVX buffer block is allowed per stage
SPIR-V is not generated for failed compile or link

View File

@@ -0,0 +1,26 @@
#version 460
#extension GL_NVX_raytracing : enable
layout(location = 1) rayPayloadInNVX vec4 incomingPayload;
void main()
{
uvec2 v0 = gl_LaunchIDNVX;
uvec2 v1 = gl_LaunchSizeNVX;
int v2 = gl_PrimitiveID;
int v3 = gl_InstanceID;
int v4 = gl_InstanceCustomIndexNVX;
vec3 v5 = gl_WorldRayOriginNVX;
vec3 v6 = gl_WorldRayDirectionNVX;
vec3 v7 = gl_ObjectRayOriginNVX;
vec3 v8 = gl_ObjectRayDirectionNVX;
float v9 = gl_RayTminNVX;
float v10 = gl_RayTmaxNVX;
float v11 = gl_HitTNVX;
uint v12 = gl_HitKindNVX;
mat4x3 v13 = gl_ObjectToWorldNVX;
mat4x3 v14 = gl_WorldToObjectNVX;
incomingPayload = vec4(0.5f);
if (v2 == 1)
ignoreIntersectionNVX();
else
terminateRayNVX();
}

View File

@@ -0,0 +1,11 @@
#version 460
#extension GL_NVX_raytracing : enable
hitAttributeNVX vec4 payload;
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
void main()
{
payload.x = 1.0f; // ERROR, cannot write to hitattributeNVX in stage
reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage
traceNVX(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported builtin in stage
}

View File

@@ -0,0 +1,24 @@
#version 460
#extension GL_NVX_raytracing : enable
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
layout(location = 0) rayPayloadNVX vec4 localPayload;
layout(location = 1) rayPayloadInNVX vec4 incomingPayload;
void main()
{
uvec2 v0 = gl_LaunchIDNVX;
uvec2 v1 = gl_LaunchSizeNVX;
int v2 = gl_PrimitiveID;
int v3 = gl_InstanceID;
int v4 = gl_InstanceCustomIndexNVX;
vec3 v5 = gl_WorldRayOriginNVX;
vec3 v6 = gl_WorldRayDirectionNVX;
vec3 v7 = gl_ObjectRayOriginNVX;
vec3 v8 = gl_ObjectRayDirectionNVX;
float v9 = gl_RayTminNVX;
float v10 = gl_RayTmaxNVX;
float v11 = gl_HitTNVX;
uint v12 = gl_HitKindNVX;
mat4x3 v13 = gl_ObjectToWorldNVX;
mat4x3 v14 = gl_WorldToObjectNVX;
traceNVX(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
}

View File

@@ -0,0 +1,12 @@
#version 460
#extension GL_NVX_raytracing : enable
hitAttributeNVX vec4 payload;
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
void main()
{
payload.x = 1.0f; // ERROR, cannot write to hitattributeNVX in stage
reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage
terminateRayNVX();
ignoreIntersectionNVX();
}

View File

@@ -0,0 +1,21 @@
#version 460
#extension GL_NVX_raytracing : enable
hitAttributeNVX vec4 iAttr;
void main()
{
uvec2 v0 = gl_LaunchIDNVX;
uvec2 v1 = gl_LaunchSizeNVX;
int v2 = gl_PrimitiveID;
int v3 = gl_InstanceID;
int v4 = gl_InstanceCustomIndexNVX;
vec3 v5 = gl_WorldRayOriginNVX;
vec3 v6 = gl_WorldRayDirectionNVX;
vec3 v7 = gl_ObjectRayOriginNVX;
vec3 v8 = gl_ObjectRayDirectionNVX;
float v9 = gl_RayTminNVX;
float v10 = gl_RayTmaxNVX;
mat4x3 v11 = gl_ObjectToWorldNVX;
mat4x3 v12 = gl_WorldToObjectNVX;
iAttr = vec4(0.5f,0.5f,0.0f,1.0f);
reportIntersectionNVX(0.5, 1U);
}

View File

@@ -0,0 +1,11 @@
#version 460
#extension GL_NVX_raytracing : enable
rayPayloadInNVX vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage
rayPayloadNVX vec4 payload; // ERROR, rayPayload unsuppoted in this stage
uniform accelerationStructureNVX accNV;
void main()
{
float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage
float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage
traceNVX(accNV, 0, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 0); // ERROR, unsupported
}

17
Test/spv.MissShader.rmiss Normal file
View File

@@ -0,0 +1,17 @@
#version 460
#extension GL_NVX_raytracing : enable
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
layout(location = 0) rayPayloadNVX vec4 localPayload;
layout(location = 1) rayPayloadInNVX vec4 incomingPayload;
void main()
{
uvec2 v0 = gl_LaunchIDNVX;
uvec2 v1 = gl_LaunchSizeNVX;
vec3 v2 = gl_WorldRayOriginNVX;
vec3 v3 = gl_WorldRayDirectionNVX;
vec3 v4 = gl_ObjectRayOriginNVX;
vec3 v5 = gl_ObjectRayDirectionNVX;
float v6 = gl_RayTminNVX;
float v7 = gl_RayTmaxNVX;
traceNVX(accNV, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1);
}

View File

@@ -0,0 +1,16 @@
#version 460
#extension GL_NVX_raytracing : enable
hitAttributeNVX vec4 payload; // ERROR, hitattributeNVX unsupported in this stage
void main()
{
int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage
int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage
int e3 = gl_InstanceCustomIndexNVX; // ERROR, unsupported builtin in stage
mat4x3 e10 = gl_ObjectToWorldNVX; // ERROR, unsupported builtin in stage
mat4x3 e11 = gl_WorldToObjectNVX; // ERROR, unsupported builtin in stage
float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage
float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage
reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage
ignoreIntersectionNVX(); // ERROR, unsupported builtin in stage
terminateRayNVX(); // ERROR, unsupported builtin in stage
}

View File

@@ -0,0 +1,15 @@
#version 460
#extension GL_NVX_raytracing : enable
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
layout(location = 0) rayPayloadNVX vec4 payload;
void main()
{
const uint rayFlags = gl_RayFlagsNoneNVX | gl_RayFlagsOpaqueNVX |
gl_RayFlagsNoOpaqueNVX | gl_RayFlagsTerminateOnFirstHitNVX |
gl_RayFlagsSkipClosestHitShaderNVX | gl_RayFlagsCullBackFacingTrianglesNVX |
gl_RayFlagsCullFrontFacingTrianglesNVX | gl_RayFlagsCullOpaqueNVX |
gl_RayFlagsCullNoOpaqueNVX;
const int payloadId = 1;
traceNVX(accNV, rayFlags, 0, 1, 1, 0, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, payloadId);
}

View File

@@ -0,0 +1,19 @@
#version 460
#extension GL_NVX_raytracing : enable
layout(binding = 0, set = 0) uniform accelerationStructureNVX accNV;
layout(location = 0) rayPayloadNVX vec4 payload;
layout(shaderRecordNVX) buffer block
{
float arr[4];
vec4 pad;
};
void main()
{
uint lx = gl_LaunchIDNVX.x;
uint ly = gl_LaunchIDNVX.y;
uint sx = gl_LaunchSizeNVX.x;
uint sy = gl_LaunchSizeNVX.y;
traceNVX(accNV, lx, ly, sx, sy, 0u, vec3(0.0f), 0.5f, vec3(1.0f), 0.75f, 1);
arr[3] = 1.0f;
pad = payload;
}

View File

@@ -0,0 +1,40 @@
#version 460
#extension GL_NVX_raytracing : enable
hitAttributeNVX vec4 payload; // ERROR, hitattributeNVX unsupported in this stage
rayPayloadInNVX vec4 payloadIn; // ERROR, rayPayloadIn unsupported in this stage
layout(shaderRecordNVX) uniform ublock // ERROR, shaderRecordNVX unsupported on uniform blocks
{
float a;
};
layout(binding = 0, shaderRecordNVX) buffer bblock { // ERROR, binding unsupported on shaderRecordNVX blocks
float b;
};
layout(set = 0, shaderRecordNVX) buffer bblock2 { // ERROR, set unsupported on shaderRecordNVX blocks
float c;
};
layout(shaderRecordNVX) buffer bblock3 {
float d;
};
layout(shaderRecordNVX) buffer bblock4 { // ERROR, cannot have more than one shaderRecordNVX block
float e;
};
void main()
{
accelerationStructureNVX a = 0;
int e0 = gl_PrimitiveID; // ERROR, unsupported builtin in stage
int e1 = gl_InstanceID; // ERROR, unsupported builtin in stage
int e3 = gl_InstanceCustomIndexNVX; // ERROR, unsupported builtin in stage
vec3 e4 = gl_WorldRayOriginNVX; // ERROR, unsupported builtin in stage
vec3 e5 = gl_WorldRayDirectionNVX; // ERROR, unsupported builtin in stage
vec3 e6 = gl_ObjectRayOriginNVX; // ERROR, unsupported builtin in stage
vec3 e7 = gl_ObjectRayDirectionNVX; // ERROR, unsupported builtin in stage
float e8 = gl_RayTminNVX; // ERROR, unsupported builtin in stage
float e9 = gl_RayTmaxNVX; // ERROR, unsupported builtin in stage
mat4x3 e10 = gl_ObjectToWorldNVX; // ERROR, unsupported builtin in stage
mat4x3 e11 = gl_WorldToObjectNVX; // ERROR, unsupported builtin in stage
float e12 = gl_HitTNVX; // ERROR, unsupported builtin in stage
float e13 = gl_HitKindNVX; // ERROR, unsupported builtin in stage
reportIntersectionNVX(1.0, 1U); // ERROR, unsupported builtin in stage
ignoreIntersectionNVX(); // ERROR, unsupported builtin in stage
terminateRayNVX(); // ERROR, unsupported builtin in stage
}