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.
179 lines
8.4 KiB
Plaintext
Executable File
179 lines
8.4 KiB
Plaintext
Executable File
spv.earlyReturnDiscard.frag
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 111
|
|
|
|
Source GLSL 110
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main"
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Name 4 "main"
|
|
Name 9 "color"
|
|
Name 11 "BaseColor"
|
|
Name 13 "color2"
|
|
Name 15 "otherColor"
|
|
Name 18 "c"
|
|
Name 21 "d"
|
|
Name 27 "bigColor"
|
|
Name 32 "smallColor"
|
|
Name 38 "minimum"
|
|
Name 52 "threshhold"
|
|
Name 63 "threshhold2"
|
|
Name 77 "b"
|
|
Name 106 "gl_FragColor"
|
|
Name 110 "threshhold3"
|
|
Decorate 11(BaseColor) Smooth
|
|
Decorate 18(c) Smooth
|
|
Decorate 106(gl_FragColor) BuiltIn FragColor
|
|
Decorate 110(threshhold3) NoStaticUse
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypePointer Function 7(fvec4)
|
|
10: TypePointer Input 7(fvec4)
|
|
11(BaseColor): 10(ptr) Variable Input
|
|
14: TypePointer UniformConstant 7(fvec4)
|
|
15(otherColor): 14(ptr) Variable UniformConstant
|
|
17: TypePointer Input 6(float)
|
|
18(c): 17(ptr) Variable Input
|
|
20: TypePointer UniformConstant 6(float)
|
|
21(d): 20(ptr) Variable UniformConstant
|
|
23: TypeBool
|
|
27(bigColor): 14(ptr) Variable UniformConstant
|
|
32(smallColor): 14(ptr) Variable UniformConstant
|
|
38(minimum): 20(ptr) Variable UniformConstant
|
|
46: 6(float) Constant 1065353216
|
|
52(threshhold): 20(ptr) Variable UniformConstant
|
|
63(threshhold2): 20(ptr) Variable UniformConstant
|
|
76: TypePointer UniformConstant 23(bool)
|
|
77(b): 76(ptr) Variable UniformConstant
|
|
105: TypePointer Output 7(fvec4)
|
|
106(gl_FragColor): 105(ptr) Variable Output
|
|
110(threshhold3): 20(ptr) Variable UniformConstant
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
9(color): 8(ptr) Variable Function
|
|
13(color2): 8(ptr) Variable Function
|
|
12: 7(fvec4) Load 11(BaseColor)
|
|
Store 9(color) 12
|
|
16: 7(fvec4) Load 15(otherColor)
|
|
Store 13(color2) 16
|
|
19: 6(float) Load 18(c)
|
|
22: 6(float) Load 21(d)
|
|
24: 23(bool) FOrdGreaterThan 19 22
|
|
SelectionMerge 26 None
|
|
BranchConditional 24 25 31
|
|
25: Label
|
|
28: 7(fvec4) Load 27(bigColor)
|
|
29: 7(fvec4) Load 9(color)
|
|
30: 7(fvec4) FAdd 29 28
|
|
Store 9(color) 30
|
|
Branch 26
|
|
31: Label
|
|
33: 7(fvec4) Load 32(smallColor)
|
|
34: 7(fvec4) Load 9(color)
|
|
35: 7(fvec4) FAdd 34 33
|
|
Store 9(color) 35
|
|
Branch 26
|
|
26: Label
|
|
36: 7(fvec4) Load 9(color)
|
|
37: 6(float) CompositeExtract 36 2
|
|
39: 6(float) Load 38(minimum)
|
|
40: 23(bool) FOrdLessThan 37 39
|
|
SelectionMerge 42 None
|
|
BranchConditional 40 41 42
|
|
41: Label
|
|
Return
|
|
42: Label
|
|
44: 7(fvec4) Load 9(color)
|
|
45: 6(float) CompositeExtract 44 2
|
|
47: 6(float) FAdd 45 46
|
|
48: 7(fvec4) Load 9(color)
|
|
49: 7(fvec4) CompositeInsert 47 48 2
|
|
Store 9(color) 49
|
|
50: 7(fvec4) Load 9(color)
|
|
51: 6(float) CompositeExtract 50 2
|
|
53: 6(float) Load 52(threshhold)
|
|
54: 23(bool) FOrdGreaterThan 51 53
|
|
SelectionMerge 56 None
|
|
BranchConditional 54 55 56
|
|
55: Label
|
|
Kill
|
|
56: Label
|
|
58: 7(fvec4) Load 9(color)
|
|
59: 7(fvec4) CompositeConstruct 46 46 46 46
|
|
60: 7(fvec4) FAdd 58 59
|
|
Store 9(color) 60
|
|
61: 7(fvec4) Load 9(color)
|
|
62: 6(float) CompositeExtract 61 3
|
|
64: 6(float) Load 63(threshhold2)
|
|
65: 23(bool) FOrdGreaterThan 62 64
|
|
SelectionMerge 67 None
|
|
BranchConditional 65 66 98
|
|
66: Label
|
|
68: 7(fvec4) Load 9(color)
|
|
69: 6(float) CompositeExtract 68 2
|
|
70: 6(float) Load 63(threshhold2)
|
|
71: 23(bool) FOrdGreaterThan 69 70
|
|
SelectionMerge 73 None
|
|
BranchConditional 71 72 75
|
|
72: Label
|
|
Return
|
|
75: Label
|
|
78: 23(bool) Load 77(b)
|
|
SelectionMerge 80 None
|
|
BranchConditional 78 79 86
|
|
79: Label
|
|
81: 7(fvec4) Load 9(color)
|
|
82: 6(float) CompositeExtract 81 2
|
|
83: 6(float) FAdd 82 46
|
|
84: 7(fvec4) Load 9(color)
|
|
85: 7(fvec4) CompositeInsert 83 84 2
|
|
Store 9(color) 85
|
|
Branch 80
|
|
86: Label
|
|
87: 7(fvec4) Load 9(color)
|
|
88: 6(float) CompositeExtract 87 0
|
|
89: 6(float) Load 38(minimum)
|
|
90: 23(bool) FOrdLessThan 88 89
|
|
SelectionMerge 92 None
|
|
BranchConditional 90 91 94
|
|
91: Label
|
|
Kill
|
|
94: Label
|
|
95: 7(fvec4) Load 9(color)
|
|
96: 7(fvec4) CompositeConstruct 46 46 46 46
|
|
97: 7(fvec4) FAdd 95 96
|
|
Store 9(color) 97
|
|
Branch 92
|
|
92: Label
|
|
Branch 80
|
|
80: Label
|
|
Branch 73
|
|
73: Label
|
|
Branch 67
|
|
98: Label
|
|
99: 23(bool) Load 77(b)
|
|
SelectionMerge 101 None
|
|
BranchConditional 99 100 103
|
|
100: Label
|
|
Kill
|
|
103: Label
|
|
Return
|
|
101: Label
|
|
Branch 67
|
|
67: Label
|
|
107: 7(fvec4) Load 9(color)
|
|
108: 7(fvec4) Load 13(color2)
|
|
109: 7(fvec4) FMul 107 108
|
|
Store 106(gl_FragColor) 109
|
|
Return
|
|
FunctionEnd
|