1617a3babSopenharmony_cispv.nv.hitobject-allops.rgen
2617a3babSopenharmony_ci// Module Version 10400
3617a3babSopenharmony_ci// Generated by (magic number): 8000b
4617a3babSopenharmony_ci// Id's are bound by 117
5617a3babSopenharmony_ci
6617a3babSopenharmony_ci                              Capability RayTracingKHR
7617a3babSopenharmony_ci                              Capability ShaderInvocationReorderNV
8617a3babSopenharmony_ci                              Extension  "SPV_KHR_ray_tracing"
9617a3babSopenharmony_ci                              Extension  "SPV_NV_shader_invocation_reorder"
10617a3babSopenharmony_ci               1:             ExtInstImport  "GLSL.std.450"
11617a3babSopenharmony_ci                              MemoryModel Logical GLSL450
12617a3babSopenharmony_ci                              EntryPoint RayGenerationKHR 4  "main" 9 14 22 25 36 42 48 52 53 64
13617a3babSopenharmony_ci                              Source GLSL 460
14617a3babSopenharmony_ci                              SourceExtension  "GL_EXT_ray_tracing"
15617a3babSopenharmony_ci                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
16617a3babSopenharmony_ci                              SourceExtension  "GL_NV_shader_invocation_reorder"
17617a3babSopenharmony_ci                              Name 4  "main"
18617a3babSopenharmony_ci                              Name 9  "attr"
19617a3babSopenharmony_ci                              Name 12  "hBlock"
20617a3babSopenharmony_ci                              MemberName 12(hBlock) 0  "attrval"
21617a3babSopenharmony_ci                              Name 14  ""
22617a3babSopenharmony_ci                              Name 22  "hObj"
23617a3babSopenharmony_ci                              Name 25  "as"
24617a3babSopenharmony_ci                              Name 36  "payload"
25617a3babSopenharmony_ci                              Name 40  "pBlock"
26617a3babSopenharmony_ci                              MemberName 40(pBlock) 0  "val1"
27617a3babSopenharmony_ci                              MemberName 40(pBlock) 1  "val2"
28617a3babSopenharmony_ci                              Name 42  ""
29617a3babSopenharmony_ci                              Name 48  "hObjHit"
30617a3babSopenharmony_ci                              Name 52  "hObjNop"
31617a3babSopenharmony_ci                              Name 53  "hObjMiss"
32617a3babSopenharmony_ci                              Name 62  "block"
33617a3babSopenharmony_ci                              MemberName 62(block) 0  "op"
34617a3babSopenharmony_ci                              Name 64  ""
35617a3babSopenharmony_ci                              Name 79  "tmin"
36617a3babSopenharmony_ci                              Name 81  "tmax"
37617a3babSopenharmony_ci                              Name 84  "orig"
38617a3babSopenharmony_ci                              Name 86  "dir"
39617a3babSopenharmony_ci                              Name 88  "oorig"
40617a3babSopenharmony_ci                              Name 90  "odir"
41617a3babSopenharmony_ci                              Name 94  "otw"
42617a3babSopenharmony_ci                              Name 96  "wto"
43617a3babSopenharmony_ci                              Name 99  "cid"
44617a3babSopenharmony_ci                              Name 101  "iid"
45617a3babSopenharmony_ci                              Name 103  "pid"
46617a3babSopenharmony_ci                              Name 105  "gid"
47617a3babSopenharmony_ci                              Name 108  "hkind"
48617a3babSopenharmony_ci                              Name 112  "handle"
49617a3babSopenharmony_ci                              Name 114  "rid"
50617a3babSopenharmony_ci                              Decorate 12(hBlock) Block
51617a3babSopenharmony_ci                              Decorate 25(as) DescriptorSet 0
52617a3babSopenharmony_ci                              Decorate 25(as) Binding 0
53617a3babSopenharmony_ci                              Decorate 40(pBlock) Block
54617a3babSopenharmony_ci                              MemberDecorate 62(block) 0 Offset 0
55617a3babSopenharmony_ci                              Decorate 62(block) Block
56617a3babSopenharmony_ci                              Decorate 64 DescriptorSet 0
57617a3babSopenharmony_ci                              Decorate 64 Binding 1
58617a3babSopenharmony_ci               2:             TypeVoid
59617a3babSopenharmony_ci               3:             TypeFunction 2
60617a3babSopenharmony_ci               6:             TypeFloat 32
61617a3babSopenharmony_ci               7:             TypeVector 6(float) 2
62617a3babSopenharmony_ci               8:             TypePointer HitObjectAttributeNV 7(fvec2)
63617a3babSopenharmony_ci         9(attr):      8(ptr) Variable HitObjectAttributeNV
64617a3babSopenharmony_ci              10:    6(float) Constant 1065353216
65617a3babSopenharmony_ci              11:    7(fvec2) ConstantComposite 10 10
66617a3babSopenharmony_ci      12(hBlock):             TypeStruct 6(float)
67617a3babSopenharmony_ci              13:             TypePointer HitObjectAttributeNV 12(hBlock)
68617a3babSopenharmony_ci              14:     13(ptr) Variable HitObjectAttributeNV
69617a3babSopenharmony_ci              15:             TypeInt 32 1
70617a3babSopenharmony_ci              16:     15(int) Constant 0
71617a3babSopenharmony_ci              17:    6(float) Constant 1073741824
72617a3babSopenharmony_ci              18:             TypePointer HitObjectAttributeNV 6(float)
73617a3babSopenharmony_ci              20:             TypeHitObjectNV
74617a3babSopenharmony_ci              21:             TypePointer Private 20
75617a3babSopenharmony_ci        22(hObj):     21(ptr) Variable Private
76617a3babSopenharmony_ci              23:             TypeAccelerationStructureKHR
77617a3babSopenharmony_ci              24:             TypePointer UniformConstant 23
78617a3babSopenharmony_ci          25(as):     24(ptr) Variable UniformConstant
79617a3babSopenharmony_ci              27:             TypeInt 32 0
80617a3babSopenharmony_ci              28:     27(int) Constant 1
81617a3babSopenharmony_ci              29:             TypeVector 6(float) 3
82617a3babSopenharmony_ci              30:    6(float) Constant 1056964608
83617a3babSopenharmony_ci              31:   29(fvec3) ConstantComposite 30 30 30
84617a3babSopenharmony_ci              32:   29(fvec3) ConstantComposite 10 10 10
85617a3babSopenharmony_ci              33:     15(int) Constant 1
86617a3babSopenharmony_ci              34:             TypeVector 6(float) 4
87617a3babSopenharmony_ci              35:             TypePointer RayPayloadKHR 34(fvec4)
88617a3babSopenharmony_ci     36(payload):     35(ptr) Variable RayPayloadKHR
89617a3babSopenharmony_ci              38:    6(float) Constant 1092616192
90617a3babSopenharmony_ci              39:     15(int) Constant 2
91617a3babSopenharmony_ci      40(pBlock):             TypeStruct 7(fvec2) 7(fvec2)
92617a3babSopenharmony_ci              41:             TypePointer RayPayloadKHR 40(pBlock)
93617a3babSopenharmony_ci              42:     41(ptr) Variable RayPayloadKHR
94617a3babSopenharmony_ci              44:     27(int) Constant 2
95617a3babSopenharmony_ci              45:   29(fvec3) ConstantComposite 17 17 17
96617a3babSopenharmony_ci              47:    6(float) Constant 1082130432
97617a3babSopenharmony_ci     48(hObjHit):     21(ptr) Variable Private
98617a3babSopenharmony_ci              50:     15(int) Constant 3
99617a3babSopenharmony_ci     52(hObjNop):     21(ptr) Variable Private
100617a3babSopenharmony_ci    53(hObjMiss):     21(ptr) Variable Private
101617a3babSopenharmony_ci              54:    6(float) Constant 1069547520
102617a3babSopenharmony_ci              55:   29(fvec3) ConstantComposite 54 54 54
103617a3babSopenharmony_ci              56:    6(float) Constant 1084227584
104617a3babSopenharmony_ci              57:    6(float) Constant 1090519040
105617a3babSopenharmony_ci              58:             TypeBool
106617a3babSopenharmony_ci       62(block):             TypeStruct 6(float)
107617a3babSopenharmony_ci              63:             TypePointer StorageBuffer 62(block)
108617a3babSopenharmony_ci              64:     63(ptr) Variable StorageBuffer
109617a3babSopenharmony_ci              65:             TypePointer StorageBuffer 6(float)
110617a3babSopenharmony_ci              76:    6(float) Constant 1077936128
111617a3babSopenharmony_ci              78:             TypePointer Function 6(float)
112617a3babSopenharmony_ci              83:             TypePointer Function 29(fvec3)
113617a3babSopenharmony_ci              92:             TypeMatrix 29(fvec3) 4
114617a3babSopenharmony_ci              93:             TypePointer Function 92
115617a3babSopenharmony_ci              98:             TypePointer Function 15(int)
116617a3babSopenharmony_ci             107:             TypePointer Function 27(int)
117617a3babSopenharmony_ci             110:             TypeVector 27(int) 2
118617a3babSopenharmony_ci             111:             TypePointer Function 110(ivec2)
119617a3babSopenharmony_ci             116:     27(int) Constant 4
120617a3babSopenharmony_ci         4(main):           2 Function None 3
121617a3babSopenharmony_ci               5:             Label
122617a3babSopenharmony_ci        79(tmin):     78(ptr) Variable Function
123617a3babSopenharmony_ci        81(tmax):     78(ptr) Variable Function
124617a3babSopenharmony_ci        84(orig):     83(ptr) Variable Function
125617a3babSopenharmony_ci         86(dir):     83(ptr) Variable Function
126617a3babSopenharmony_ci       88(oorig):     83(ptr) Variable Function
127617a3babSopenharmony_ci        90(odir):     83(ptr) Variable Function
128617a3babSopenharmony_ci         94(otw):     93(ptr) Variable Function
129617a3babSopenharmony_ci         96(wto):     93(ptr) Variable Function
130617a3babSopenharmony_ci         99(cid):     98(ptr) Variable Function
131617a3babSopenharmony_ci        101(iid):     98(ptr) Variable Function
132617a3babSopenharmony_ci        103(pid):     98(ptr) Variable Function
133617a3babSopenharmony_ci        105(gid):     98(ptr) Variable Function
134617a3babSopenharmony_ci      108(hkind):    107(ptr) Variable Function
135617a3babSopenharmony_ci     112(handle):    111(ptr) Variable Function
136617a3babSopenharmony_ci        114(rid):    107(ptr) Variable Function
137617a3babSopenharmony_ci                              Store 9(attr) 11
138617a3babSopenharmony_ci              19:     18(ptr) AccessChain 14 16
139617a3babSopenharmony_ci                              Store 19 17
140617a3babSopenharmony_ci              26:          23 Load 25(as)
141617a3babSopenharmony_ci                              HitObjectTraceRayNV 22(hObj) 26 28 28 28 28 28 31 30 32 10 36(payload)
142617a3babSopenharmony_ci              37:          23 Load 25(as)
143617a3babSopenharmony_ci                              HitObjectTraceRayMotionNV 22(hObj) 37 28 28 28 28 28 31 30 32 10 38 42
144617a3babSopenharmony_ci              43:          23 Load 25(as)
145617a3babSopenharmony_ci                              HitObjectRecordHitNV 22(hObj) 43 33 33 33 44 44 44 32 10 45 17 9(attr)
146617a3babSopenharmony_ci              46:          23 Load 25(as)
147617a3babSopenharmony_ci                              HitObjectRecordHitMotionNV 22(hObj) 46 33 33 33 44 44 44 32 10 45 17 47 9(attr)
148617a3babSopenharmony_ci              49:          23 Load 25(as)
149617a3babSopenharmony_ci                              HitObjectRecordHitWithIndexNV 48(hObjHit) 49 33 33 33 44 44 32 10 45 17 14
150617a3babSopenharmony_ci              51:          23 Load 25(as)
151617a3babSopenharmony_ci                              HitObjectRecordHitWithIndexMotionNV 48(hObjHit) 51 33 33 33 44 44 32 10 45 17 47 14
152617a3babSopenharmony_ci                              HitObjectRecordEmptyNV 52(hObjNop)
153617a3babSopenharmony_ci                              HitObjectRecordMissNV 53(hObjMiss) 28 31 17 55 56
154617a3babSopenharmony_ci                              HitObjectRecordMissMotionNV 53(hObjMiss) 28 31 17 55 56 57
155617a3babSopenharmony_ci                              HitObjectExecuteShaderNV 48(hObjHit) 36(payload)
156617a3babSopenharmony_ci              59:    58(bool) HitObjectIsHitNV 22(hObj)
157617a3babSopenharmony_ci                              SelectionMerge 61 None
158617a3babSopenharmony_ci                              BranchConditional 59 60 67
159617a3babSopenharmony_ci              60:               Label
160617a3babSopenharmony_ci              66:     65(ptr)   AccessChain 64 16
161617a3babSopenharmony_ci                                Store 66 10
162617a3babSopenharmony_ci                                Branch 61
163617a3babSopenharmony_ci              67:               Label
164617a3babSopenharmony_ci              68:    58(bool)   HitObjectIsMissNV 22(hObj)
165617a3babSopenharmony_ci                                SelectionMerge 70 None
166617a3babSopenharmony_ci                                BranchConditional 68 69 72
167617a3babSopenharmony_ci              69:                 Label
168617a3babSopenharmony_ci              71:     65(ptr)     AccessChain 64 16
169617a3babSopenharmony_ci                                  Store 71 17
170617a3babSopenharmony_ci                                  Branch 70
171617a3babSopenharmony_ci              72:                 Label
172617a3babSopenharmony_ci              73:    58(bool)     HitObjectIsEmptyNV 22(hObj)
173617a3babSopenharmony_ci                                  SelectionMerge 75 None
174617a3babSopenharmony_ci                                  BranchConditional 73 74 75
175617a3babSopenharmony_ci              74:                   Label
176617a3babSopenharmony_ci              77:     65(ptr)       AccessChain 64 16
177617a3babSopenharmony_ci                                    Store 77 76
178617a3babSopenharmony_ci                                    Branch 75
179617a3babSopenharmony_ci              75:                 Label
180617a3babSopenharmony_ci                                  Branch 70
181617a3babSopenharmony_ci              70:               Label
182617a3babSopenharmony_ci                                Branch 61
183617a3babSopenharmony_ci              61:             Label
184617a3babSopenharmony_ci              80:    6(float) HitObjectGetRayTMinNV 48(hObjHit)
185617a3babSopenharmony_ci                              Store 79(tmin) 80
186617a3babSopenharmony_ci              82:    6(float) HitObjectGetRayTMaxNV 48(hObjHit)
187617a3babSopenharmony_ci                              Store 81(tmax) 82
188617a3babSopenharmony_ci              85:   29(fvec3) HitObjectGetWorldRayOriginNV 48(hObjHit)
189617a3babSopenharmony_ci                              Store 84(orig) 85
190617a3babSopenharmony_ci              87:   29(fvec3) HitObjectGetWorldRayDirectionNV 48(hObjHit)
191617a3babSopenharmony_ci                              Store 86(dir) 87
192617a3babSopenharmony_ci              89:   29(fvec3) HitObjectGetObjectRayOriginNV 48(hObjHit)
193617a3babSopenharmony_ci                              Store 88(oorig) 89
194617a3babSopenharmony_ci              91:   29(fvec3) HitObjectGetObjectRayDirectionNV 48(hObjHit)
195617a3babSopenharmony_ci                              Store 90(odir) 91
196617a3babSopenharmony_ci              95:          92 HitObjectGetObjectToWorldNV 48(hObjHit)
197617a3babSopenharmony_ci                              Store 94(otw) 95
198617a3babSopenharmony_ci              97:          92 HitObjectGetWorldToObjectNV 48(hObjHit)
199617a3babSopenharmony_ci                              Store 96(wto) 97
200617a3babSopenharmony_ci             100:     15(int) HitObjectGetInstanceCustomIndexNV 53(hObjMiss)
201617a3babSopenharmony_ci                              Store 99(cid) 100
202617a3babSopenharmony_ci             102:     15(int) HitObjectGetInstanceIdNV 52(hObjNop)
203617a3babSopenharmony_ci                              Store 101(iid) 102
204617a3babSopenharmony_ci             104:     15(int) HitObjectGetPrimitiveIndexNV 22(hObj)
205617a3babSopenharmony_ci                              Store 103(pid) 104
206617a3babSopenharmony_ci             106:     15(int) HitObjectGetGeometryIndexNV 22(hObj)
207617a3babSopenharmony_ci                              Store 105(gid) 106
208617a3babSopenharmony_ci             109:     27(int) HitObjectGetFrontFaceNV 22(hObj)
209617a3babSopenharmony_ci                              Store 108(hkind) 109
210617a3babSopenharmony_ci                              HitObjectGetAttributesNV 22(hObj) 9(attr)
211617a3babSopenharmony_ci             113:  110(ivec2) HitObjectGetShaderRecordBufferHandleNV 22(hObj)
212617a3babSopenharmony_ci                              Store 112(handle) 113
213617a3babSopenharmony_ci             115:     27(int) HitObjectGetShaderBindingTableRecordIndexNV 22(hObj)
214617a3babSopenharmony_ci                              Store 114(rid) 115
215617a3babSopenharmony_ci                              ReorderThreadWithHintNV 116 116
216617a3babSopenharmony_ci                              ReorderThreadWithHitObjectNV 48(hObjHit)
217617a3babSopenharmony_ci                              ReorderThreadWithHitObjectNV 48(hObjHit) 116 44
218617a3babSopenharmony_ci                              Return
219617a3babSopenharmony_ci                              FunctionEnd
220