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 53
|
||||
// Id's are bound by 52
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
|
|
@ -14,69 +14,67 @@ Linked fragment stage:
|
|||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "texColor"
|
||||
Name 15 "color"
|
||||
Name 26 "inColor"
|
||||
Name 36 "alpha"
|
||||
Name 47 "gl_FragColor"
|
||||
Name 52 "texSampler2D"
|
||||
Decorate 47(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 52(texSampler2D) NoStaticUse
|
||||
Name 9 "texColor"
|
||||
Name 14 "color"
|
||||
Name 25 "inColor"
|
||||
Name 35 "alpha"
|
||||
Name 46 "gl_FragColor"
|
||||
Name 51 "texSampler2D"
|
||||
Decorate 46(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 51(texSampler2D) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypeInt 32 0
|
||||
12: 11(int) Constant 6
|
||||
13: TypeArray 8(fvec4) 12
|
||||
14: TypePointer UniformConstant 13
|
||||
15(color): 14(ptr) Variable UniformConstant
|
||||
16: TypeInt 32 1
|
||||
17: 16(int) Constant 1
|
||||
18: TypePointer UniformConstant 8(fvec4)
|
||||
24: TypeVector 7(float) 3
|
||||
25: TypePointer UniformConstant 24(fvec3)
|
||||
26(inColor): 25(ptr) Variable UniformConstant
|
||||
33: 11(int) Constant 16
|
||||
34: TypeArray 7(float) 33
|
||||
35: TypePointer UniformConstant 34
|
||||
36(alpha): 35(ptr) Variable UniformConstant
|
||||
37: 16(int) Constant 12
|
||||
38: TypePointer UniformConstant 7(float)
|
||||
46: TypePointer Output 8(fvec4)
|
||||
47(gl_FragColor): 46(ptr) Variable Output
|
||||
49: TypeImage 7(float) 2D sampled format:Unknown
|
||||
50: TypeSampledImage 49
|
||||
51: TypePointer UniformConstant 50
|
||||
52(texSampler2D): 51(ptr) Variable UniformConstant
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
10: TypeInt 32 0
|
||||
11: 10(int) Constant 6
|
||||
12: TypeArray 7(fvec4) 11
|
||||
13: TypePointer UniformConstant 12
|
||||
14(color): 13(ptr) Variable UniformConstant
|
||||
15: TypeInt 32 1
|
||||
16: 15(int) Constant 1
|
||||
17: TypePointer UniformConstant 7(fvec4)
|
||||
23: TypeVector 6(float) 3
|
||||
24: TypePointer UniformConstant 23(fvec3)
|
||||
25(inColor): 24(ptr) Variable UniformConstant
|
||||
32: 10(int) Constant 16
|
||||
33: TypeArray 6(float) 32
|
||||
34: TypePointer UniformConstant 33
|
||||
35(alpha): 34(ptr) Variable UniformConstant
|
||||
36: 15(int) Constant 12
|
||||
37: TypePointer UniformConstant 6(float)
|
||||
45: TypePointer Output 7(fvec4)
|
||||
46(gl_FragColor): 45(ptr) Variable Output
|
||||
48: TypeImage 6(float) 2D sampled format:Unknown
|
||||
49: TypeSampledImage 48
|
||||
50: TypePointer UniformConstant 49
|
||||
51(texSampler2D): 50(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(texColor): 9(ptr) Variable Function
|
||||
19: 18(ptr) AccessChain 15(color) 17
|
||||
20: 8(fvec4) Load 19
|
||||
21: 18(ptr) AccessChain 15(color) 17
|
||||
22: 8(fvec4) Load 21
|
||||
23: 8(fvec4) FAdd 20 22
|
||||
Store 10(texColor) 23
|
||||
27: 24(fvec3) Load 26(inColor)
|
||||
28: 8(fvec4) Load 10(texColor)
|
||||
29: 24(fvec3) VectorShuffle 28 28 0 1 2
|
||||
30: 24(fvec3) FAdd 29 27
|
||||
31: 8(fvec4) Load 10(texColor)
|
||||
32: 8(fvec4) VectorShuffle 31 30 4 5 6 3
|
||||
Store 10(texColor) 32
|
||||
39: 38(ptr) AccessChain 36(alpha) 37
|
||||
40: 7(float) Load 39
|
||||
41: 8(fvec4) Load 10(texColor)
|
||||
42: 7(float) CompositeExtract 41 3
|
||||
43: 7(float) FAdd 42 40
|
||||
44: 8(fvec4) Load 10(texColor)
|
||||
45: 8(fvec4) CompositeInsert 43 44 3
|
||||
Store 10(texColor) 45
|
||||
48: 8(fvec4) Load 10(texColor)
|
||||
Store 47(gl_FragColor) 48
|
||||
Branch 6
|
||||
6: Label
|
||||
9(texColor): 8(ptr) Variable Function
|
||||
18: 17(ptr) AccessChain 14(color) 16
|
||||
19: 7(fvec4) Load 18
|
||||
20: 17(ptr) AccessChain 14(color) 16
|
||||
21: 7(fvec4) Load 20
|
||||
22: 7(fvec4) FAdd 19 21
|
||||
Store 9(texColor) 22
|
||||
26: 23(fvec3) Load 25(inColor)
|
||||
27: 7(fvec4) Load 9(texColor)
|
||||
28: 23(fvec3) VectorShuffle 27 27 0 1 2
|
||||
29: 23(fvec3) FAdd 28 26
|
||||
30: 7(fvec4) Load 9(texColor)
|
||||
31: 7(fvec4) VectorShuffle 30 29 4 5 6 3
|
||||
Store 9(texColor) 31
|
||||
38: 37(ptr) AccessChain 35(alpha) 36
|
||||
39: 6(float) Load 38
|
||||
40: 7(fvec4) Load 9(texColor)
|
||||
41: 6(float) CompositeExtract 40 3
|
||||
42: 6(float) FAdd 41 39
|
||||
43: 7(fvec4) Load 9(texColor)
|
||||
44: 7(fvec4) CompositeInsert 42 43 3
|
||||
Store 9(texColor) 44
|
||||
47: 7(fvec4) Load 9(texColor)
|
||||
Store 46(gl_FragColor) 47
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue