* rework how shader interface block naming rules are handled * Fixes 2136 According to the spec, shader interfaces (uniform blocks, buffer blocks, input blocks, output blocks) all should be matched up via their block names across all compilation units, not instance names. Also, all block names can be re-used between all 4 interface types without conflict. This change makes it so all of these blocks are matched and remapped using block name and not by instance name. Additional the rule that matched uniform and buffer blocks must either be anonymous or named (but not nessearily the same name) is now imposed. * add warning if instance names differ between matched shader interfaces * Add test cases from #2137 which is now fixed as well. * replace some tab characters with spaces * buffer blocks and uniform blocks now share the same block namespace
322 lines
24 KiB
Plaintext
Executable File
322 lines
24 KiB
Plaintext
Executable File
link.vk.multiBlocksValid.0.0.vert
|
|
Shader version: 430
|
|
0:? Sequence
|
|
0:43 Function Definition: main( ( global void)
|
|
0:43 Function Parameters:
|
|
0:45 Sequence
|
|
0:45 move second child to first child ( temp highp 4-component vector of float)
|
|
0:45 'oColor' ( smooth out highp 4-component vector of float)
|
|
0:45 component-wise multiply ( temp highp 4-component vector of float)
|
|
0:45 component-wise multiply ( temp highp 4-component vector of float)
|
|
0:45 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
|
|
0:45 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:45 Constant:
|
|
0:45 0 (const int)
|
|
0:45 Function Call: getColor2( ( global highp 4-component vector of float)
|
|
0:45 c: direct index for structure (layout( column_major std430 offset=0) buffer highp 4-component vector of float)
|
|
0:45 'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c})
|
|
0:45 Constant:
|
|
0:45 0 (const int)
|
|
0:46 move second child to first child ( temp highp 4-component vector of float)
|
|
0:46 v1: direct index for structure ( out highp 4-component vector of float)
|
|
0:46 'oV' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2})
|
|
0:46 Constant:
|
|
0:46 0 (const int)
|
|
0:46 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
|
|
0:46 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:46 Constant:
|
|
0:46 0 (const int)
|
|
0:48 move second child to first child ( temp highp 4-component vector of float)
|
|
0:48 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
|
|
0:48 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
|
|
0:48 Constant:
|
|
0:48 0 (const uint)
|
|
0:48 matrix-times-vector ( temp highp 4-component vector of float)
|
|
0:48 uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float)
|
|
0:48 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
|
|
0:48 Constant:
|
|
0:48 0 (const int)
|
|
0:48 Function Call: getWorld( ( global highp 4-component vector of float)
|
|
0:? Linker Objects
|
|
0:? 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
|
|
0:? 'oV' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2})
|
|
0:? 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:? 'uBuf' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p})
|
|
0:? 'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c})
|
|
0:? 'oColor' ( smooth out highp 4-component vector of float)
|
|
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance})
|
|
|
|
link.vk.multiBlocksValid.0.1.vert
|
|
Shader version: 430
|
|
0:? Sequence
|
|
0:36 Function Definition: getColor2( ( global highp 4-component vector of float)
|
|
0:36 Function Parameters:
|
|
0:38 Sequence
|
|
0:38 Branch: Return with expression
|
|
0:38 color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float)
|
|
0:38 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:38 Constant:
|
|
0:38 2 (const int)
|
|
0:41 Function Definition: getWorld( ( global highp 4-component vector of float)
|
|
0:41 Function Parameters:
|
|
0:43 Sequence
|
|
0:43 move second child to first child ( temp highp 4-component vector of float)
|
|
0:43 v1: direct index for structure ( out highp 4-component vector of float)
|
|
0:43 'anon@0' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2})
|
|
0:43 Constant:
|
|
0:43 0 (const uint)
|
|
0:43 Constant:
|
|
0:43 1.000000
|
|
0:43 1.000000
|
|
0:43 1.000000
|
|
0:43 1.000000
|
|
0:44 Branch: Return with expression
|
|
0:44 matrix-times-vector ( temp highp 4-component vector of float)
|
|
0:44 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float)
|
|
0:44 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
|
|
0:44 Constant:
|
|
0:44 1 (const int)
|
|
0:44 'P' ( in highp 4-component vector of float)
|
|
0:? Linker Objects
|
|
0:? 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:? 'uBuffer' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p})
|
|
0:? 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
|
|
0:? 'anon@0' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2})
|
|
0:? 'P' ( in highp 4-component vector of float)
|
|
|
|
|
|
Linked vertex stage:
|
|
|
|
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
|
|
uC: "layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}" versus uColor: "layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}"
|
|
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
|
|
uBuf: "layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}" versus uBuffer: "layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}"
|
|
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
|
|
uM: "layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}" versus uMatrix: "layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}"
|
|
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
|
|
oV: " out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}" versus anon@0: " out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}"
|
|
|
|
Shader version: 430
|
|
0:? Sequence
|
|
0:43 Function Definition: main( ( global void)
|
|
0:43 Function Parameters:
|
|
0:45 Sequence
|
|
0:45 move second child to first child ( temp highp 4-component vector of float)
|
|
0:45 'oColor' ( smooth out highp 4-component vector of float)
|
|
0:45 component-wise multiply ( temp highp 4-component vector of float)
|
|
0:45 component-wise multiply ( temp highp 4-component vector of float)
|
|
0:45 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
|
|
0:45 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:45 Constant:
|
|
0:45 0 (const int)
|
|
0:45 Function Call: getColor2( ( global highp 4-component vector of float)
|
|
0:45 c: direct index for structure (layout( column_major std430 offset=0) buffer highp 4-component vector of float)
|
|
0:45 'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c})
|
|
0:45 Constant:
|
|
0:45 0 (const int)
|
|
0:46 move second child to first child ( temp highp 4-component vector of float)
|
|
0:46 v1: direct index for structure ( out highp 4-component vector of float)
|
|
0:46 'oV' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2})
|
|
0:46 Constant:
|
|
0:46 0 (const int)
|
|
0:46 color1: direct index for structure (layout( column_major std140 offset=0) uniform highp 4-component vector of float)
|
|
0:46 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:46 Constant:
|
|
0:46 0 (const int)
|
|
0:48 move second child to first child ( temp highp 4-component vector of float)
|
|
0:48 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
|
|
0:48 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
|
|
0:48 Constant:
|
|
0:48 0 (const uint)
|
|
0:48 matrix-times-vector ( temp highp 4-component vector of float)
|
|
0:48 uProj: direct index for structure (layout( column_major std140 offset=0) uniform highp 4X4 matrix of float)
|
|
0:48 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
|
|
0:48 Constant:
|
|
0:48 0 (const int)
|
|
0:48 Function Call: getWorld( ( global highp 4-component vector of float)
|
|
0:36 Function Definition: getColor2( ( global highp 4-component vector of float)
|
|
0:36 Function Parameters:
|
|
0:38 Sequence
|
|
0:38 Branch: Return with expression
|
|
0:38 color2: direct index for structure (layout( column_major std140 offset=32) uniform highp 4-component vector of float)
|
|
0:38 'uColor' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:38 Constant:
|
|
0:38 2 (const int)
|
|
0:41 Function Definition: getWorld( ( global highp 4-component vector of float)
|
|
0:41 Function Parameters:
|
|
0:43 Sequence
|
|
0:43 move second child to first child ( temp highp 4-component vector of float)
|
|
0:43 v1: direct index for structure ( out highp 4-component vector of float)
|
|
0:43 'anon@0' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2})
|
|
0:43 Constant:
|
|
0:43 0 (const uint)
|
|
0:43 Constant:
|
|
0:43 1.000000
|
|
0:43 1.000000
|
|
0:43 1.000000
|
|
0:43 1.000000
|
|
0:44 Branch: Return with expression
|
|
0:44 matrix-times-vector ( temp highp 4-component vector of float)
|
|
0:44 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform highp 4X4 matrix of float)
|
|
0:44 'uMatrix' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
|
|
0:44 Constant:
|
|
0:44 1 (const int)
|
|
0:44 'P' ( in highp 4-component vector of float)
|
|
0:? Linker Objects
|
|
0:? 'uM' (layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld})
|
|
0:? 'oV' ( out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2})
|
|
0:? 'uC' (layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3})
|
|
0:? 'uBuf' (layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p})
|
|
0:? 'uColorBuf' (layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4-component vector of float c})
|
|
0:? 'oColor' ( smooth out highp 4-component vector of float)
|
|
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance})
|
|
0:? 'P' ( in highp 4-component vector of float)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80008
|
|
// Id's are bound by 73
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4 "main" 14 34 42 65
|
|
Source GLSL 430
|
|
Name 4 "main"
|
|
Name 9 "getColor2("
|
|
Name 11 "getWorld("
|
|
Name 14 "oColor"
|
|
Name 16 "ColorBlock"
|
|
MemberName 16(ColorBlock) 0 "color1"
|
|
MemberName 16(ColorBlock) 1 "b"
|
|
MemberName 16(ColorBlock) 2 "color2"
|
|
MemberName 16(ColorBlock) 3 "color3"
|
|
Name 18 "uC"
|
|
Name 26 "SecondaryColorBlock"
|
|
MemberName 26(SecondaryColorBlock) 0 "c"
|
|
Name 28 "uColorBuf"
|
|
Name 32 "Vertex"
|
|
MemberName 32(Vertex) 0 "v1"
|
|
MemberName 32(Vertex) 1 "v2"
|
|
Name 34 "oV"
|
|
Name 40 "gl_PerVertex"
|
|
MemberName 40(gl_PerVertex) 0 "gl_Position"
|
|
MemberName 40(gl_PerVertex) 1 "gl_PointSize"
|
|
MemberName 40(gl_PerVertex) 2 "gl_ClipDistance"
|
|
Name 42 ""
|
|
Name 44 "MatrixBlock"
|
|
MemberName 44(MatrixBlock) 0 "uProj"
|
|
MemberName 44(MatrixBlock) 1 "uWorld"
|
|
Name 46 "uM"
|
|
Name 65 "P"
|
|
Name 70 "BufferBlock"
|
|
MemberName 70(BufferBlock) 0 "p"
|
|
Name 72 "uBuf"
|
|
MemberDecorate 16(ColorBlock) 0 Offset 0
|
|
MemberDecorate 16(ColorBlock) 1 Offset 16
|
|
MemberDecorate 16(ColorBlock) 2 Offset 32
|
|
MemberDecorate 16(ColorBlock) 3 Offset 48
|
|
Decorate 16(ColorBlock) Block
|
|
Decorate 18(uC) DescriptorSet 0
|
|
Decorate 18(uC) Binding 1
|
|
MemberDecorate 26(SecondaryColorBlock) 0 Offset 0
|
|
Decorate 26(SecondaryColorBlock) BufferBlock
|
|
Decorate 28(uColorBuf) DescriptorSet 0
|
|
Decorate 28(uColorBuf) Binding 0
|
|
Decorate 32(Vertex) Block
|
|
MemberDecorate 40(gl_PerVertex) 0 BuiltIn Position
|
|
MemberDecorate 40(gl_PerVertex) 1 BuiltIn PointSize
|
|
MemberDecorate 40(gl_PerVertex) 2 BuiltIn ClipDistance
|
|
Decorate 40(gl_PerVertex) Block
|
|
MemberDecorate 44(MatrixBlock) 0 ColMajor
|
|
MemberDecorate 44(MatrixBlock) 0 Offset 0
|
|
MemberDecorate 44(MatrixBlock) 0 MatrixStride 16
|
|
MemberDecorate 44(MatrixBlock) 1 ColMajor
|
|
MemberDecorate 44(MatrixBlock) 1 Offset 64
|
|
MemberDecorate 44(MatrixBlock) 1 MatrixStride 16
|
|
Decorate 44(MatrixBlock) Block
|
|
Decorate 46(uM) DescriptorSet 0
|
|
Decorate 46(uM) Binding 0
|
|
MemberDecorate 70(BufferBlock) 0 ColMajor
|
|
MemberDecorate 70(BufferBlock) 0 Offset 0
|
|
MemberDecorate 70(BufferBlock) 0 MatrixStride 16
|
|
Decorate 70(BufferBlock) BufferBlock
|
|
Decorate 72(uBuf) DescriptorSet 0
|
|
Decorate 72(uBuf) Binding 1
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypeFunction 7(fvec4)
|
|
13: TypePointer Output 7(fvec4)
|
|
14(oColor): 13(ptr) Variable Output
|
|
15: TypeInt 32 0
|
|
16(ColorBlock): TypeStruct 7(fvec4) 15(int) 7(fvec4) 7(fvec4)
|
|
17: TypePointer Uniform 16(ColorBlock)
|
|
18(uC): 17(ptr) Variable Uniform
|
|
19: TypeInt 32 1
|
|
20: 19(int) Constant 0
|
|
21: TypePointer Uniform 7(fvec4)
|
|
26(SecondaryColorBlock): TypeStruct 7(fvec4)
|
|
27: TypePointer Uniform 26(SecondaryColorBlock)
|
|
28(uColorBuf): 27(ptr) Variable Uniform
|
|
32(Vertex): TypeStruct 7(fvec4) 7(fvec4)
|
|
33: TypePointer Output 32(Vertex)
|
|
34(oV): 33(ptr) Variable Output
|
|
38: 15(int) Constant 1
|
|
39: TypeArray 6(float) 38
|
|
40(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 39
|
|
41: TypePointer Output 40(gl_PerVertex)
|
|
42: 41(ptr) Variable Output
|
|
43: TypeMatrix 7(fvec4) 4
|
|
44(MatrixBlock): TypeStruct 43 43
|
|
45: TypePointer Uniform 44(MatrixBlock)
|
|
46(uM): 45(ptr) Variable Uniform
|
|
47: TypePointer Uniform 43
|
|
53: 19(int) Constant 2
|
|
58: 6(float) Constant 1065353216
|
|
59: 7(fvec4) ConstantComposite 58 58 58 58
|
|
61: 19(int) Constant 1
|
|
64: TypePointer Input 7(fvec4)
|
|
65(P): 64(ptr) Variable Input
|
|
70(BufferBlock): TypeStruct 43
|
|
71: TypePointer Uniform 70(BufferBlock)
|
|
72(uBuf): 71(ptr) Variable Uniform
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
22: 21(ptr) AccessChain 18(uC) 20
|
|
23: 7(fvec4) Load 22
|
|
24: 7(fvec4) FunctionCall 9(getColor2()
|
|
25: 7(fvec4) FMul 23 24
|
|
29: 21(ptr) AccessChain 28(uColorBuf) 20
|
|
30: 7(fvec4) Load 29
|
|
31: 7(fvec4) FMul 25 30
|
|
Store 14(oColor) 31
|
|
35: 21(ptr) AccessChain 18(uC) 20
|
|
36: 7(fvec4) Load 35
|
|
37: 13(ptr) AccessChain 34(oV) 20
|
|
Store 37 36
|
|
48: 47(ptr) AccessChain 46(uM) 20
|
|
49: 43 Load 48
|
|
50: 7(fvec4) FunctionCall 11(getWorld()
|
|
51: 7(fvec4) MatrixTimesVector 49 50
|
|
52: 13(ptr) AccessChain 42 20
|
|
Store 52 51
|
|
Return
|
|
FunctionEnd
|
|
9(getColor2(): 7(fvec4) Function None 8
|
|
10: Label
|
|
54: 21(ptr) AccessChain 18(uC) 53
|
|
55: 7(fvec4) Load 54
|
|
ReturnValue 55
|
|
FunctionEnd
|
|
11(getWorld(): 7(fvec4) Function None 8
|
|
12: Label
|
|
60: 13(ptr) AccessChain 34(oV) 20
|
|
Store 60 59
|
|
62: 47(ptr) AccessChain 46(uM) 61
|
|
63: 43 Load 62
|
|
66: 7(fvec4) Load 65(P)
|
|
67: 7(fvec4) MatrixTimesVector 63 66
|
|
ReturnValue 67
|
|
FunctionEnd
|