HLSL: Stop flattening non-IO structs containing opaques.
This makes struct returns from functions work, but breaks structs containing arrays, due to limitations in subsequent transforms in spirv-opt. This is expected to be fixed soon.
This commit is contained in:
@@ -7,11 +7,17 @@ Shader version: 500
|
||||
0:12 'pos' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:14 move second child to first child ( temp texture2D)
|
||||
0:? 'packed.tex' ( temp texture2D)
|
||||
0:14 tex: direct index for structure ( temp texture2D)
|
||||
0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'tex' ( uniform texture2D)
|
||||
0:15 move second child to first child ( temp 3-component vector of float)
|
||||
0:15 direct index ( temp 3-component vector of float)
|
||||
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
|
||||
0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:? Constant:
|
||||
@@ -20,18 +26,27 @@ Shader version: 500
|
||||
0:? 0.000000
|
||||
0:16 move second child to first child ( temp 2-component vector of float)
|
||||
0:16 direct index ( temp 2-component vector of float)
|
||||
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float)
|
||||
0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||
0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:16 Constant:
|
||||
0:16 2 (const int)
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:? Constant:
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:17 move second child to first child ( temp float)
|
||||
0:? 'packed.x' ( temp float)
|
||||
0:17 x: direct index for structure ( temp float)
|
||||
0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:17 Constant:
|
||||
0:17 3 (const int)
|
||||
0:17 Constant:
|
||||
0:17 1.000000
|
||||
0:18 move second child to first child ( temp int)
|
||||
0:? 'packed.n' ( temp int)
|
||||
0:18 n: direct index for structure ( temp int)
|
||||
0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:18 Constant:
|
||||
0:18 4 (const int)
|
||||
0:18 Constant:
|
||||
0:18 3 (const int)
|
||||
0:20 Sequence
|
||||
@@ -50,7 +65,10 @@ Shader version: 500
|
||||
0:21 add second child into first child ( temp 2-component vector of float)
|
||||
0:21 vector swizzle ( temp 2-component vector of float)
|
||||
0:21 indirect index ( temp 3-component vector of float)
|
||||
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
|
||||
0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 'i' ( temp int)
|
||||
0:21 Sequence
|
||||
0:21 Constant:
|
||||
@@ -58,34 +76,27 @@ Shader version: 500
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 indirect index ( temp 2-component vector of float)
|
||||
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float)
|
||||
0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||
0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:21 Constant:
|
||||
0:21 2 (const int)
|
||||
0:21 'i' ( temp int)
|
||||
0:20 Loop Terminal Expression
|
||||
0:20 Pre-Increment ( temp int)
|
||||
0:20 'i' ( temp int)
|
||||
0:24 Sequence
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp texture2D)
|
||||
0:? 'packed2.tex' ( temp texture2D)
|
||||
0:? 'packed.tex' ( temp texture2D)
|
||||
0:24 move second child to first child ( temp 3-element array of 3-component vector of float)
|
||||
0:? 'packed2.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:24 move second child to first child ( temp 2-element array of 2-component vector of float)
|
||||
0:? 'packed2.uv' ( temp 2-element array of 2-component vector of float)
|
||||
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float)
|
||||
0:24 move second child to first child ( temp float)
|
||||
0:? 'packed2.x' ( temp float)
|
||||
0:? 'packed.x' ( temp float)
|
||||
0:24 move second child to first child ( temp int)
|
||||
0:? 'packed2.n' ( temp int)
|
||||
0:? 'packed.n' ( temp int)
|
||||
0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:26 Branch: Return with expression
|
||||
0:26 add ( temp 4-component vector of float)
|
||||
0:26 'pos' ( in 4-component vector of float)
|
||||
0:? Construct vec4 ( temp 4-component vector of float)
|
||||
0:26 direct index ( temp 3-component vector of float)
|
||||
0:? 'packed2.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
|
||||
0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
@@ -116,11 +127,17 @@ Shader version: 500
|
||||
0:12 'pos' ( in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:14 move second child to first child ( temp texture2D)
|
||||
0:? 'packed.tex' ( temp texture2D)
|
||||
0:14 tex: direct index for structure ( temp texture2D)
|
||||
0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 'tex' ( uniform texture2D)
|
||||
0:15 move second child to first child ( temp 3-component vector of float)
|
||||
0:15 direct index ( temp 3-component vector of float)
|
||||
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
|
||||
0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:? Constant:
|
||||
@@ -129,18 +146,27 @@ Shader version: 500
|
||||
0:? 0.000000
|
||||
0:16 move second child to first child ( temp 2-component vector of float)
|
||||
0:16 direct index ( temp 2-component vector of float)
|
||||
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float)
|
||||
0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||
0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:16 Constant:
|
||||
0:16 2 (const int)
|
||||
0:16 Constant:
|
||||
0:16 0 (const int)
|
||||
0:? Constant:
|
||||
0:? 0.000000
|
||||
0:? 1.000000
|
||||
0:17 move second child to first child ( temp float)
|
||||
0:? 'packed.x' ( temp float)
|
||||
0:17 x: direct index for structure ( temp float)
|
||||
0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:17 Constant:
|
||||
0:17 3 (const int)
|
||||
0:17 Constant:
|
||||
0:17 1.000000
|
||||
0:18 move second child to first child ( temp int)
|
||||
0:? 'packed.n' ( temp int)
|
||||
0:18 n: direct index for structure ( temp int)
|
||||
0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:18 Constant:
|
||||
0:18 4 (const int)
|
||||
0:18 Constant:
|
||||
0:18 3 (const int)
|
||||
0:20 Sequence
|
||||
@@ -159,7 +185,10 @@ Shader version: 500
|
||||
0:21 add second child into first child ( temp 2-component vector of float)
|
||||
0:21 vector swizzle ( temp 2-component vector of float)
|
||||
0:21 indirect index ( temp 3-component vector of float)
|
||||
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
|
||||
0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 'i' ( temp int)
|
||||
0:21 Sequence
|
||||
0:21 Constant:
|
||||
@@ -167,34 +196,27 @@ Shader version: 500
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 indirect index ( temp 2-component vector of float)
|
||||
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float)
|
||||
0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||
0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:21 Constant:
|
||||
0:21 2 (const int)
|
||||
0:21 'i' ( temp int)
|
||||
0:20 Loop Terminal Expression
|
||||
0:20 Pre-Increment ( temp int)
|
||||
0:20 'i' ( temp int)
|
||||
0:24 Sequence
|
||||
0:24 Sequence
|
||||
0:24 move second child to first child ( temp texture2D)
|
||||
0:? 'packed2.tex' ( temp texture2D)
|
||||
0:? 'packed.tex' ( temp texture2D)
|
||||
0:24 move second child to first child ( temp 3-element array of 3-component vector of float)
|
||||
0:? 'packed2.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:24 move second child to first child ( temp 2-element array of 2-component vector of float)
|
||||
0:? 'packed2.uv' ( temp 2-element array of 2-component vector of float)
|
||||
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float)
|
||||
0:24 move second child to first child ( temp float)
|
||||
0:? 'packed2.x' ( temp float)
|
||||
0:? 'packed.x' ( temp float)
|
||||
0:24 move second child to first child ( temp int)
|
||||
0:? 'packed2.n' ( temp int)
|
||||
0:? 'packed.n' ( temp int)
|
||||
0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:26 Branch: Return with expression
|
||||
0:26 add ( temp 4-component vector of float)
|
||||
0:26 'pos' ( in 4-component vector of float)
|
||||
0:? Construct vec4 ( temp 4-component vector of float)
|
||||
0:26 direct index ( temp 3-component vector of float)
|
||||
0:? 'packed2.pos' ( temp 3-element array of 3-component vector of float)
|
||||
0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
|
||||
0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
|
||||
0:26 Constant:
|
||||
0:26 1 (const int)
|
||||
0:26 Constant:
|
||||
0:26 0 (const int)
|
||||
0:26 Constant:
|
||||
@@ -216,35 +238,33 @@ Shader version: 500
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 97
|
||||
// Id's are bound by 90
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 90 93
|
||||
EntryPoint Vertex 4 "main" 83 86
|
||||
Source HLSL 500
|
||||
Name 4 "main"
|
||||
Name 11 "@main(vf4;"
|
||||
Name 10 "pos"
|
||||
Name 15 "packed.tex"
|
||||
Name 17 "tex"
|
||||
Name 24 "packed.pos"
|
||||
Name 35 "packed.uv"
|
||||
Name 41 "packed.x"
|
||||
Name 43 "packed.n"
|
||||
Name 45 "i"
|
||||
Name 68 "packed2.tex"
|
||||
Name 70 "packed2.pos"
|
||||
Name 72 "packed2.uv"
|
||||
Name 74 "packed2.x"
|
||||
Name 76 "packed2.n"
|
||||
Name 88 "pos"
|
||||
Name 90 "pos"
|
||||
Name 93 "@entryPointOutput"
|
||||
Name 94 "param"
|
||||
Decorate 17(tex) DescriptorSet 0
|
||||
Decorate 90(pos) Location 0
|
||||
Decorate 93(@entryPointOutput) BuiltIn Position
|
||||
Name 22 "Packed"
|
||||
MemberName 22(Packed) 0 "tex"
|
||||
MemberName 22(Packed) 1 "pos"
|
||||
MemberName 22(Packed) 2 "uv"
|
||||
MemberName 22(Packed) 3 "x"
|
||||
MemberName 22(Packed) 4 "n"
|
||||
Name 24 "packed"
|
||||
Name 27 "tex"
|
||||
Name 47 "i"
|
||||
Name 69 "packed2"
|
||||
Name 81 "pos"
|
||||
Name 83 "pos"
|
||||
Name 86 "@entryPointOutput"
|
||||
Name 87 "param"
|
||||
Decorate 27(tex) DescriptorSet 0
|
||||
Decorate 83(pos) Location 0
|
||||
Decorate 86(@entryPointOutput) BuiltIn Position
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -252,115 +272,104 @@ Shader version: 500
|
||||
8: TypePointer Function 7(fvec4)
|
||||
9: TypeFunction 7(fvec4) 8(ptr)
|
||||
13: TypeImage 6(float) 2D sampled format:Unknown
|
||||
14: TypePointer Function 13
|
||||
16: TypePointer UniformConstant 13
|
||||
17(tex): 16(ptr) Variable UniformConstant
|
||||
19: TypeVector 6(float) 3
|
||||
20: TypeInt 32 0
|
||||
21: 20(int) Constant 3
|
||||
22: TypeArray 19(fvec3) 21
|
||||
23: TypePointer Function 22
|
||||
25: TypeInt 32 1
|
||||
26: 25(int) Constant 0
|
||||
27: 6(float) Constant 0
|
||||
28: 19(fvec3) ConstantComposite 27 27 27
|
||||
29: TypePointer Function 19(fvec3)
|
||||
31: TypeVector 6(float) 2
|
||||
32: 20(int) Constant 2
|
||||
33: TypeArray 31(fvec2) 32
|
||||
34: TypePointer Function 33
|
||||
36: 6(float) Constant 1065353216
|
||||
37: 31(fvec2) ConstantComposite 27 36
|
||||
38: TypePointer Function 31(fvec2)
|
||||
40: TypePointer Function 6(float)
|
||||
42: TypePointer Function 25(int)
|
||||
44: 25(int) Constant 3
|
||||
52: 25(int) Constant 1
|
||||
53: TypeBool
|
||||
89: TypePointer Input 7(fvec4)
|
||||
90(pos): 89(ptr) Variable Input
|
||||
92: TypePointer Output 7(fvec4)
|
||||
93(@entryPointOutput): 92(ptr) Variable Output
|
||||
14: TypeVector 6(float) 3
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 3
|
||||
17: TypeArray 14(fvec3) 16
|
||||
18: TypeVector 6(float) 2
|
||||
19: 15(int) Constant 2
|
||||
20: TypeArray 18(fvec2) 19
|
||||
21: TypeInt 32 1
|
||||
22(Packed): TypeStruct 13 17 20 6(float) 21(int)
|
||||
23: TypePointer Function 22(Packed)
|
||||
25: 21(int) Constant 0
|
||||
26: TypePointer UniformConstant 13
|
||||
27(tex): 26(ptr) Variable UniformConstant
|
||||
29: TypePointer Function 13
|
||||
31: 21(int) Constant 1
|
||||
32: 6(float) Constant 0
|
||||
33: 14(fvec3) ConstantComposite 32 32 32
|
||||
34: TypePointer Function 14(fvec3)
|
||||
36: 21(int) Constant 2
|
||||
37: 6(float) Constant 1065353216
|
||||
38: 18(fvec2) ConstantComposite 32 37
|
||||
39: TypePointer Function 18(fvec2)
|
||||
41: 21(int) Constant 3
|
||||
42: TypePointer Function 6(float)
|
||||
44: 21(int) Constant 4
|
||||
45: TypePointer Function 21(int)
|
||||
54: TypeBool
|
||||
82: TypePointer Input 7(fvec4)
|
||||
83(pos): 82(ptr) Variable Input
|
||||
85: TypePointer Output 7(fvec4)
|
||||
86(@entryPointOutput): 85(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
88(pos): 8(ptr) Variable Function
|
||||
94(param): 8(ptr) Variable Function
|
||||
91: 7(fvec4) Load 90(pos)
|
||||
Store 88(pos) 91
|
||||
95: 7(fvec4) Load 88(pos)
|
||||
Store 94(param) 95
|
||||
96: 7(fvec4) FunctionCall 11(@main(vf4;) 94(param)
|
||||
Store 93(@entryPointOutput) 96
|
||||
81(pos): 8(ptr) Variable Function
|
||||
87(param): 8(ptr) Variable Function
|
||||
84: 7(fvec4) Load 83(pos)
|
||||
Store 81(pos) 84
|
||||
88: 7(fvec4) Load 81(pos)
|
||||
Store 87(param) 88
|
||||
89: 7(fvec4) FunctionCall 11(@main(vf4;) 87(param)
|
||||
Store 86(@entryPointOutput) 89
|
||||
Return
|
||||
FunctionEnd
|
||||
11(@main(vf4;): 7(fvec4) Function None 9
|
||||
10(pos): 8(ptr) FunctionParameter
|
||||
12: Label
|
||||
15(packed.tex): 14(ptr) Variable Function
|
||||
24(packed.pos): 23(ptr) Variable Function
|
||||
35(packed.uv): 34(ptr) Variable Function
|
||||
41(packed.x): 40(ptr) Variable Function
|
||||
43(packed.n): 42(ptr) Variable Function
|
||||
45(i): 42(ptr) Variable Function
|
||||
68(packed2.tex): 14(ptr) Variable Function
|
||||
70(packed2.pos): 23(ptr) Variable Function
|
||||
72(packed2.uv): 34(ptr) Variable Function
|
||||
74(packed2.x): 40(ptr) Variable Function
|
||||
76(packed2.n): 42(ptr) Variable Function
|
||||
18: 13 Load 17(tex)
|
||||
Store 15(packed.tex) 18
|
||||
30: 29(ptr) AccessChain 24(packed.pos) 26
|
||||
24(packed): 23(ptr) Variable Function
|
||||
47(i): 45(ptr) Variable Function
|
||||
69(packed2): 23(ptr) Variable Function
|
||||
28: 13 Load 27(tex)
|
||||
30: 29(ptr) AccessChain 24(packed) 25
|
||||
Store 30 28
|
||||
39: 38(ptr) AccessChain 35(packed.uv) 26
|
||||
Store 39 37
|
||||
Store 41(packed.x) 36
|
||||
Store 43(packed.n) 44
|
||||
Store 45(i) 26
|
||||
Branch 46
|
||||
46: Label
|
||||
LoopMerge 48 49 None
|
||||
Branch 50
|
||||
50: Label
|
||||
51: 25(int) Load 45(i)
|
||||
54: 53(bool) SLessThan 51 52
|
||||
BranchConditional 54 47 48
|
||||
47: Label
|
||||
55: 25(int) Load 45(i)
|
||||
56: 25(int) Load 45(i)
|
||||
57: 38(ptr) AccessChain 35(packed.uv) 56
|
||||
58: 31(fvec2) Load 57
|
||||
59: 29(ptr) AccessChain 24(packed.pos) 55
|
||||
60: 19(fvec3) Load 59
|
||||
61: 31(fvec2) VectorShuffle 60 60 0 1
|
||||
62: 31(fvec2) FAdd 61 58
|
||||
63: 29(ptr) AccessChain 24(packed.pos) 55
|
||||
64: 19(fvec3) Load 63
|
||||
65: 19(fvec3) VectorShuffle 64 62 3 4 2
|
||||
Store 63 65
|
||||
Branch 49
|
||||
49: Label
|
||||
66: 25(int) Load 45(i)
|
||||
67: 25(int) IAdd 66 52
|
||||
Store 45(i) 67
|
||||
Branch 46
|
||||
35: 34(ptr) AccessChain 24(packed) 31 25
|
||||
Store 35 33
|
||||
40: 39(ptr) AccessChain 24(packed) 36 25
|
||||
Store 40 38
|
||||
43: 42(ptr) AccessChain 24(packed) 41
|
||||
Store 43 37
|
||||
46: 45(ptr) AccessChain 24(packed) 44
|
||||
Store 46 41
|
||||
Store 47(i) 25
|
||||
Branch 48
|
||||
48: Label
|
||||
69: 13 Load 15(packed.tex)
|
||||
Store 68(packed2.tex) 69
|
||||
71: 22 Load 24(packed.pos)
|
||||
Store 70(packed2.pos) 71
|
||||
73: 33 Load 35(packed.uv)
|
||||
Store 72(packed2.uv) 73
|
||||
75: 6(float) Load 41(packed.x)
|
||||
Store 74(packed2.x) 75
|
||||
77: 25(int) Load 43(packed.n)
|
||||
Store 76(packed2.n) 77
|
||||
78: 7(fvec4) Load 10(pos)
|
||||
79: 29(ptr) AccessChain 70(packed2.pos) 26
|
||||
80: 19(fvec3) Load 79
|
||||
81: 6(float) CompositeExtract 80 0
|
||||
82: 6(float) CompositeExtract 80 1
|
||||
83: 6(float) CompositeExtract 80 2
|
||||
84: 7(fvec4) CompositeConstruct 81 82 83 27
|
||||
85: 7(fvec4) FAdd 78 84
|
||||
ReturnValue 85
|
||||
LoopMerge 50 51 None
|
||||
Branch 52
|
||||
52: Label
|
||||
53: 21(int) Load 47(i)
|
||||
55: 54(bool) SLessThan 53 31
|
||||
BranchConditional 55 49 50
|
||||
49: Label
|
||||
56: 21(int) Load 47(i)
|
||||
57: 21(int) Load 47(i)
|
||||
58: 39(ptr) AccessChain 24(packed) 36 57
|
||||
59: 18(fvec2) Load 58
|
||||
60: 34(ptr) AccessChain 24(packed) 31 56
|
||||
61: 14(fvec3) Load 60
|
||||
62: 18(fvec2) VectorShuffle 61 61 0 1
|
||||
63: 18(fvec2) FAdd 62 59
|
||||
64: 34(ptr) AccessChain 24(packed) 31 56
|
||||
65: 14(fvec3) Load 64
|
||||
66: 14(fvec3) VectorShuffle 65 63 3 4 2
|
||||
Store 64 66
|
||||
Branch 51
|
||||
51: Label
|
||||
67: 21(int) Load 47(i)
|
||||
68: 21(int) IAdd 67 31
|
||||
Store 47(i) 68
|
||||
Branch 48
|
||||
50: Label
|
||||
70: 22(Packed) Load 24(packed)
|
||||
Store 69(packed2) 70
|
||||
71: 7(fvec4) Load 10(pos)
|
||||
72: 34(ptr) AccessChain 69(packed2) 31 25
|
||||
73: 14(fvec3) Load 72
|
||||
74: 6(float) CompositeExtract 73 0
|
||||
75: 6(float) CompositeExtract 73 1
|
||||
76: 6(float) CompositeExtract 73 2
|
||||
77: 7(fvec4) CompositeConstruct 74 75 76 32
|
||||
78: 7(fvec4) FAdd 71 77
|
||||
ReturnValue 78
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user