Structured control-flow rules allow leaving the middle of a construct through a return, but not through a jump to a block that does a return. Addresses issue #58.
193 lines
9.4 KiB
Plaintext
Executable File
193 lines
9.4 KiB
Plaintext
Executable File
spv.structDeref.frag
|
|
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 120
|
|
|
|
Source GLSL 130
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main"
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Name 4 "main"
|
|
Name 8 "s0"
|
|
MemberName 8(s0) 0 "i"
|
|
Name 9 "s1"
|
|
MemberName 9(s1) 0 "i"
|
|
MemberName 9(s1) 1 "f"
|
|
MemberName 9(s1) 2 "s0_1"
|
|
Name 10 "s2"
|
|
MemberName 10(s2) 0 "i"
|
|
MemberName 10(s2) 1 "f"
|
|
MemberName 10(s2) 2 "s1_1"
|
|
Name 14 "s3"
|
|
MemberName 14(s3) 0 "s2_1"
|
|
MemberName 14(s3) 1 "i"
|
|
MemberName 14(s3) 2 "f"
|
|
MemberName 14(s3) 3 "s1_1"
|
|
Name 16 "foo3"
|
|
Name 27 "locals2"
|
|
Name 40 "fArray"
|
|
Name 46 "locals1Array"
|
|
Name 49 "foo1"
|
|
Name 53 "locals0"
|
|
Name 54 "s00"
|
|
MemberName 54(s00) 0 "s0_0"
|
|
Name 56 "locals00"
|
|
Name 61 "coord"
|
|
Name 68 "foo0"
|
|
Name 83 "foo00"
|
|
Name 96 "gl_FragColor"
|
|
Name 113 "sampler"
|
|
Name 119 "foo2"
|
|
Decorate 61(coord) Smooth
|
|
Decorate 96(gl_FragColor) BuiltIn FragColor
|
|
Decorate 119(foo2) NoStaticUse
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypeFloat 32
|
|
8(s0): TypeStruct 6(int)
|
|
9(s1): TypeStruct 6(int) 7(float) 8(s0)
|
|
10(s2): TypeStruct 6(int) 7(float) 9(s1)
|
|
11: TypeInt 32 0
|
|
12: 11(int) Constant 12
|
|
13: TypeArray 10(s2) 12
|
|
14(s3): TypeStruct 13 6(int) 7(float) 9(s1)
|
|
15: TypePointer UniformConstant 14(s3)
|
|
16(foo3): 15(ptr) Variable UniformConstant
|
|
17: 6(int) Constant 0
|
|
18: 6(int) Constant 9
|
|
19: TypePointer UniformConstant 6(int)
|
|
22: TypeBool
|
|
26: TypePointer Function 10(s2)
|
|
28: 6(int) Constant 1
|
|
29: 7(float) Constant 1065353216
|
|
30: TypePointer Function 7(float)
|
|
32: 6(int) Constant 2
|
|
33: 8(s0) ConstantComposite 17
|
|
34: 9(s1) ConstantComposite 17 29 33
|
|
35: TypePointer Function 9(s1)
|
|
37: 11(int) Constant 6
|
|
38: TypeArray 7(float) 37
|
|
39: TypePointer Function 38
|
|
41: 7(float) Constant 0
|
|
42: 38 ConstantComposite 41 41 41 41 41 41
|
|
43: 11(int) Constant 10
|
|
44: TypeArray 9(s1) 43
|
|
45: TypePointer Function 44
|
|
47: 6(int) Constant 6
|
|
48: TypePointer UniformConstant 9(s1)
|
|
49(foo1): 48(ptr) Variable UniformConstant
|
|
52: TypePointer Function 8(s0)
|
|
54(s00): TypeStruct 8(s0)
|
|
55: TypePointer Function 54(s00)
|
|
57: 54(s00) ConstantComposite 33
|
|
59: TypeVector 7(float) 2
|
|
60: TypePointer Input 59(fvec2)
|
|
61(coord): 60(ptr) Variable Input
|
|
67: TypePointer UniformConstant 8(s0)
|
|
68(foo0): 67(ptr) Variable UniformConstant
|
|
72: 7(float) Constant 1073741824
|
|
73: 7(float) Constant 1077936128
|
|
74: 7(float) Constant 1082130432
|
|
75: 7(float) Constant 1084227584
|
|
76: 38 ConstantComposite 41 29 72 73 74 75
|
|
82: TypePointer UniformConstant 54(s00)
|
|
83(foo00): 82(ptr) Variable UniformConstant
|
|
85: TypePointer Function 6(int)
|
|
88: 6(int) Constant 5
|
|
94: TypeVector 7(float) 4
|
|
95: TypePointer Output 94(fvec4)
|
|
96(gl_FragColor): 95(ptr) Variable Output
|
|
103: 6(int) Constant 3
|
|
110: TypeImage 7(float) 2D sampled format:Unknown
|
|
111: TypeSampledImage 110
|
|
112: TypePointer UniformConstant 111
|
|
113(sampler): 112(ptr) Variable UniformConstant
|
|
118: TypePointer UniformConstant 10(s2)
|
|
119(foo2): 118(ptr) Variable UniformConstant
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
27(locals2): 26(ptr) Variable Function
|
|
40(fArray): 39(ptr) Variable Function
|
|
46(locals1Array): 45(ptr) Variable Function
|
|
53(locals0): 52(ptr) Variable Function
|
|
56(locals00): 55(ptr) Variable Function
|
|
20: 19(ptr) AccessChain 16(foo3) 17 18 17
|
|
21: 6(int) Load 20
|
|
23: 22(bool) SGreaterThan 21 17
|
|
SelectionMerge 25 None
|
|
BranchConditional 23 24 58
|
|
24: Label
|
|
31: 30(ptr) AccessChain 27(locals2) 28
|
|
Store 31 29
|
|
36: 35(ptr) AccessChain 27(locals2) 32
|
|
Store 36 34
|
|
Store 40(fArray) 42
|
|
50: 9(s1) Load 49(foo1)
|
|
51: 35(ptr) AccessChain 46(locals1Array) 47
|
|
Store 51 50
|
|
Store 53(locals0) 33
|
|
Store 56(locals00) 57
|
|
Branch 25
|
|
58: Label
|
|
62: 59(fvec2) Load 61(coord)
|
|
63: 7(float) CompositeExtract 62 0
|
|
64: 30(ptr) AccessChain 27(locals2) 28
|
|
Store 64 63
|
|
65: 59(fvec2) Load 61(coord)
|
|
66: 7(float) CompositeExtract 65 1
|
|
69: 8(s0) Load 68(foo0)
|
|
70: 9(s1) CompositeConstruct 28 66 69
|
|
71: 35(ptr) AccessChain 27(locals2) 32
|
|
Store 71 70
|
|
Store 40(fArray) 76
|
|
77: 35(ptr) AccessChain 27(locals2) 32
|
|
78: 9(s1) Load 77
|
|
79: 35(ptr) AccessChain 46(locals1Array) 47
|
|
Store 79 78
|
|
80: 67(ptr) AccessChain 49(foo1) 32
|
|
81: 8(s0) Load 80
|
|
Store 53(locals0) 81
|
|
84: 54(s00) Load 83(foo00)
|
|
Store 56(locals00) 84
|
|
Branch 25
|
|
25: Label
|
|
86: 85(ptr) AccessChain 53(locals0) 17
|
|
87: 6(int) Load 86
|
|
89: 22(bool) SGreaterThan 87 88
|
|
SelectionMerge 91 None
|
|
BranchConditional 89 90 91
|
|
90: Label
|
|
92: 52(ptr) AccessChain 56(locals00) 17
|
|
93: 8(s0) Load 92
|
|
Store 53(locals0) 93
|
|
Branch 91
|
|
91: Label
|
|
97: 85(ptr) AccessChain 53(locals0) 17
|
|
98: 6(int) Load 97
|
|
99: 7(float) ConvertSToF 98
|
|
100: 30(ptr) AccessChain 46(locals1Array) 47 28
|
|
101: 7(float) Load 100
|
|
102: 7(float) FAdd 99 101
|
|
104: 30(ptr) AccessChain 40(fArray) 103
|
|
105: 7(float) Load 104
|
|
106: 7(float) FAdd 102 105
|
|
107: 30(ptr) AccessChain 27(locals2) 32 28
|
|
108: 7(float) Load 107
|
|
109: 7(float) FAdd 106 108
|
|
114: 111 Load 113(sampler)
|
|
115: 59(fvec2) Load 61(coord)
|
|
116: 94(fvec4) ImageSampleImplicitLod 114 115
|
|
117: 94(fvec4) VectorTimesScalar 116 109
|
|
Store 96(gl_FragColor) 117
|
|
Return
|
|
FunctionEnd
|