1hlsl.buffer.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:30  Function Definition: foo( ( temp float)
60:30    Function Parameters:
70:?     Sequence
80:31      Branch: Return with expression
90:31        Constant:
100:31          1.000000
110:43  Function Definition: @PixelShaderFunction(vf4; ( temp structure{ temp 4-component vector of float a})
120:43    Function Parameters:
130:43      'input' ( in 4-component vector of float)
140:?     Sequence
150:45      move second child to first child ( temp 4-component vector of float)
160:45        a: direct index for structure ( temp 4-component vector of float)
170:45          'ret' ( temp structure{ temp 4-component vector of float a})
180:45          Constant:
190:45            0 (const int)
200:45        add ( temp 4-component vector of float)
210:45          v24: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
220:45            'anon@4' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v24})
230:45            Constant:
240:45              0 (const uint)
250:45          vector-scale ( temp 4-component vector of float)
260:45            add ( temp 4-component vector of float)
270:45              add ( temp 4-component vector of float)
280:45                add ( temp 4-component vector of float)
290:45                  add ( temp 4-component vector of float)
300:45                    'input' ( in 4-component vector of float)
310:45                    v1: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
320:45                      'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v1})
330:45                      Constant:
340:45                        0 (const uint)
350:45                  v2: direct index for structure (layout( row_major std430) buffer 4-component vector of float)
360:45                    'anon@1' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float v2})
370:45                    Constant:
380:45                      0 (const uint)
390:45                v3: direct index for structure (layout( row_major std140 offset=0) uniform 4-component vector of float)
400:45                  'anon@2' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4-component vector of float v3, layout( row_major std140 offset=20) uniform int i3})
410:45                  Constant:
420:45                    0 (const uint)
430:45              v4: direct index for structure (layout( row_major std430 offset=16) buffer 4-component vector of float)
440:45                'anon@3' (layout( binding=8 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v4, layout( row_major std430 offset=48) buffer int i4, layout( row_major std430 offset=60) buffer float f1, layout( row_major std430 offset=64) buffer float f3, layout( row_major std430 offset=68) buffer float f4, layout( row_major std430 offset=72) buffer float f5, layout( row_major std430) buffer float f6, layout( row_major std430 offset=128) buffer float f7, layout( row_major std430 offset=112) buffer 3X4 matrix of float m1, layout( column_major std430 offset=176) buffer 3X4 matrix of float m2, layout( row_major std430 offset=240) buffer 3X4 matrix of float m3, layout( row_major std430 offset=304) buffer 3X4 matrix of float m4})
450:45                Constant:
460:45                  0 (const uint)
470:45            Function Call: foo( ( temp float)
480:46      Branch: Return with expression
490:46        'ret' ( temp structure{ temp 4-component vector of float a})
500:43  Function Definition: PixelShaderFunction( ( temp void)
510:43    Function Parameters:
520:?     Sequence
530:43      move second child to first child ( temp 4-component vector of float)
540:?         'input' ( temp 4-component vector of float)
550:?         'input' ( in 4-component vector of float FragCoord)
560:43      Sequence
570:43        move second child to first child ( temp 4-component vector of float)
580:?           '@entryPointOutput.a' (layout( location=0) out 4-component vector of float)
590:43          a: direct index for structure ( temp 4-component vector of float)
600:43            Function Call: @PixelShaderFunction(vf4; ( temp structure{ temp 4-component vector of float a})
610:?               'input' ( temp 4-component vector of float)
620:43            Constant:
630:43              0 (const int)
640:?   Linker Objects
650:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v1})
660:?     'anon@1' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float v2})
670:?     'anon@2' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4-component vector of float v3, layout( row_major std140 offset=20) uniform int i3})
680:?     'anon@3' (layout( binding=8 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v4, layout( row_major std430 offset=48) buffer int i4, layout( row_major std430 offset=60) buffer float f1, layout( row_major std430 offset=64) buffer float f3, layout( row_major std430 offset=68) buffer float f4, layout( row_major std430 offset=72) buffer float f5, layout( row_major std430) buffer float f6, layout( row_major std430 offset=128) buffer float f7, layout( row_major std430 offset=112) buffer 3X4 matrix of float m1, layout( column_major std430 offset=176) buffer 3X4 matrix of float m2, layout( row_major std430 offset=240) buffer 3X4 matrix of float m3, layout( row_major std430 offset=304) buffer 3X4 matrix of float m4})
690:?     'anon@4' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v24})
700:?     '@entryPointOutput.a' (layout( location=0) out 4-component vector of float)
710:?     'input' ( in 4-component vector of float FragCoord)
72
73
74Linked fragment stage:
75
76
77Shader version: 500
78gl_FragCoord origin is upper left
790:? Sequence
800:30  Function Definition: foo( ( temp float)
810:30    Function Parameters:
820:?     Sequence
830:31      Branch: Return with expression
840:31        Constant:
850:31          1.000000
860:43  Function Definition: @PixelShaderFunction(vf4; ( temp structure{ temp 4-component vector of float a})
870:43    Function Parameters:
880:43      'input' ( in 4-component vector of float)
890:?     Sequence
900:45      move second child to first child ( temp 4-component vector of float)
910:45        a: direct index for structure ( temp 4-component vector of float)
920:45          'ret' ( temp structure{ temp 4-component vector of float a})
930:45          Constant:
940:45            0 (const int)
950:45        add ( temp 4-component vector of float)
960:45          v24: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
970:45            'anon@4' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v24})
980:45            Constant:
990:45              0 (const uint)
1000:45          vector-scale ( temp 4-component vector of float)
1010:45            add ( temp 4-component vector of float)
1020:45              add ( temp 4-component vector of float)
1030:45                add ( temp 4-component vector of float)
1040:45                  add ( temp 4-component vector of float)
1050:45                    'input' ( in 4-component vector of float)
1060:45                    v1: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
1070:45                      'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v1})
1080:45                      Constant:
1090:45                        0 (const uint)
1100:45                  v2: direct index for structure (layout( row_major std430) buffer 4-component vector of float)
1110:45                    'anon@1' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float v2})
1120:45                    Constant:
1130:45                      0 (const uint)
1140:45                v3: direct index for structure (layout( row_major std140 offset=0) uniform 4-component vector of float)
1150:45                  'anon@2' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4-component vector of float v3, layout( row_major std140 offset=20) uniform int i3})
1160:45                  Constant:
1170:45                    0 (const uint)
1180:45              v4: direct index for structure (layout( row_major std430 offset=16) buffer 4-component vector of float)
1190:45                'anon@3' (layout( binding=8 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v4, layout( row_major std430 offset=48) buffer int i4, layout( row_major std430 offset=60) buffer float f1, layout( row_major std430 offset=64) buffer float f3, layout( row_major std430 offset=68) buffer float f4, layout( row_major std430 offset=72) buffer float f5, layout( row_major std430) buffer float f6, layout( row_major std430 offset=128) buffer float f7, layout( row_major std430 offset=112) buffer 3X4 matrix of float m1, layout( column_major std430 offset=176) buffer 3X4 matrix of float m2, layout( row_major std430 offset=240) buffer 3X4 matrix of float m3, layout( row_major std430 offset=304) buffer 3X4 matrix of float m4})
1200:45                Constant:
1210:45                  0 (const uint)
1220:45            Function Call: foo( ( temp float)
1230:46      Branch: Return with expression
1240:46        'ret' ( temp structure{ temp 4-component vector of float a})
1250:43  Function Definition: PixelShaderFunction( ( temp void)
1260:43    Function Parameters:
1270:?     Sequence
1280:43      move second child to first child ( temp 4-component vector of float)
1290:?         'input' ( temp 4-component vector of float)
1300:?         'input' ( in 4-component vector of float FragCoord)
1310:43      Sequence
1320:43        move second child to first child ( temp 4-component vector of float)
1330:?           '@entryPointOutput.a' (layout( location=0) out 4-component vector of float)
1340:43          a: direct index for structure ( temp 4-component vector of float)
1350:43            Function Call: @PixelShaderFunction(vf4; ( temp structure{ temp 4-component vector of float a})
1360:?               'input' ( temp 4-component vector of float)
1370:43            Constant:
1380:43              0 (const int)
1390:?   Linker Objects
1400:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v1})
1410:?     'anon@1' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer 4-component vector of float v2})
1420:?     'anon@2' (layout( row_major std140) uniform block{layout( row_major std140 offset=0) uniform 4-component vector of float v3, layout( row_major std140 offset=20) uniform int i3})
1430:?     'anon@3' (layout( binding=8 row_major std430) readonly buffer block{layout( row_major std430 offset=16) buffer 4-component vector of float v4, layout( row_major std430 offset=48) buffer int i4, layout( row_major std430 offset=60) buffer float f1, layout( row_major std430 offset=64) buffer float f3, layout( row_major std430 offset=68) buffer float f4, layout( row_major std430 offset=72) buffer float f5, layout( row_major std430) buffer float f6, layout( row_major std430 offset=128) buffer float f7, layout( row_major std430 offset=112) buffer 3X4 matrix of float m1, layout( column_major std430 offset=176) buffer 3X4 matrix of float m2, layout( row_major std430 offset=240) buffer 3X4 matrix of float m3, layout( row_major std430 offset=304) buffer 3X4 matrix of float m4})
1440:?     'anon@4' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4-component vector of float v24})
1450:?     '@entryPointOutput.a' (layout( location=0) out 4-component vector of float)
1460:?     'input' ( in 4-component vector of float FragCoord)
147
148// Module Version 10000
149// Generated by (magic number): 80007
150// Id's are bound by 73
151
152                              Capability Shader
153               1:             ExtInstImport  "GLSL.std.450"
154                              MemoryModel Logical GLSL450
155                              EntryPoint Fragment 4  "PixelShaderFunction" 65 68
156                              ExecutionMode 4 OriginUpperLeft
157                              Source HLSL 500
158                              Name 4  "PixelShaderFunction"
159                              Name 8  "foo("
160                              Name 12  "id"
161                              MemberName 12(id) 0  "a"
162                              Name 15  "@PixelShaderFunction(vf4;"
163                              Name 14  "input"
164                              Name 21  "ret"
165                              Name 24  "cbufName2"
166                              MemberName 24(cbufName2) 0  "v24"
167                              Name 26  ""
168                              Name 31  "buf1"
169                              MemberName 31(buf1) 0  "v1"
170                              Name 33  ""
171                              Name 37  "buf2"
172                              MemberName 37(buf2) 0  "v2"
173                              Name 39  ""
174                              Name 43  "cbufName"
175                              MemberName 43(cbufName) 0  "v3"
176                              MemberName 43(cbufName) 1  "i3"
177                              Name 45  ""
178                              Name 50  "tbufName"
179                              MemberName 50(tbufName) 0  "v4"
180                              MemberName 50(tbufName) 1  "i4"
181                              MemberName 50(tbufName) 2  "f1"
182                              MemberName 50(tbufName) 3  "f3"
183                              MemberName 50(tbufName) 4  "f4"
184                              MemberName 50(tbufName) 5  "f5"
185                              MemberName 50(tbufName) 6  "f6"
186                              MemberName 50(tbufName) 7  "f7"
187                              MemberName 50(tbufName) 8  "m1"
188                              MemberName 50(tbufName) 9  "m2"
189                              MemberName 50(tbufName) 10  "m3"
190                              MemberName 50(tbufName) 11  "m4"
191                              Name 52  ""
192                              Name 63  "input"
193                              Name 65  "input"
194                              Name 68  "@entryPointOutput.a"
195                              Name 69  "param"
196                              MemberDecorate 24(cbufName2) 0 Offset 0
197                              Decorate 24(cbufName2) Block
198                              Decorate 26 DescriptorSet 0
199                              MemberDecorate 31(buf1) 0 Offset 0
200                              Decorate 31(buf1) Block
201                              Decorate 33 DescriptorSet 0
202                              MemberDecorate 37(buf2) 0 NonWritable
203                              MemberDecorate 37(buf2) 0 Offset 0
204                              Decorate 37(buf2) BufferBlock
205                              Decorate 39 DescriptorSet 0
206                              MemberDecorate 43(cbufName) 0 Offset 0
207                              MemberDecorate 43(cbufName) 1 Offset 20
208                              Decorate 43(cbufName) Block
209                              Decorate 45 DescriptorSet 0
210                              MemberDecorate 50(tbufName) 0 NonWritable
211                              MemberDecorate 50(tbufName) 0 Offset 16
212                              MemberDecorate 50(tbufName) 1 NonWritable
213                              MemberDecorate 50(tbufName) 1 Offset 48
214                              MemberDecorate 50(tbufName) 2 NonWritable
215                              MemberDecorate 50(tbufName) 2 Offset 60
216                              MemberDecorate 50(tbufName) 3 NonWritable
217                              MemberDecorate 50(tbufName) 3 Offset 64
218                              MemberDecorate 50(tbufName) 4 NonWritable
219                              MemberDecorate 50(tbufName) 4 Offset 68
220                              MemberDecorate 50(tbufName) 5 NonWritable
221                              MemberDecorate 50(tbufName) 5 Offset 72
222                              MemberDecorate 50(tbufName) 6 NonWritable
223                              MemberDecorate 50(tbufName) 6 Offset 76
224                              MemberDecorate 50(tbufName) 7 NonWritable
225                              MemberDecorate 50(tbufName) 7 Offset 128
226                              MemberDecorate 50(tbufName) 8 RowMajor
227                              MemberDecorate 50(tbufName) 8 NonWritable
228                              MemberDecorate 50(tbufName) 8 Offset 112
229                              MemberDecorate 50(tbufName) 8 MatrixStride 16
230                              MemberDecorate 50(tbufName) 9 ColMajor
231                              MemberDecorate 50(tbufName) 9 NonWritable
232                              MemberDecorate 50(tbufName) 9 Offset 176
233                              MemberDecorate 50(tbufName) 9 MatrixStride 16
234                              MemberDecorate 50(tbufName) 10 RowMajor
235                              MemberDecorate 50(tbufName) 10 NonWritable
236                              MemberDecorate 50(tbufName) 10 Offset 240
237                              MemberDecorate 50(tbufName) 10 MatrixStride 16
238                              MemberDecorate 50(tbufName) 11 RowMajor
239                              MemberDecorate 50(tbufName) 11 NonWritable
240                              MemberDecorate 50(tbufName) 11 Offset 304
241                              MemberDecorate 50(tbufName) 11 MatrixStride 16
242                              Decorate 50(tbufName) BufferBlock
243                              Decorate 52 DescriptorSet 0
244                              Decorate 52 Binding 8
245                              Decorate 65(input) BuiltIn FragCoord
246                              Decorate 68(@entryPointOutput.a) Location 0
247               2:             TypeVoid
248               3:             TypeFunction 2
249               6:             TypeFloat 32
250               7:             TypeFunction 6(float)
251              10:             TypeVector 6(float) 4
252              11:             TypePointer Function 10(fvec4)
253          12(id):             TypeStruct 10(fvec4)
254              13:             TypeFunction 12(id) 11(ptr)
255              17:    6(float) Constant 1065353216
256              20:             TypePointer Function 12(id)
257              22:             TypeInt 32 1
258              23:     22(int) Constant 0
259   24(cbufName2):             TypeStruct 10(fvec4)
260              25:             TypePointer Uniform 24(cbufName2)
261              26:     25(ptr) Variable Uniform
262              27:             TypePointer Uniform 10(fvec4)
263        31(buf1):             TypeStruct 10(fvec4)
264              32:             TypePointer Uniform 31(buf1)
265              33:     32(ptr) Variable Uniform
266        37(buf2):             TypeStruct 10(fvec4)
267              38:             TypePointer Uniform 37(buf2)
268              39:     38(ptr) Variable Uniform
269    43(cbufName):             TypeStruct 10(fvec4) 22(int)
270              44:             TypePointer Uniform 43(cbufName)
271              45:     44(ptr) Variable Uniform
272              49:             TypeMatrix 10(fvec4) 3
273    50(tbufName):             TypeStruct 10(fvec4) 22(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 49 49 49 49
274              51:             TypePointer Uniform 50(tbufName)
275              52:     51(ptr) Variable Uniform
276              64:             TypePointer Input 10(fvec4)
277       65(input):     64(ptr) Variable Input
278              67:             TypePointer Output 10(fvec4)
27968(@entryPointOutput.a):     67(ptr) Variable Output
2804(PixelShaderFunction):           2 Function None 3
281               5:             Label
282       63(input):     11(ptr) Variable Function
283       69(param):     11(ptr) Variable Function
284              66:   10(fvec4) Load 65(input)
285                              Store 63(input) 66
286              70:   10(fvec4) Load 63(input)
287                              Store 69(param) 70
288              71:      12(id) FunctionCall 15(@PixelShaderFunction(vf4;) 69(param)
289              72:   10(fvec4) CompositeExtract 71 0
290                              Store 68(@entryPointOutput.a) 72
291                              Return
292                              FunctionEnd
293         8(foo():    6(float) Function None 7
294               9:             Label
295                              ReturnValue 17
296                              FunctionEnd
29715(@PixelShaderFunction(vf4;):      12(id) Function None 13
298       14(input):     11(ptr) FunctionParameter
299              16:             Label
300         21(ret):     20(ptr) Variable Function
301              28:     27(ptr) AccessChain 26 23
302              29:   10(fvec4) Load 28
303              30:   10(fvec4) Load 14(input)
304              34:     27(ptr) AccessChain 33 23
305              35:   10(fvec4) Load 34
306              36:   10(fvec4) FAdd 30 35
307              40:     27(ptr) AccessChain 39 23
308              41:   10(fvec4) Load 40
309              42:   10(fvec4) FAdd 36 41
310              46:     27(ptr) AccessChain 45 23
311              47:   10(fvec4) Load 46
312              48:   10(fvec4) FAdd 42 47
313              53:     27(ptr) AccessChain 52 23
314              54:   10(fvec4) Load 53
315              55:   10(fvec4) FAdd 48 54
316              56:    6(float) FunctionCall 8(foo()
317              57:   10(fvec4) VectorTimesScalar 55 56
318              58:   10(fvec4) FAdd 29 57
319              59:     11(ptr) AccessChain 21(ret) 23
320                              Store 59 58
321              60:      12(id) Load 21(ret)
322                              ReturnValue 60
323                              FunctionEnd
324