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.
131 lines
6.0 KiB
Plaintext
Executable File
131 lines
6.0 KiB
Plaintext
Executable File
spv.always-discard.frag
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 80
|
|
|
|
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 "white"
|
|
Name 12 "black"
|
|
Name 15 "color"
|
|
Name 18 "x"
|
|
Name 21 "tex_coord"
|
|
Name 27 "y"
|
|
Name 32 "radius"
|
|
Name 55 "gl_FragColor"
|
|
Decorate 21(tex_coord) Smooth
|
|
Decorate 55(gl_FragColor) BuiltIn FragColor
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypePointer Function 7(fvec4)
|
|
10: 6(float) Constant 1065353216
|
|
11: 7(fvec4) ConstantComposite 10 10 10 10
|
|
13: 6(float) Constant 1045220557
|
|
14: 7(fvec4) ConstantComposite 13 13 13 13
|
|
17: TypePointer Function 6(float)
|
|
19: TypeVector 6(float) 2
|
|
20: TypePointer Input 19(fvec2)
|
|
21(tex_coord): 20(ptr) Variable Input
|
|
24: 6(float) Constant 1073741824
|
|
42: TypeBool
|
|
47: 6(float) Constant 1066192077
|
|
54: TypePointer Output 7(fvec4)
|
|
55(gl_FragColor): 54(ptr) Variable Output
|
|
58: 6(float) Constant 1067030938
|
|
67: 6(float) Constant 1061158912
|
|
72: 6(float) Constant 1098907648
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
9(white): 8(ptr) Variable Function
|
|
12(black): 8(ptr) Variable Function
|
|
15(color): 8(ptr) Variable Function
|
|
18(x): 17(ptr) Variable Function
|
|
27(y): 17(ptr) Variable Function
|
|
32(radius): 17(ptr) Variable Function
|
|
Store 9(white) 11
|
|
Store 12(black) 14
|
|
16: 7(fvec4) Load 9(white)
|
|
Store 15(color) 16
|
|
22: 19(fvec2) Load 21(tex_coord)
|
|
23: 6(float) CompositeExtract 22 0
|
|
25: 6(float) FMul 23 24
|
|
26: 6(float) FSub 25 10
|
|
Store 18(x) 26
|
|
28: 19(fvec2) Load 21(tex_coord)
|
|
29: 6(float) CompositeExtract 28 1
|
|
30: 6(float) FMul 29 24
|
|
31: 6(float) FSub 30 10
|
|
Store 27(y) 31
|
|
33: 6(float) Load 18(x)
|
|
34: 6(float) Load 18(x)
|
|
35: 6(float) FMul 33 34
|
|
36: 6(float) Load 27(y)
|
|
37: 6(float) Load 27(y)
|
|
38: 6(float) FMul 36 37
|
|
39: 6(float) FAdd 35 38
|
|
40: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 39
|
|
Store 32(radius) 40
|
|
41: 6(float) Load 32(radius)
|
|
43: 42(bool) FOrdGreaterThan 41 10
|
|
SelectionMerge 45 None
|
|
BranchConditional 43 44 45
|
|
44: Label
|
|
46: 6(float) Load 32(radius)
|
|
48: 42(bool) FOrdGreaterThan 46 47
|
|
SelectionMerge 50 None
|
|
BranchConditional 48 49 50
|
|
49: Label
|
|
51: 7(fvec4) Load 15(color)
|
|
52: 7(fvec4) CompositeConstruct 10 10 10 10
|
|
53: 7(fvec4) FAdd 51 52
|
|
Store 15(color) 53
|
|
Branch 50
|
|
50: Label
|
|
56: 7(fvec4) Load 15(color)
|
|
Store 55(gl_FragColor) 56
|
|
57: 6(float) Load 32(radius)
|
|
59: 42(bool) FOrdGreaterThan 57 58
|
|
SelectionMerge 61 None
|
|
BranchConditional 59 60 61
|
|
60: Label
|
|
62: 7(fvec4) Load 15(color)
|
|
63: 7(fvec4) CompositeConstruct 10 10 10 10
|
|
64: 7(fvec4) FAdd 62 63
|
|
Store 15(color) 64
|
|
Branch 61
|
|
61: Label
|
|
Branch 45
|
|
45: Label
|
|
Kill
|
|
65: Label
|
|
66: 6(float) Load 32(radius)
|
|
68: 42(bool) FOrdGreaterThanEqual 66 67
|
|
SelectionMerge 70 None
|
|
BranchConditional 68 69 70
|
|
69: Label
|
|
71: 6(float) Load 32(radius)
|
|
73: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 71 72
|
|
74: 6(float) FDiv 73 24
|
|
75: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 74
|
|
76: 7(fvec4) Load 15(color)
|
|
77: 7(fvec4) CompositeConstruct 75 75 75 75
|
|
78: 7(fvec4) FSub 76 77
|
|
Store 15(color) 78
|
|
Branch 70
|
|
70: Label
|
|
79: 7(fvec4) Load 15(color)
|
|
Store 55(gl_FragColor) 79
|
|
Return
|
|
FunctionEnd
|