
This is a partial implemention of structurebuffers supporting: * structured buffer types of: * StructuredBuffer * RWStructuredBuffer * ByteAddressBuffer * RWByteAddressBuffer * Atomic operations on RWByteAddressBuffer * Load/Load[234], Store/Store[234], GetDimensions methods (where allowed by type) * globallycoherent flag But NOT yet supporting: * AppendStructuredBuffer / ConsumeStructuredBuffer types * IncrementCounter/DecrementCounter methods Please note: the stride returned by GetDimensions is as calculated by glslang for std430, and may not match other environments in all cases.
477 lines
26 KiB
Plaintext
477 lines
26 KiB
Plaintext
hlsl.structbuffer.byte.frag
|
|
Shader version: 450
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:5 Function Definition: @main(u1; (temp 4-component vector of float)
|
|
0:5 Function Parameters:
|
|
0:5 'pos' (in uint)
|
|
0:? Sequence
|
|
0:7 Sequence
|
|
0:7 move second child to first child (temp uint)
|
|
0:7 'size' (temp uint)
|
|
0:7 array length (temp uint)
|
|
0:7 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:7 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:7 Constant:
|
|
0:7 0 (const uint)
|
|
0:12 Branch: Return with expression
|
|
0:11 add (temp 4-component vector of float)
|
|
0:10 add (temp 4-component vector of float)
|
|
0:9 add (temp 4-component vector of float)
|
|
0:9 Convert uint to float (temp float)
|
|
0:9 indirect index (layout(row_major std430 ) readonly buffer uint)
|
|
0:9 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:9 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:9 Constant:
|
|
0:9 0 (const uint)
|
|
0:9 right-shift (temp int)
|
|
0:9 'pos' (in uint)
|
|
0:9 Constant:
|
|
0:9 2 (const int)
|
|
0:? Construct vec4 (temp 4-component vector of float)
|
|
0:? Convert uint to float (temp 2-component vector of float)
|
|
0:? Sequence
|
|
0:10 move second child to first child (temp int)
|
|
0:10 'byteAddrTemp' (temp int)
|
|
0:10 right-shift (temp int)
|
|
0:10 add (temp uint)
|
|
0:10 'pos' (in uint)
|
|
0:10 Constant:
|
|
0:10 4 (const uint)
|
|
0:10 Constant:
|
|
0:10 2 (const int)
|
|
0:? Construct vec2 (temp 2-component vector of uint)
|
|
0:10 indirect index (temp float)
|
|
0:10 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:10 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:10 Constant:
|
|
0:10 0 (const uint)
|
|
0:10 'byteAddrTemp' (temp int)
|
|
0:10 indirect index (temp float)
|
|
0:10 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:10 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:10 Constant:
|
|
0:10 0 (const uint)
|
|
0:10 add (temp int)
|
|
0:10 'byteAddrTemp' (temp int)
|
|
0:10 Constant:
|
|
0:10 1 (const int)
|
|
0:10 Constant:
|
|
0:10 0.000000
|
|
0:10 Constant:
|
|
0:10 0.000000
|
|
0:? Construct vec4 (temp 4-component vector of float)
|
|
0:? Convert uint to float (temp 3-component vector of float)
|
|
0:? Sequence
|
|
0:11 move second child to first child (temp int)
|
|
0:11 'byteAddrTemp' (temp int)
|
|
0:11 right-shift (temp int)
|
|
0:11 add (temp uint)
|
|
0:11 'pos' (in uint)
|
|
0:11 Constant:
|
|
0:11 8 (const uint)
|
|
0:11 Constant:
|
|
0:11 2 (const int)
|
|
0:? Construct vec3 (temp 3-component vector of uint)
|
|
0:11 indirect index (temp float)
|
|
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:11 Constant:
|
|
0:11 0 (const uint)
|
|
0:11 'byteAddrTemp' (temp int)
|
|
0:11 indirect index (temp float)
|
|
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:11 Constant:
|
|
0:11 0 (const uint)
|
|
0:11 add (temp int)
|
|
0:11 'byteAddrTemp' (temp int)
|
|
0:11 Constant:
|
|
0:11 1 (const int)
|
|
0:11 indirect index (temp float)
|
|
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:11 Constant:
|
|
0:11 0 (const uint)
|
|
0:11 add (temp int)
|
|
0:11 'byteAddrTemp' (temp int)
|
|
0:11 Constant:
|
|
0:11 2 (const int)
|
|
0:11 Constant:
|
|
0:11 0.000000
|
|
0:? Convert uint to float (temp 4-component vector of float)
|
|
0:? Sequence
|
|
0:12 move second child to first child (temp int)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 right-shift (temp int)
|
|
0:12 add (temp uint)
|
|
0:12 'pos' (in uint)
|
|
0:12 Constant:
|
|
0:12 12 (const uint)
|
|
0:12 Constant:
|
|
0:12 2 (const int)
|
|
0:? Construct vec4 (temp 4-component vector of uint)
|
|
0:12 indirect index (temp float)
|
|
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:12 Constant:
|
|
0:12 0 (const uint)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 indirect index (temp float)
|
|
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:12 Constant:
|
|
0:12 0 (const uint)
|
|
0:12 add (temp int)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 Constant:
|
|
0:12 1 (const int)
|
|
0:12 indirect index (temp float)
|
|
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:12 Constant:
|
|
0:12 0 (const uint)
|
|
0:12 add (temp int)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 Constant:
|
|
0:12 2 (const int)
|
|
0:12 indirect index (temp float)
|
|
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:12 Constant:
|
|
0:12 0 (const uint)
|
|
0:12 add (temp int)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 Constant:
|
|
0:12 3 (const int)
|
|
0:5 Function Definition: main( (temp void)
|
|
0:5 Function Parameters:
|
|
0:? Sequence
|
|
0:5 move second child to first child (temp uint)
|
|
0:? 'pos' (temp uint)
|
|
0:? 'pos' (layout(location=0 ) in uint)
|
|
0:5 move second child to first child (temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
|
0:5 Function Call: @main(u1; (temp 4-component vector of float)
|
|
0:? 'pos' (temp uint)
|
|
0:? Linker Objects
|
|
0:? 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
|
0:? 'pos' (layout(location=0 ) in uint)
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
Shader version: 450
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:5 Function Definition: @main(u1; (temp 4-component vector of float)
|
|
0:5 Function Parameters:
|
|
0:5 'pos' (in uint)
|
|
0:? Sequence
|
|
0:7 Sequence
|
|
0:7 move second child to first child (temp uint)
|
|
0:7 'size' (temp uint)
|
|
0:7 array length (temp uint)
|
|
0:7 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:7 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:7 Constant:
|
|
0:7 0 (const uint)
|
|
0:12 Branch: Return with expression
|
|
0:11 add (temp 4-component vector of float)
|
|
0:10 add (temp 4-component vector of float)
|
|
0:9 add (temp 4-component vector of float)
|
|
0:9 Convert uint to float (temp float)
|
|
0:9 indirect index (layout(row_major std430 ) readonly buffer uint)
|
|
0:9 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:9 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:9 Constant:
|
|
0:9 0 (const uint)
|
|
0:9 right-shift (temp int)
|
|
0:9 'pos' (in uint)
|
|
0:9 Constant:
|
|
0:9 2 (const int)
|
|
0:? Construct vec4 (temp 4-component vector of float)
|
|
0:? Convert uint to float (temp 2-component vector of float)
|
|
0:? Sequence
|
|
0:10 move second child to first child (temp int)
|
|
0:10 'byteAddrTemp' (temp int)
|
|
0:10 right-shift (temp int)
|
|
0:10 add (temp uint)
|
|
0:10 'pos' (in uint)
|
|
0:10 Constant:
|
|
0:10 4 (const uint)
|
|
0:10 Constant:
|
|
0:10 2 (const int)
|
|
0:? Construct vec2 (temp 2-component vector of uint)
|
|
0:10 indirect index (temp float)
|
|
0:10 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:10 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:10 Constant:
|
|
0:10 0 (const uint)
|
|
0:10 'byteAddrTemp' (temp int)
|
|
0:10 indirect index (temp float)
|
|
0:10 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:10 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:10 Constant:
|
|
0:10 0 (const uint)
|
|
0:10 add (temp int)
|
|
0:10 'byteAddrTemp' (temp int)
|
|
0:10 Constant:
|
|
0:10 1 (const int)
|
|
0:10 Constant:
|
|
0:10 0.000000
|
|
0:10 Constant:
|
|
0:10 0.000000
|
|
0:? Construct vec4 (temp 4-component vector of float)
|
|
0:? Convert uint to float (temp 3-component vector of float)
|
|
0:? Sequence
|
|
0:11 move second child to first child (temp int)
|
|
0:11 'byteAddrTemp' (temp int)
|
|
0:11 right-shift (temp int)
|
|
0:11 add (temp uint)
|
|
0:11 'pos' (in uint)
|
|
0:11 Constant:
|
|
0:11 8 (const uint)
|
|
0:11 Constant:
|
|
0:11 2 (const int)
|
|
0:? Construct vec3 (temp 3-component vector of uint)
|
|
0:11 indirect index (temp float)
|
|
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:11 Constant:
|
|
0:11 0 (const uint)
|
|
0:11 'byteAddrTemp' (temp int)
|
|
0:11 indirect index (temp float)
|
|
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:11 Constant:
|
|
0:11 0 (const uint)
|
|
0:11 add (temp int)
|
|
0:11 'byteAddrTemp' (temp int)
|
|
0:11 Constant:
|
|
0:11 1 (const int)
|
|
0:11 indirect index (temp float)
|
|
0:11 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:11 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:11 Constant:
|
|
0:11 0 (const uint)
|
|
0:11 add (temp int)
|
|
0:11 'byteAddrTemp' (temp int)
|
|
0:11 Constant:
|
|
0:11 2 (const int)
|
|
0:11 Constant:
|
|
0:11 0.000000
|
|
0:? Convert uint to float (temp 4-component vector of float)
|
|
0:? Sequence
|
|
0:12 move second child to first child (temp int)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 right-shift (temp int)
|
|
0:12 add (temp uint)
|
|
0:12 'pos' (in uint)
|
|
0:12 Constant:
|
|
0:12 12 (const uint)
|
|
0:12 Constant:
|
|
0:12 2 (const int)
|
|
0:? Construct vec4 (temp 4-component vector of uint)
|
|
0:12 indirect index (temp float)
|
|
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:12 Constant:
|
|
0:12 0 (const uint)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 indirect index (temp float)
|
|
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:12 Constant:
|
|
0:12 0 (const uint)
|
|
0:12 add (temp int)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 Constant:
|
|
0:12 1 (const int)
|
|
0:12 indirect index (temp float)
|
|
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:12 Constant:
|
|
0:12 0 (const uint)
|
|
0:12 add (temp int)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 Constant:
|
|
0:12 2 (const int)
|
|
0:12 indirect index (temp float)
|
|
0:12 sbuf: direct index for structure (layout(row_major std430 ) readonly buffer implicitly-sized array of uint)
|
|
0:12 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:12 Constant:
|
|
0:12 0 (const uint)
|
|
0:12 add (temp int)
|
|
0:12 'byteAddrTemp' (temp int)
|
|
0:12 Constant:
|
|
0:12 3 (const int)
|
|
0:5 Function Definition: main( (temp void)
|
|
0:5 Function Parameters:
|
|
0:? Sequence
|
|
0:5 move second child to first child (temp uint)
|
|
0:? 'pos' (temp uint)
|
|
0:? 'pos' (layout(location=0 ) in uint)
|
|
0:5 move second child to first child (temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
|
0:5 Function Call: @main(u1; (temp 4-component vector of float)
|
|
0:? 'pos' (temp uint)
|
|
0:? Linker Objects
|
|
0:? 'anon@0' (layout(row_major std430 ) readonly buffer block{layout(row_major std430 ) readonly buffer implicitly-sized array of uint sbuf})
|
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
|
0:? 'pos' (layout(location=0 ) in uint)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 114
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 107 110
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Name 4 "main"
|
|
Name 12 "@main(u1;"
|
|
Name 11 "pos"
|
|
Name 14 "size"
|
|
Name 16 "sbuf"
|
|
MemberName 16(sbuf) 0 "sbuf"
|
|
Name 18 ""
|
|
Name 30 "byteAddrTemp"
|
|
Name 53 "byteAddrTemp"
|
|
Name 78 "byteAddrTemp"
|
|
Name 105 "pos"
|
|
Name 107 "pos"
|
|
Name 110 "@entryPointOutput"
|
|
Name 111 "param"
|
|
Decorate 15 ArrayStride 4
|
|
MemberDecorate 16(sbuf) 0 NonWritable
|
|
MemberDecorate 16(sbuf) 0 Offset 0
|
|
Decorate 16(sbuf) BufferBlock
|
|
Decorate 18 DescriptorSet 0
|
|
Decorate 107(pos) Location 0
|
|
Decorate 110(@entryPointOutput) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 0
|
|
7: TypePointer Function 6(int)
|
|
8: TypeFloat 32
|
|
9: TypeVector 8(float) 4
|
|
10: TypeFunction 9(fvec4) 7(ptr)
|
|
15: TypeRuntimeArray 6(int)
|
|
16(sbuf): TypeStruct 15
|
|
17: TypePointer Uniform 16(sbuf)
|
|
18: 17(ptr) Variable Uniform
|
|
19: TypeInt 32 1
|
|
21: 19(int) Constant 0
|
|
23: 19(int) Constant 2
|
|
25: TypePointer Uniform 6(int)
|
|
29: TypePointer Function 19(int)
|
|
32: 6(int) Constant 4
|
|
39: 19(int) Constant 1
|
|
43: TypeVector 6(int) 2
|
|
45: TypeVector 8(float) 2
|
|
47: 8(float) Constant 0
|
|
55: 6(int) Constant 8
|
|
69: TypeVector 6(int) 3
|
|
71: TypeVector 8(float) 3
|
|
80: 6(int) Constant 12
|
|
95: 19(int) Constant 3
|
|
99: TypeVector 6(int) 4
|
|
106: TypePointer Input 6(int)
|
|
107(pos): 106(ptr) Variable Input
|
|
109: TypePointer Output 9(fvec4)
|
|
110(@entryPointOutput): 109(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
105(pos): 7(ptr) Variable Function
|
|
111(param): 7(ptr) Variable Function
|
|
108: 6(int) Load 107(pos)
|
|
Store 105(pos) 108
|
|
112: 6(int) Load 105(pos)
|
|
Store 111(param) 112
|
|
113: 9(fvec4) FunctionCall 12(@main(u1;) 111(param)
|
|
Store 110(@entryPointOutput) 113
|
|
Return
|
|
FunctionEnd
|
|
12(@main(u1;): 9(fvec4) Function None 10
|
|
11(pos): 7(ptr) FunctionParameter
|
|
13: Label
|
|
14(size): 7(ptr) Variable Function
|
|
30(byteAddrTemp): 29(ptr) Variable Function
|
|
53(byteAddrTemp): 29(ptr) Variable Function
|
|
78(byteAddrTemp): 29(ptr) Variable Function
|
|
20: 19(int) ArrayLength 18 0
|
|
Store 14(size) 20
|
|
22: 6(int) Load 11(pos)
|
|
24: 19(int) ShiftRightLogical 22 23
|
|
26: 25(ptr) AccessChain 18 21 24
|
|
27: 6(int) Load 26
|
|
28: 8(float) ConvertUToF 27
|
|
31: 6(int) Load 11(pos)
|
|
33: 6(int) IAdd 31 32
|
|
34: 19(int) ShiftRightLogical 33 23
|
|
Store 30(byteAddrTemp) 34
|
|
35: 19(int) Load 30(byteAddrTemp)
|
|
36: 25(ptr) AccessChain 18 21 35
|
|
37: 6(int) Load 36
|
|
38: 19(int) Load 30(byteAddrTemp)
|
|
40: 19(int) IAdd 38 39
|
|
41: 25(ptr) AccessChain 18 21 40
|
|
42: 6(int) Load 41
|
|
44: 43(ivec2) CompositeConstruct 37 42
|
|
46: 45(fvec2) ConvertUToF 44
|
|
48: 8(float) CompositeExtract 46 0
|
|
49: 8(float) CompositeExtract 46 1
|
|
50: 9(fvec4) CompositeConstruct 48 49 47 47
|
|
51: 9(fvec4) CompositeConstruct 28 28 28 28
|
|
52: 9(fvec4) FAdd 51 50
|
|
54: 6(int) Load 11(pos)
|
|
56: 6(int) IAdd 54 55
|
|
57: 19(int) ShiftRightLogical 56 23
|
|
Store 53(byteAddrTemp) 57
|
|
58: 19(int) Load 53(byteAddrTemp)
|
|
59: 25(ptr) AccessChain 18 21 58
|
|
60: 6(int) Load 59
|
|
61: 19(int) Load 53(byteAddrTemp)
|
|
62: 19(int) IAdd 61 39
|
|
63: 25(ptr) AccessChain 18 21 62
|
|
64: 6(int) Load 63
|
|
65: 19(int) Load 53(byteAddrTemp)
|
|
66: 19(int) IAdd 65 23
|
|
67: 25(ptr) AccessChain 18 21 66
|
|
68: 6(int) Load 67
|
|
70: 69(ivec3) CompositeConstruct 60 64 68
|
|
72: 71(fvec3) ConvertUToF 70
|
|
73: 8(float) CompositeExtract 72 0
|
|
74: 8(float) CompositeExtract 72 1
|
|
75: 8(float) CompositeExtract 72 2
|
|
76: 9(fvec4) CompositeConstruct 73 74 75 47
|
|
77: 9(fvec4) FAdd 52 76
|
|
79: 6(int) Load 11(pos)
|
|
81: 6(int) IAdd 79 80
|
|
82: 19(int) ShiftRightLogical 81 23
|
|
Store 78(byteAddrTemp) 82
|
|
83: 19(int) Load 78(byteAddrTemp)
|
|
84: 25(ptr) AccessChain 18 21 83
|
|
85: 6(int) Load 84
|
|
86: 19(int) Load 78(byteAddrTemp)
|
|
87: 19(int) IAdd 86 39
|
|
88: 25(ptr) AccessChain 18 21 87
|
|
89: 6(int) Load 88
|
|
90: 19(int) Load 78(byteAddrTemp)
|
|
91: 19(int) IAdd 90 23
|
|
92: 25(ptr) AccessChain 18 21 91
|
|
93: 6(int) Load 92
|
|
94: 19(int) Load 78(byteAddrTemp)
|
|
96: 19(int) IAdd 94 95
|
|
97: 25(ptr) AccessChain 18 21 96
|
|
98: 6(int) Load 97
|
|
100: 99(ivec4) CompositeConstruct 85 89 93 98
|
|
101: 9(fvec4) ConvertUToF 100
|
|
102: 9(fvec4) FAdd 77 101
|
|
ReturnValue 102
|
|
FunctionEnd
|