SPV return from main: Simplify a legacy design such returns are not jumps to exit block.
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.
This commit is contained in:
parent
5f5b205ce9
commit
e770b3e6cf
74 changed files with 9648 additions and 9816 deletions
|
|
@ -5,7 +5,7 @@ Linked fragment stage:
|
|||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 37
|
||||
// Id's are bound by 36
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
|
|
@ -14,53 +14,51 @@ Linked fragment stage:
|
|||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "white"
|
||||
Name 13 "black"
|
||||
Name 16 "color"
|
||||
Name 19 "x"
|
||||
Name 22 "tex_coord"
|
||||
Name 28 "y"
|
||||
Name 35 "gl_FragColor"
|
||||
Decorate 22(tex_coord) Smooth
|
||||
Decorate 35(gl_FragColor) BuiltIn FragColor
|
||||
Name 9 "white"
|
||||
Name 12 "black"
|
||||
Name 15 "color"
|
||||
Name 18 "x"
|
||||
Name 21 "tex_coord"
|
||||
Name 27 "y"
|
||||
Name 34 "gl_FragColor"
|
||||
Decorate 21(tex_coord) Smooth
|
||||
Decorate 34(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: 7(float) Constant 1065353216
|
||||
12: 8(fvec4) ConstantComposite 11 11 11 11
|
||||
14: 7(float) Constant 1045220557
|
||||
15: 8(fvec4) ConstantComposite 14 14 14 14
|
||||
18: TypePointer Function 7(float)
|
||||
20: TypeVector 7(float) 2
|
||||
21: TypePointer Input 20(fvec2)
|
||||
22(tex_coord): 21(ptr) Variable Input
|
||||
25: 7(float) Constant 1073741824
|
||||
34: TypePointer Output 8(fvec4)
|
||||
35(gl_FragColor): 34(ptr) Variable Output
|
||||
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
|
||||
33: TypePointer Output 7(fvec4)
|
||||
34(gl_FragColor): 33(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(white): 9(ptr) Variable Function
|
||||
13(black): 9(ptr) Variable Function
|
||||
16(color): 9(ptr) Variable Function
|
||||
19(x): 18(ptr) Variable Function
|
||||
28(y): 18(ptr) Variable Function
|
||||
Store 10(white) 12
|
||||
Store 13(black) 15
|
||||
17: 8(fvec4) Load 10(white)
|
||||
Store 16(color) 17
|
||||
23: 20(fvec2) Load 22(tex_coord)
|
||||
24: 7(float) CompositeExtract 23 0
|
||||
26: 7(float) FMul 24 25
|
||||
27: 7(float) FSub 26 11
|
||||
Store 19(x) 27
|
||||
29: 20(fvec2) Load 22(tex_coord)
|
||||
30: 7(float) CompositeExtract 29 1
|
||||
31: 7(float) FMul 30 25
|
||||
32: 7(float) FSub 31 11
|
||||
Store 28(y) 32
|
||||
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
|
||||
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
|
||||
Kill
|
||||
6: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue