Update .out files with new loop SPIR-V.

Also update breakForLoop and call builder.closeLoop() in code
generation.

Remove dead code.

Change-Id: Ic8ce5b208530f8787989ef45a2efa405f1b45310
This commit is contained in:
Dejan Mircevski 2016-01-11 14:48:36 -05:00
parent 7819bee82c
commit c8fbbab419
15 changed files with 2766 additions and 2793 deletions

View File

@ -142,7 +142,6 @@ protected:
std::unordered_map<const glslang::TTypeList*, spv::Id> structMap;
std::unordered_map<const glslang::TTypeList*, std::vector<int> > memberRemapper; // for mapping glslang block indices to spv indices (e.g., due to hidden members)
std::stack<bool> breakForLoop; // false means break for switch
std::stack<glslang::TIntermTyped*> loopTerminal; // code from the last part of a for loop: for(...; ...; terminal), needed for e.g., continue };
};
//
@ -1354,10 +1353,12 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
builder.createLoopMerge(&blocks.merge, &blocks.continue_target, spv::LoopControlMaskNone);
builder.createConditionalBranch(condition, &blocks.body, &blocks.merge);
breakForLoop.push(true);
builder.setBuildPoint(&blocks.body);
if (node->getBody())
node->getBody()->traverse(this);
builder.createBranch(&blocks.continue_target);
breakForLoop.pop();
builder.setBuildPoint(&blocks.continue_target);
if (node->getTerminal())
@ -1366,10 +1367,12 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
} else {
builder.createBranch(&blocks.body);
breakForLoop.push(true);
builder.setBuildPoint(&blocks.body);
if (node->getBody())
node->getBody()->traverse(this);
builder.createBranch(&blocks.continue_target);
breakForLoop.pop();
builder.setBuildPoint(&blocks.continue_target);
if (node->getTerminal())
@ -1387,6 +1390,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn
}
builder.setBuildPoint(&blocks.merge);
builder.closeLoop();
return false;
}
@ -1406,8 +1410,6 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T
builder.addSwitchBreak();
break;
case glslang::EOpContinue:
if (loopTerminal.top())
loopTerminal.top()->traverse(this);
builder.createLoopContinue();
break;
case glslang::EOpReturn:

View File

@ -1,71 +1,73 @@
spv.dataOutIndirect.vert
WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 38
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 26 23 37
Source GLSL 130
Name 4 "main"
Name 8 "i"
Name 23 "colorOut"
Name 26 "color"
Name 32 "gl_Position"
Name 37 "gl_VertexID"
Decorate 32(gl_Position) BuiltIn Position
Decorate 37(gl_VertexID) BuiltIn VertexId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 1
14: 6(int) Constant 5
15: TypeBool
17: TypeFloat 32
18: TypeVector 17(float) 4
19: TypeInt 32 0
20: 19(int) Constant 6
21: TypeArray 18(fvec4) 20
22: TypePointer Output 21
23(colorOut): 22(ptr) Variable Output
25: TypePointer Input 18(fvec4)
26(color): 25(ptr) Variable Input
28: TypePointer Output 18(fvec4)
32(gl_Position): 28(ptr) Variable Output
33: 6(int) Constant 2
36: TypePointer Input 6(int)
37(gl_VertexID): 36(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
13: 6(int) Load 8(i)
16: 15(bool) SLessThan 13 14
LoopMerge 11 10 None
BranchConditional 16 12 11
12: Label
24: 6(int) Load 8(i)
27: 18(fvec4) Load 26(color)
29: 28(ptr) AccessChain 23(colorOut) 24
Store 29 27
30: 6(int) Load 8(i)
31: 6(int) IAdd 30 9
Store 8(i) 31
Branch 10
11: Label
34: 28(ptr) AccessChain 23(colorOut) 33
35: 18(fvec4) Load 34
Store 32(gl_Position) 35
Return
FunctionEnd
spv.dataOutIndirect.vert
WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 39
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 27 24 38
Source GLSL 130
Name 4 "main"
Name 8 "i"
Name 24 "colorOut"
Name 27 "color"
Name 33 "gl_Position"
Name 38 "gl_VertexID"
Decorate 33(gl_Position) BuiltIn Position
Decorate 38(gl_VertexID) BuiltIn VertexId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 1
15: 6(int) Constant 5
16: TypeBool
18: TypeFloat 32
19: TypeVector 18(float) 4
20: TypeInt 32 0
21: 20(int) Constant 6
22: TypeArray 19(fvec4) 21
23: TypePointer Output 22
24(colorOut): 23(ptr) Variable Output
26: TypePointer Input 19(fvec4)
27(color): 26(ptr) Variable Input
29: TypePointer Output 19(fvec4)
33(gl_Position): 29(ptr) Variable Output
34: 6(int) Constant 2
37: TypePointer Input 6(int)
38(gl_VertexID): 37(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
Store 8(i) 9
Branch 13
10: Label
25: 6(int) Load 8(i)
28: 19(fvec4) Load 27(color)
30: 29(ptr) AccessChain 24(colorOut) 25
Store 30 28
Branch 12
11: Label
35: 29(ptr) AccessChain 24(colorOut) 34
36: 19(fvec4) Load 35
Store 33(gl_Position) 36
Return
12: Label
31: 6(int) Load 8(i)
32: 6(int) IAdd 31 9
Store 8(i) 32
Branch 13
13: Label
14: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15
LoopMerge 11 12 None
BranchConditional 17 10 11
FunctionEnd

View File

@ -5,56 +5,45 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 29
// Id's are bound by 23
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 27 28
EntryPoint Vertex 4 "main" 21 22
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 27 "gl_VertexID"
Name 28 "gl_InstanceID"
Decorate 27(gl_VertexID) BuiltIn VertexId
Decorate 28(gl_InstanceID) BuiltIn InstanceId
Name 21 "gl_VertexID"
Name 22 "gl_InstanceID"
Decorate 21(gl_VertexID) BuiltIn VertexId
Decorate 22(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
14: TypeBool
15: 14(bool) ConstantTrue
19: 6(int) Constant 10
23: 6(int) Constant 1
25: 14(bool) ConstantFalse
26: TypePointer Input 6(int)
27(gl_VertexID): 26(ptr) Variable Input
28(gl_InstanceID): 26(ptr) Variable Input
14: 6(int) Constant 1
17: 6(int) Constant 10
18: TypeBool
20: TypePointer Input 6(int)
21(gl_VertexID): 20(ptr) Variable Input
22(gl_InstanceID): 20(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
13: 14(bool) Phi 15 5 25 12
LoopMerge 11 10 None
Branch 16
16: Label
SelectionMerge 12 None
BranchConditional 13 12 17
17: Label
18: 6(int) Load 8(i)
20: 14(bool) SLessThan 18 19
SelectionMerge 21 None
BranchConditional 20 21 11
21: Label
Branch 12
12: Label
22: 6(int) Load 8(i)
24: 6(int) IAdd 22 23
Store 8(i) 24
Branch 10
13: 6(int) Load 8(i)
15: 6(int) IAdd 13 14
Store 8(i) 15
Branch 12
11: Label
Return
FunctionEnd
12: Label
16: 6(int) Load 8(i)
19: 18(bool) SLessThan 16 17
LoopMerge 11 12 None
BranchConditional 19 10 11
FunctionEnd

View File

@ -1,104 +1,93 @@
spv.do-while-continue-break.vert
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 51
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 49 50
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 24 "A"
Name 30 "B"
Name 33 "C"
Name 39 "D"
Name 42 "E"
Name 44 "F"
Name 46 "G"
Name 49 "gl_VertexID"
Name 50 "gl_InstanceID"
Decorate 49(gl_VertexID) BuiltIn VertexId
Decorate 50(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
14: TypeBool
15: 14(bool) ConstantTrue
19: 6(int) Constant 1
21: 6(int) Constant 19
26: 6(int) Constant 2
31: 14(bool) ConstantFalse
35: 6(int) Constant 5
40: 6(int) Constant 3
43: 6(int) Constant 42
45: 6(int) Constant 99
47: 6(int) Constant 12
48: TypePointer Input 6(int)
49(gl_VertexID): 48(ptr) Variable Input
50(gl_InstanceID): 48(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
24(A): 7(ptr) Variable Function
30(B): 7(ptr) Variable Function
33(C): 7(ptr) Variable Function
39(D): 7(ptr) Variable Function
42(E): 7(ptr) Variable Function
44(F): 7(ptr) Variable Function
46(G): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
13: 14(bool) Phi 15 5 31 28 31 38
LoopMerge 11 10 None
Branch 16
16: Label
SelectionMerge 12 None
BranchConditional 13 12 17
17: Label
18: 6(int) Load 8(i)
20: 6(int) IAdd 18 19
Store 8(i) 20
22: 14(bool) SLessThan 20 21
SelectionMerge 23 None
BranchConditional 22 23 11
23: Label
Branch 12
12: Label
Store 24(A) 9
25: 6(int) Load 8(i)
27: 14(bool) IEqual 25 26
SelectionMerge 29 None
BranchConditional 27 28 29
28: Label
Store 30(B) 19
Branch 10
32: Label
Store 33(C) 26
Branch 29
29: Label
34: 6(int) Load 8(i)
36: 14(bool) IEqual 34 35
SelectionMerge 38 None
BranchConditional 36 37 38
37: Label
Store 39(D) 40
Branch 11
41: Label
Store 42(E) 43
Branch 38
38: Label
Store 44(F) 45
Branch 10
11: Label
Store 46(G) 47
Return
FunctionEnd
spv.do-while-continue-break.vert
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 45
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 43 44
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 13 "A"
Name 20 "B"
Name 23 "C"
Name 29 "D"
Name 32 "E"
Name 34 "F"
Name 40 "G"
Name 43 "gl_VertexID"
Name 44 "gl_InstanceID"
Decorate 43(gl_VertexID) BuiltIn VertexId
Decorate 44(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
15: 6(int) Constant 2
16: TypeBool
21: 6(int) Constant 1
25: 6(int) Constant 5
30: 6(int) Constant 3
33: 6(int) Constant 42
35: 6(int) Constant 99
38: 6(int) Constant 19
41: 6(int) Constant 12
42: TypePointer Input 6(int)
43(gl_VertexID): 42(ptr) Variable Input
44(gl_InstanceID): 42(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
13(A): 7(ptr) Variable Function
20(B): 7(ptr) Variable Function
23(C): 7(ptr) Variable Function
29(D): 7(ptr) Variable Function
32(E): 7(ptr) Variable Function
34(F): 7(ptr) Variable Function
40(G): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
Store 13(A) 9
14: 6(int) Load 8(i)
17: 16(bool) IEqual 14 15
SelectionMerge 19 None
BranchConditional 17 18 19
11: Label
Store 40(G) 41
Return
12: Label
36: 6(int) Load 8(i)
37: 6(int) IAdd 36 21
Store 8(i) 37
39: 16(bool) SLessThan 37 38
LoopMerge 11 12 None
BranchConditional 39 10 11
18: Label
Store 20(B) 21
Branch 12
22: Label
Store 23(C) 15
Branch 19
19: Label
24: 6(int) Load 8(i)
26: 16(bool) IEqual 24 25
SelectionMerge 28 None
BranchConditional 26 27 28
27: Label
Store 29(D) 30
Branch 11
31: Label
Store 32(E) 33
Branch 28
28: Label
Store 34(F) 35
Branch 12
FunctionEnd

View File

@ -1,73 +1,62 @@
spv.doWhileLoop.frag
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 40
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11
ExecutionMode 4 OriginLowerLeft
Source GLSL 110
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 27 "d"
Name 32 "bigColor"
Name 38 "gl_FragColor"
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
17: TypeBool
18: 17(bool) ConstantTrue
21: TypeInt 32 0
22: 21(int) Constant 0
23: TypePointer Function 6(float)
26: TypePointer UniformConstant 6(float)
27(d): 26(ptr) Variable UniformConstant
31: TypePointer UniformConstant 7(fvec4)
32(bigColor): 31(ptr) Variable UniformConstant
36: 17(bool) ConstantFalse
37: TypePointer Output 7(fvec4)
38(gl_FragColor): 37(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Branch 13
13: Label
16: 17(bool) Phi 18 5 36 15
LoopMerge 14 13 None
Branch 19
19: Label
SelectionMerge 15 None
BranchConditional 16 15 20
20: Label
24: 23(ptr) AccessChain 9(color) 22
25: 6(float) Load 24
28: 6(float) Load 27(d)
29: 17(bool) FOrdLessThan 25 28
SelectionMerge 30 None
BranchConditional 29 30 14
30: Label
Branch 15
15: Label
33: 7(fvec4) Load 32(bigColor)
34: 7(fvec4) Load 9(color)
35: 7(fvec4) FAdd 34 33
Store 9(color) 35
Branch 13
14: Label
39: 7(fvec4) Load 9(color)
Store 38(gl_FragColor) 39
Return
FunctionEnd
spv.doWhileLoop.frag
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 34
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11
ExecutionMode 4 OriginLowerLeft
Source GLSL 110
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 17 "bigColor"
Name 27 "d"
Name 32 "gl_FragColor"
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
16: TypePointer UniformConstant 7(fvec4)
17(bigColor): 16(ptr) Variable UniformConstant
21: TypeInt 32 0
22: 21(int) Constant 0
23: TypePointer Function 6(float)
26: TypePointer UniformConstant 6(float)
27(d): 26(ptr) Variable UniformConstant
29: TypeBool
31: TypePointer Output 7(fvec4)
32(gl_FragColor): 31(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Branch 13
13: Label
18: 7(fvec4) Load 17(bigColor)
19: 7(fvec4) Load 9(color)
20: 7(fvec4) FAdd 19 18
Store 9(color) 20
Branch 15
14: Label
33: 7(fvec4) Load 9(color)
Store 32(gl_FragColor) 33
Return
15: Label
24: 23(ptr) AccessChain 9(color) 22
25: 6(float) Load 24
28: 6(float) Load 27(d)
30: 29(bool) FOrdLessThan 25 28
LoopMerge 14 15 None
BranchConditional 30 13 14
FunctionEnd

View File

@ -1,97 +1,96 @@
spv.for-continue-break.vert
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 48
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 46 47
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 17 "A"
Name 25 "B"
Name 29 "C"
Name 36 "D"
Name 38 "E"
Name 39 "F"
Name 43 "G"
Name 46 "gl_VertexID"
Name 47 "gl_InstanceID"
Decorate 46(gl_VertexID) BuiltIn VertexId
Decorate 47(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
14: 6(int) Constant 10
15: TypeBool
18: 6(int) Constant 1
20: 6(int) Constant 2
31: 6(int) Constant 3
40: 6(int) Constant 12
44: 6(int) Constant 99
45: TypePointer Input 6(int)
46(gl_VertexID): 45(ptr) Variable Input
47(gl_InstanceID): 45(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
17(A): 7(ptr) Variable Function
25(B): 7(ptr) Variable Function
29(C): 7(ptr) Variable Function
36(D): 7(ptr) Variable Function
38(E): 7(ptr) Variable Function
39(F): 7(ptr) Variable Function
43(G): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
13: 6(int) Load 8(i)
16: 15(bool) SLessThan 13 14
LoopMerge 11 10 None
BranchConditional 16 12 11
12: Label
Store 17(A) 18
19: 6(int) Load 8(i)
21: 6(int) SMod 19 20
22: 15(bool) IEqual 21 9
SelectionMerge 24 None
BranchConditional 22 23 24
23: Label
Store 25(B) 18
26: 6(int) Load 8(i)
27: 6(int) IAdd 26 18
Store 8(i) 27
Branch 10
28: Label
Store 29(C) 18
Branch 24
24: Label
30: 6(int) Load 8(i)
32: 6(int) SMod 30 31
33: 15(bool) IEqual 32 9
SelectionMerge 35 None
BranchConditional 33 34 35
34: Label
Store 36(D) 18
Branch 11
37: Label
Store 38(E) 18
Branch 35
35: Label
Store 39(F) 40
41: 6(int) Load 8(i)
42: 6(int) IAdd 41 18
Store 8(i) 42
Branch 10
11: Label
Store 43(G) 44
Return
FunctionEnd
spv.for-continue-break.vert
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 47
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 45 46
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 18 "A"
Name 26 "B"
Name 28 "C"
Name 35 "D"
Name 37 "E"
Name 38 "F"
Name 42 "G"
Name 45 "gl_VertexID"
Name 46 "gl_InstanceID"
Decorate 45(gl_VertexID) BuiltIn VertexId
Decorate 46(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
15: 6(int) Constant 10
16: TypeBool
19: 6(int) Constant 1
21: 6(int) Constant 2
30: 6(int) Constant 3
39: 6(int) Constant 12
43: 6(int) Constant 99
44: TypePointer Input 6(int)
45(gl_VertexID): 44(ptr) Variable Input
46(gl_InstanceID): 44(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
18(A): 7(ptr) Variable Function
26(B): 7(ptr) Variable Function
28(C): 7(ptr) Variable Function
35(D): 7(ptr) Variable Function
37(E): 7(ptr) Variable Function
38(F): 7(ptr) Variable Function
42(G): 7(ptr) Variable Function
Store 8(i) 9
Branch 13
10: Label
Store 18(A) 19
20: 6(int) Load 8(i)
22: 6(int) SMod 20 21
23: 16(bool) IEqual 22 9
SelectionMerge 25 None
BranchConditional 23 24 25
11: Label
Store 42(G) 43
Return
12: Label
40: 6(int) Load 8(i)
41: 6(int) IAdd 40 19
Store 8(i) 41
Branch 13
13: Label
14: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15
LoopMerge 11 12 None
BranchConditional 17 10 11
24: Label
Store 26(B) 19
Branch 12
27: Label
Store 28(C) 19
Branch 25
25: Label
29: 6(int) Load 8(i)
31: 6(int) SMod 29 30
32: 16(bool) IEqual 31 9
SelectionMerge 34 None
BranchConditional 32 33 34
33: Label
Store 35(D) 19
Branch 11
36: Label
Store 37(E) 19
Branch 34
34: Label
Store 38(F) 39
Branch 12
FunctionEnd

View File

@ -1,194 +1,204 @@
spv.forLoop.frag
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 122
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 97
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 15 "i"
Name 22 "Count"
Name 27 "bigColor"
Name 35 "gl_FragColor"
Name 38 "sum"
Name 40 "i"
Name 50 "v4"
Name 60 "i"
Name 66 "tv4"
Name 83 "r"
Name 89 "i"
Name 97 "f"
Name 110 "i"
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
13: TypeInt 32 1
14: TypePointer Function 13(int)
16: 13(int) Constant 0
21: TypePointer UniformConstant 13(int)
22(Count): 21(ptr) Variable UniformConstant
24: TypeBool
26: TypePointer UniformConstant 7(fvec4)
27(bigColor): 26(ptr) Variable UniformConstant
32: 13(int) Constant 1
34: TypePointer Output 7(fvec4)
35(gl_FragColor): 34(ptr) Variable Output
37: TypePointer Function 6(float)
39: 6(float) Constant 0
45: 13(int) Constant 4
47: TypeInt 32 0
48: TypeVector 47(int) 4
49: TypePointer UniformConstant 48(ivec4)
50(v4): 49(ptr) Variable UniformConstant
52: TypePointer UniformConstant 47(int)
71: 47(int) Constant 4
84: TypeVector 6(float) 3
96: TypePointer Input 6(float)
97(f): 96(ptr) Variable Input
99: 47(int) Constant 3
115: 13(int) Constant 16
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
15(i): 14(ptr) Variable Function
38(sum): 37(ptr) Variable Function
40(i): 14(ptr) Variable Function
60(i): 14(ptr) Variable Function
66(tv4): 8(ptr) Variable Function
83(r): 8(ptr) Variable Function
89(i): 14(ptr) Variable Function
110(i): 14(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Store 15(i) 16
Branch 17
17: Label
20: 13(int) Load 15(i)
23: 13(int) Load 22(Count)
25: 24(bool) SLessThan 20 23
LoopMerge 18 17 None
BranchConditional 25 19 18
19: Label
28: 7(fvec4) Load 27(bigColor)
29: 7(fvec4) Load 9(color)
30: 7(fvec4) FAdd 29 28
Store 9(color) 30
31: 13(int) Load 15(i)
33: 13(int) IAdd 31 32
Store 15(i) 33
Branch 17
18: Label
36: 7(fvec4) Load 9(color)
Store 35(gl_FragColor) 36
Store 38(sum) 39
Store 40(i) 16
Branch 41
41: Label
44: 13(int) Load 40(i)
46: 24(bool) SLessThan 44 45
LoopMerge 42 41 None
BranchConditional 46 43 42
43: Label
51: 13(int) Load 40(i)
53: 52(ptr) AccessChain 50(v4) 51
54: 47(int) Load 53
55: 6(float) ConvertUToF 54
56: 6(float) Load 38(sum)
57: 6(float) FAdd 56 55
Store 38(sum) 57
58: 13(int) Load 40(i)
59: 13(int) IAdd 58 32
Store 40(i) 59
Branch 41
42: Label
Store 60(i) 16
Branch 61
61: Label
64: 13(int) Load 60(i)
65: 24(bool) SLessThan 64 45
LoopMerge 62 61 None
BranchConditional 65 63 62
63: Label
67: 13(int) Load 60(i)
68: 13(int) Load 60(i)
69: 52(ptr) AccessChain 50(v4) 68
70: 47(int) Load 69
72: 47(int) IMul 70 71
73: 6(float) ConvertUToF 72
74: 37(ptr) AccessChain 66(tv4) 67
Store 74 73
75: 13(int) Load 60(i)
76: 13(int) IAdd 75 32
Store 60(i) 76
Branch 61
62: Label
77: 6(float) Load 38(sum)
78: 7(fvec4) CompositeConstruct 77 77 77 77
79: 7(fvec4) Load 66(tv4)
80: 7(fvec4) FAdd 78 79
81: 7(fvec4) Load 35(gl_FragColor)
82: 7(fvec4) FAdd 81 80
Store 35(gl_FragColor) 82
85: 7(fvec4) Load 11(BaseColor)
86: 84(fvec3) VectorShuffle 85 85 0 1 2
87: 7(fvec4) Load 83(r)
88: 7(fvec4) VectorShuffle 87 86 4 5 6 3
Store 83(r) 88
Store 89(i) 16
Branch 90
90: Label
93: 13(int) Load 89(i)
94: 13(int) Load 22(Count)
95: 24(bool) SLessThan 93 94
LoopMerge 91 90 None
BranchConditional 95 92 91
92: Label
98: 6(float) Load 97(f)
100: 37(ptr) AccessChain 83(r) 99
Store 100 98
101: 13(int) Load 89(i)
102: 13(int) IAdd 101 32
Store 89(i) 102
Branch 90
91: Label
103: 7(fvec4) Load 83(r)
104: 84(fvec3) VectorShuffle 103 103 0 1 2
105: 7(fvec4) Load 35(gl_FragColor)
106: 84(fvec3) VectorShuffle 105 105 0 1 2
107: 84(fvec3) FAdd 106 104
108: 7(fvec4) Load 35(gl_FragColor)
109: 7(fvec4) VectorShuffle 108 107 4 5 6 3
Store 35(gl_FragColor) 109
Store 110(i) 16
Branch 111
111: Label
114: 13(int) Load 110(i)
116: 24(bool) SLessThan 114 115
LoopMerge 112 111 None
BranchConditional 116 113 112
113: Label
117: 6(float) Load 97(f)
118: 7(fvec4) Load 35(gl_FragColor)
119: 7(fvec4) VectorTimesScalar 118 117
Store 35(gl_FragColor) 119
120: 13(int) Load 110(i)
121: 13(int) IAdd 120 45
Store 110(i) 121
Branch 111
112: Label
Return
FunctionEnd
spv.forLoop.frag
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 127
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 101
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 15 "i"
Name 23 "Count"
Name 28 "bigColor"
Name 36 "gl_FragColor"
Name 39 "sum"
Name 41 "i"
Name 52 "v4"
Name 62 "i"
Name 69 "tv4"
Name 86 "r"
Name 92 "i"
Name 101 "f"
Name 114 "i"
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
13: TypeInt 32 1
14: TypePointer Function 13(int)
16: 13(int) Constant 0
22: TypePointer UniformConstant 13(int)
23(Count): 22(ptr) Variable UniformConstant
25: TypeBool
27: TypePointer UniformConstant 7(fvec4)
28(bigColor): 27(ptr) Variable UniformConstant
33: 13(int) Constant 1
35: TypePointer Output 7(fvec4)
36(gl_FragColor): 35(ptr) Variable Output
38: TypePointer Function 6(float)
40: 6(float) Constant 0
47: 13(int) Constant 4
49: TypeInt 32 0
50: TypeVector 49(int) 4
51: TypePointer UniformConstant 50(ivec4)
52(v4): 51(ptr) Variable UniformConstant
54: TypePointer UniformConstant 49(int)
74: 49(int) Constant 4
87: TypeVector 6(float) 3
100: TypePointer Input 6(float)
101(f): 100(ptr) Variable Input
103: 49(int) Constant 3
120: 13(int) Constant 16
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
15(i): 14(ptr) Variable Function
39(sum): 38(ptr) Variable Function
41(i): 14(ptr) Variable Function
62(i): 14(ptr) Variable Function
69(tv4): 8(ptr) Variable Function
86(r): 8(ptr) Variable Function
92(i): 14(ptr) Variable Function
114(i): 14(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Store 15(i) 16
Branch 20
17: Label
29: 7(fvec4) Load 28(bigColor)
30: 7(fvec4) Load 9(color)
31: 7(fvec4) FAdd 30 29
Store 9(color) 31
Branch 19
18: Label
37: 7(fvec4) Load 9(color)
Store 36(gl_FragColor) 37
Store 39(sum) 40
Store 41(i) 16
Branch 45
19: Label
32: 13(int) Load 15(i)
34: 13(int) IAdd 32 33
Store 15(i) 34
Branch 20
20: Label
21: 13(int) Load 15(i)
24: 13(int) Load 23(Count)
26: 25(bool) SLessThan 21 24
LoopMerge 18 19 None
BranchConditional 26 17 18
42: Label
53: 13(int) Load 41(i)
55: 54(ptr) AccessChain 52(v4) 53
56: 49(int) Load 55
57: 6(float) ConvertUToF 56
58: 6(float) Load 39(sum)
59: 6(float) FAdd 58 57
Store 39(sum) 59
Branch 44
43: Label
Store 62(i) 16
Branch 66
44: Label
60: 13(int) Load 41(i)
61: 13(int) IAdd 60 33
Store 41(i) 61
Branch 45
45: Label
46: 13(int) Load 41(i)
48: 25(bool) SLessThan 46 47
LoopMerge 43 44 None
BranchConditional 48 42 43
63: Label
70: 13(int) Load 62(i)
71: 13(int) Load 62(i)
72: 54(ptr) AccessChain 52(v4) 71
73: 49(int) Load 72
75: 49(int) IMul 73 74
76: 6(float) ConvertUToF 75
77: 38(ptr) AccessChain 69(tv4) 70
Store 77 76
Branch 65
64: Label
80: 6(float) Load 39(sum)
81: 7(fvec4) CompositeConstruct 80 80 80 80
82: 7(fvec4) Load 69(tv4)
83: 7(fvec4) FAdd 81 82
84: 7(fvec4) Load 36(gl_FragColor)
85: 7(fvec4) FAdd 84 83
Store 36(gl_FragColor) 85
88: 7(fvec4) Load 11(BaseColor)
89: 87(fvec3) VectorShuffle 88 88 0 1 2
90: 7(fvec4) Load 86(r)
91: 7(fvec4) VectorShuffle 90 89 4 5 6 3
Store 86(r) 91
Store 92(i) 16
Branch 96
65: Label
78: 13(int) Load 62(i)
79: 13(int) IAdd 78 33
Store 62(i) 79
Branch 66
66: Label
67: 13(int) Load 62(i)
68: 25(bool) SLessThan 67 47
LoopMerge 64 65 None
BranchConditional 68 63 64
93: Label
102: 6(float) Load 101(f)
104: 38(ptr) AccessChain 86(r) 103
Store 104 102
Branch 95
94: Label
107: 7(fvec4) Load 86(r)
108: 87(fvec3) VectorShuffle 107 107 0 1 2
109: 7(fvec4) Load 36(gl_FragColor)
110: 87(fvec3) VectorShuffle 109 109 0 1 2
111: 87(fvec3) FAdd 110 108
112: 7(fvec4) Load 36(gl_FragColor)
113: 7(fvec4) VectorShuffle 112 111 4 5 6 3
Store 36(gl_FragColor) 113
Store 114(i) 16
Branch 118
95: Label
105: 13(int) Load 92(i)
106: 13(int) IAdd 105 33
Store 92(i) 106
Branch 96
96: Label
97: 13(int) Load 92(i)
98: 13(int) Load 23(Count)
99: 25(bool) SLessThan 97 98
LoopMerge 94 95 None
BranchConditional 99 93 94
115: Label
122: 6(float) Load 101(f)
123: 7(fvec4) Load 36(gl_FragColor)
124: 7(fvec4) VectorTimesScalar 123 122
Store 36(gl_FragColor) 124
Branch 117
116: Label
Return
117: Label
125: 13(int) Load 114(i)
126: 13(int) IAdd 125 47
Store 114(i) 126
Branch 118
118: Label
119: 13(int) Load 114(i)
121: 25(bool) SLessThan 119 120
LoopMerge 116 117 None
BranchConditional 121 115 116
FunctionEnd

View File

@ -1,215 +1,217 @@
spv.localAggregates.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:5: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 136
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 40 96
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 8 "s1"
MemberName 8(s1) 0 "i"
MemberName 8(s1) 1 "f"
Name 10 "s2"
MemberName 10(s2) 0 "i"
MemberName 10(s2) 1 "f"
MemberName 10(s2) 2 "s1_1"
MemberName 10(s2) 3 "bleh"
Name 12 "locals2"
Name 13 "s3"
MemberName 13(s3) 0 "s2_1"
MemberName 13(s3) 1 "i"
MemberName 13(s3) 2 "f"
MemberName 13(s3) 3 "s1_1"
Name 15 "foo3"
Name 36 "localFArray"
Name 40 "coord"
Name 49 "localIArray"
Name 68 "x"
Name 70 "localArray"
Name 75 "i"
Name 82 "a"
Name 88 "condition"
Name 96 "color"
Name 106 "gl_FragColor"
Name 126 "samp2D"
Name 132 "foo"
Name 133 "foo2"
Name 135 "uFloatArray"
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeFloat 32
8(s1): TypeStruct 6(int) 7(float)
9: TypeVector 7(float) 4
10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
11: TypePointer Function 10(s2)
13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1)
14: TypePointer UniformConstant 13(s3)
15(foo3): 14(ptr) Variable UniformConstant
16: 6(int) Constant 0
17: TypePointer UniformConstant 10(s2)
20: TypePointer UniformConstant 6(int)
23: TypeBool
27: 6(int) Constant 2
28: 6(int) Constant 1
29: 7(float) Constant 1065353216
30: TypePointer Function 7(float)
32: TypeInt 32 0
33: 32(int) Constant 16
34: TypeArray 7(float) 33
35: TypePointer Function 34
37: 6(int) Constant 4
38: TypeVector 7(float) 2
39: TypePointer Input 38(fvec2)
40(coord): 39(ptr) Variable Input
41: 32(int) Constant 0
42: TypePointer Input 7(float)
46: 32(int) Constant 8
47: TypeArray 6(int) 46
48: TypePointer Function 47
52: TypePointer Function 6(int)
69: 6(int) Constant 5
80: 6(int) Constant 16
84: 7(float) Constant 0
88(condition): 20(ptr) Variable UniformConstant
94: 6(int) Constant 3
95: TypePointer Input 9(fvec4)
96(color): 95(ptr) Variable Input
98: TypePointer Function 9(fvec4)
100: 32(int) Constant 1
103: 32(int) Constant 2
105: TypePointer Output 9(fvec4)
106(gl_FragColor): 105(ptr) Variable Output
123: TypeImage 7(float) 2D sampled format:Unknown
124: TypeSampledImage 123
125: TypePointer UniformConstant 124
126(samp2D): 125(ptr) Variable UniformConstant
131: TypePointer UniformConstant 8(s1)
132(foo): 131(ptr) Variable UniformConstant
133(foo2): 17(ptr) Variable UniformConstant
134: TypePointer UniformConstant 34
135(uFloatArray): 134(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
12(locals2): 11(ptr) Variable Function
36(localFArray): 35(ptr) Variable Function
49(localIArray): 48(ptr) Variable Function
68(x): 52(ptr) Variable Function
70(localArray): 35(ptr) Variable Function
75(i): 52(ptr) Variable Function
82(a): 35(ptr) Variable Function
18: 17(ptr) AccessChain 15(foo3) 16
19: 10(s2) Load 18
Store 12(locals2) 19
21: 20(ptr) AccessChain 15(foo3) 16 16
22: 6(int) Load 21
24: 23(bool) SGreaterThan 22 16
SelectionMerge 26 None
BranchConditional 24 25 54
25: Label
31: 30(ptr) AccessChain 12(locals2) 27 28
Store 31 29
43: 42(ptr) AccessChain 40(coord) 41
44: 7(float) Load 43
45: 30(ptr) AccessChain 36(localFArray) 37
Store 45 44
50: 20(ptr) AccessChain 15(foo3) 16 16
51: 6(int) Load 50
53: 52(ptr) AccessChain 49(localIArray) 27
Store 53 51
Branch 26
54: Label
55: 42(ptr) AccessChain 40(coord) 41
56: 7(float) Load 55
57: 30(ptr) AccessChain 12(locals2) 27 28
Store 57 56
58: 30(ptr) AccessChain 36(localFArray) 37
Store 58 29
59: 52(ptr) AccessChain 49(localIArray) 27
Store 59 16
Branch 26
26: Label
60: 52(ptr) AccessChain 49(localIArray) 27
61: 6(int) Load 60
62: 23(bool) IEqual 61 16
SelectionMerge 64 None
BranchConditional 62 63 64
63: Label
65: 30(ptr) AccessChain 36(localFArray) 37
66: 7(float) Load 65
67: 7(float) FAdd 66 29
Store 65 67
Branch 64
64: Label
Store 68(x) 69
71: 6(int) Load 68(x)
72: 42(ptr) AccessChain 40(coord) 41
73: 7(float) Load 72
74: 30(ptr) AccessChain 70(localArray) 71
Store 74 73
Store 75(i) 16
Branch 76
76: Label
79: 6(int) Load 75(i)
81: 23(bool) SLessThan 79 80
LoopMerge 77 76 None
BranchConditional 81 78 77
78: Label
83: 6(int) Load 75(i)
85: 30(ptr) AccessChain 82(a) 83
Store 85 84
86: 6(int) Load 75(i)
87: 6(int) IAdd 86 28
Store 75(i) 87
Branch 76
77: Label
89: 6(int) Load 88(condition)
90: 23(bool) IEqual 89 28
SelectionMerge 92 None
BranchConditional 90 91 92
91: Label
93: 34 Load 70(localArray)
Store 82(a) 93
Branch 92
92: Label
97: 9(fvec4) Load 96(color)
99: 98(ptr) AccessChain 12(locals2) 94
Store 99 97
101: 42(ptr) AccessChain 40(coord) 100
102: 7(float) Load 101
104: 30(ptr) AccessChain 12(locals2) 94 103
Store 104 102
107: 98(ptr) AccessChain 12(locals2) 94
108: 9(fvec4) Load 107
109: 30(ptr) AccessChain 36(localFArray) 37
110: 7(float) Load 109
111: 30(ptr) AccessChain 12(locals2) 27 28
112: 7(float) Load 111
113: 7(float) FAdd 110 112
114: 6(int) Load 68(x)
115: 30(ptr) AccessChain 70(localArray) 114
116: 7(float) Load 115
117: 7(float) FAdd 113 116
118: 6(int) Load 68(x)
119: 30(ptr) AccessChain 82(a) 118
120: 7(float) Load 119
121: 7(float) FAdd 117 120
122: 9(fvec4) VectorTimesScalar 108 121
127: 124 Load 126(samp2D)
128: 38(fvec2) Load 40(coord)
129: 9(fvec4) ImageSampleImplicitLod 127 128
130: 9(fvec4) FMul 122 129
Store 106(gl_FragColor) 130
Return
FunctionEnd
spv.localAggregates.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:5: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 137
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 40 97
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 8 "s1"
MemberName 8(s1) 0 "i"
MemberName 8(s1) 1 "f"
Name 10 "s2"
MemberName 10(s2) 0 "i"
MemberName 10(s2) 1 "f"
MemberName 10(s2) 2 "s1_1"
MemberName 10(s2) 3 "bleh"
Name 12 "locals2"
Name 13 "s3"
MemberName 13(s3) 0 "s2_1"
MemberName 13(s3) 1 "i"
MemberName 13(s3) 2 "f"
MemberName 13(s3) 3 "s1_1"
Name 15 "foo3"
Name 36 "localFArray"
Name 40 "coord"
Name 49 "localIArray"
Name 68 "x"
Name 70 "localArray"
Name 75 "i"
Name 83 "a"
Name 89 "condition"
Name 97 "color"
Name 107 "gl_FragColor"
Name 127 "samp2D"
Name 133 "foo"
Name 134 "foo2"
Name 136 "uFloatArray"
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeFloat 32
8(s1): TypeStruct 6(int) 7(float)
9: TypeVector 7(float) 4
10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
11: TypePointer Function 10(s2)
13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1)
14: TypePointer UniformConstant 13(s3)
15(foo3): 14(ptr) Variable UniformConstant
16: 6(int) Constant 0
17: TypePointer UniformConstant 10(s2)
20: TypePointer UniformConstant 6(int)
23: TypeBool
27: 6(int) Constant 2
28: 6(int) Constant 1
29: 7(float) Constant 1065353216
30: TypePointer Function 7(float)
32: TypeInt 32 0
33: 32(int) Constant 16
34: TypeArray 7(float) 33
35: TypePointer Function 34
37: 6(int) Constant 4
38: TypeVector 7(float) 2
39: TypePointer Input 38(fvec2)
40(coord): 39(ptr) Variable Input
41: 32(int) Constant 0
42: TypePointer Input 7(float)
46: 32(int) Constant 8
47: TypeArray 6(int) 46
48: TypePointer Function 47
52: TypePointer Function 6(int)
69: 6(int) Constant 5
81: 6(int) Constant 16
85: 7(float) Constant 0
89(condition): 20(ptr) Variable UniformConstant
95: 6(int) Constant 3
96: TypePointer Input 9(fvec4)
97(color): 96(ptr) Variable Input
99: TypePointer Function 9(fvec4)
101: 32(int) Constant 1
104: 32(int) Constant 2
106: TypePointer Output 9(fvec4)
107(gl_FragColor): 106(ptr) Variable Output
124: TypeImage 7(float) 2D sampled format:Unknown
125: TypeSampledImage 124
126: TypePointer UniformConstant 125
127(samp2D): 126(ptr) Variable UniformConstant
132: TypePointer UniformConstant 8(s1)
133(foo): 132(ptr) Variable UniformConstant
134(foo2): 17(ptr) Variable UniformConstant
135: TypePointer UniformConstant 34
136(uFloatArray): 135(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
12(locals2): 11(ptr) Variable Function
36(localFArray): 35(ptr) Variable Function
49(localIArray): 48(ptr) Variable Function
68(x): 52(ptr) Variable Function
70(localArray): 35(ptr) Variable Function
75(i): 52(ptr) Variable Function
83(a): 35(ptr) Variable Function
18: 17(ptr) AccessChain 15(foo3) 16
19: 10(s2) Load 18
Store 12(locals2) 19
21: 20(ptr) AccessChain 15(foo3) 16 16
22: 6(int) Load 21
24: 23(bool) SGreaterThan 22 16
SelectionMerge 26 None
BranchConditional 24 25 54
25: Label
31: 30(ptr) AccessChain 12(locals2) 27 28
Store 31 29
43: 42(ptr) AccessChain 40(coord) 41
44: 7(float) Load 43
45: 30(ptr) AccessChain 36(localFArray) 37
Store 45 44
50: 20(ptr) AccessChain 15(foo3) 16 16
51: 6(int) Load 50
53: 52(ptr) AccessChain 49(localIArray) 27
Store 53 51
Branch 26
54: Label
55: 42(ptr) AccessChain 40(coord) 41
56: 7(float) Load 55
57: 30(ptr) AccessChain 12(locals2) 27 28
Store 57 56
58: 30(ptr) AccessChain 36(localFArray) 37
Store 58 29
59: 52(ptr) AccessChain 49(localIArray) 27
Store 59 16
Branch 26
26: Label
60: 52(ptr) AccessChain 49(localIArray) 27
61: 6(int) Load 60
62: 23(bool) IEqual 61 16
SelectionMerge 64 None
BranchConditional 62 63 64
63: Label
65: 30(ptr) AccessChain 36(localFArray) 37
66: 7(float) Load 65
67: 7(float) FAdd 66 29
Store 65 67
Branch 64
64: Label
Store 68(x) 69
71: 6(int) Load 68(x)
72: 42(ptr) AccessChain 40(coord) 41
73: 7(float) Load 72
74: 30(ptr) AccessChain 70(localArray) 71
Store 74 73
Store 75(i) 16
Branch 79
76: Label
84: 6(int) Load 75(i)
86: 30(ptr) AccessChain 83(a) 84
Store 86 85
Branch 78
77: Label
90: 6(int) Load 89(condition)
91: 23(bool) IEqual 90 28
SelectionMerge 93 None
BranchConditional 91 92 93
78: Label
87: 6(int) Load 75(i)
88: 6(int) IAdd 87 28
Store 75(i) 88
Branch 79
79: Label
80: 6(int) Load 75(i)
82: 23(bool) SLessThan 80 81
LoopMerge 77 78 None
BranchConditional 82 76 77
92: Label
94: 34 Load 70(localArray)
Store 83(a) 94
Branch 93
93: Label
98: 9(fvec4) Load 97(color)
100: 99(ptr) AccessChain 12(locals2) 95
Store 100 98
102: 42(ptr) AccessChain 40(coord) 101
103: 7(float) Load 102
105: 30(ptr) AccessChain 12(locals2) 95 104
Store 105 103
108: 99(ptr) AccessChain 12(locals2) 95
109: 9(fvec4) Load 108
110: 30(ptr) AccessChain 36(localFArray) 37
111: 7(float) Load 110
112: 30(ptr) AccessChain 12(locals2) 27 28
113: 7(float) Load 112
114: 7(float) FAdd 111 113
115: 6(int) Load 68(x)
116: 30(ptr) AccessChain 70(localArray) 115
117: 7(float) Load 116
118: 7(float) FAdd 114 117
119: 6(int) Load 68(x)
120: 30(ptr) AccessChain 83(a) 119
121: 7(float) Load 120
122: 7(float) FAdd 118 121
123: 9(fvec4) VectorTimesScalar 109 122
128: 125 Load 127(samp2D)
129: 38(fvec2) Load 40(coord)
130: 9(fvec4) ImageSampleImplicitLod 128 129
131: 9(fvec4) FMul 123 130
Store 107(gl_FragColor) 131
Return
FunctionEnd

File diff suppressed because it is too large Load Diff

View File

@ -1,308 +1,299 @@
spv.loopsArtificial.frag
WARNING: 0:14: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 191
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 27 "d4"
Name 32 "bigColor4"
Name 84 "d13"
Name 144 "gl_FragColor"
Name 146 "bigColor"
Name 147 "bigColor1_1"
Name 148 "bigColor1_2"
Name 149 "bigColor1_3"
Name 150 "bigColor2"
Name 151 "bigColor3"
Name 152 "bigColor5"
Name 153 "bigColor6"
Name 154 "bigColor7"
Name 155 "bigColor8"
Name 156 "d"
Name 157 "d2"
Name 158 "d3"
Name 159 "d5"
Name 160 "d6"
Name 161 "d7"
Name 162 "d8"
Name 163 "d9"
Name 164 "d10"
Name 165 "d11"
Name 166 "d12"
Name 167 "d14"
Name 168 "d15"
Name 169 "d16"
Name 170 "d17"
Name 171 "d18"
Name 172 "d19"
Name 173 "d20"
Name 174 "d21"
Name 175 "d22"
Name 176 "d23"
Name 177 "d24"
Name 178 "d25"
Name 179 "d26"
Name 180 "d27"
Name 181 "d28"
Name 182 "d29"
Name 183 "d30"
Name 184 "d31"
Name 185 "d32"
Name 186 "d33"
Name 187 "d34"
Name 190 "Count"
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
17: TypeBool
18: 17(bool) ConstantTrue
21: TypeInt 32 0
22: 21(int) Constant 2
23: TypePointer Function 6(float)
26: TypePointer UniformConstant 6(float)
27(d4): 26(ptr) Variable UniformConstant
31: TypePointer UniformConstant 7(fvec4)
32(bigColor4): 31(ptr) Variable UniformConstant
36: 21(int) Constant 0
43: 6(float) Constant 1073741824
56: 6(float) Constant 1065353216
58: 17(bool) ConstantFalse
60: 21(int) Constant 1
81: 21(int) Constant 3
84(d13): 26(ptr) Variable UniformConstant
143: TypePointer Output 7(fvec4)
144(gl_FragColor): 143(ptr) Variable Output
146(bigColor): 31(ptr) Variable UniformConstant
147(bigColor1_1): 31(ptr) Variable UniformConstant
148(bigColor1_2): 31(ptr) Variable UniformConstant
149(bigColor1_3): 31(ptr) Variable UniformConstant
150(bigColor2): 31(ptr) Variable UniformConstant
151(bigColor3): 31(ptr) Variable UniformConstant
152(bigColor5): 31(ptr) Variable UniformConstant
153(bigColor6): 31(ptr) Variable UniformConstant
154(bigColor7): 31(ptr) Variable UniformConstant
155(bigColor8): 31(ptr) Variable UniformConstant
156(d): 26(ptr) Variable UniformConstant
157(d2): 26(ptr) Variable UniformConstant
158(d3): 26(ptr) Variable UniformConstant
159(d5): 26(ptr) Variable UniformConstant
160(d6): 26(ptr) Variable UniformConstant
161(d7): 26(ptr) Variable UniformConstant
162(d8): 26(ptr) Variable UniformConstant
163(d9): 26(ptr) Variable UniformConstant
164(d10): 26(ptr) Variable UniformConstant
165(d11): 26(ptr) Variable UniformConstant
166(d12): 26(ptr) Variable UniformConstant
167(d14): 26(ptr) Variable UniformConstant
168(d15): 26(ptr) Variable UniformConstant
169(d16): 26(ptr) Variable UniformConstant
170(d17): 26(ptr) Variable UniformConstant
171(d18): 26(ptr) Variable UniformConstant
172(d19): 26(ptr) Variable UniformConstant
173(d20): 26(ptr) Variable UniformConstant
174(d21): 26(ptr) Variable UniformConstant
175(d22): 26(ptr) Variable UniformConstant
176(d23): 26(ptr) Variable UniformConstant
177(d24): 26(ptr) Variable UniformConstant
178(d25): 26(ptr) Variable UniformConstant
179(d26): 26(ptr) Variable UniformConstant
180(d27): 26(ptr) Variable UniformConstant
181(d28): 26(ptr) Variable UniformConstant
182(d29): 26(ptr) Variable UniformConstant
183(d30): 26(ptr) Variable UniformConstant
184(d31): 26(ptr) Variable UniformConstant
185(d32): 26(ptr) Variable UniformConstant
186(d33): 26(ptr) Variable UniformConstant
187(d34): 26(ptr) Variable UniformConstant
188: TypeInt 32 1
189: TypePointer UniformConstant 188(int)
190(Count): 189(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Branch 13
13: Label
16: 17(bool) Phi 18 5 58 52 58 66
LoopMerge 14 13 None
Branch 19
19: Label
SelectionMerge 15 None
BranchConditional 16 15 20
20: Label
24: 23(ptr) AccessChain 9(color) 22
25: 6(float) Load 24
28: 6(float) Load 27(d4)
29: 17(bool) FOrdLessThan 25 28
SelectionMerge 30 None
BranchConditional 29 30 14
30: Label
Branch 15
15: Label
33: 7(fvec4) Load 32(bigColor4)
34: 7(fvec4) Load 9(color)
35: 7(fvec4) FAdd 34 33
Store 9(color) 35
37: 23(ptr) AccessChain 9(color) 36
38: 6(float) Load 37
39: 6(float) Load 27(d4)
40: 17(bool) FOrdLessThan 38 39
SelectionMerge 42 None
BranchConditional 40 41 42
41: Label
44: 23(ptr) AccessChain 9(color) 22
45: 6(float) Load 44
46: 6(float) FAdd 45 43
47: 23(ptr) AccessChain 9(color) 22
Store 47 46
48: 23(ptr) AccessChain 9(color) 22
49: 6(float) Load 48
50: 6(float) Load 27(d4)
51: 17(bool) FOrdLessThan 49 50
SelectionMerge 53 None
BranchConditional 51 52 53
52: Label
54: 23(ptr) AccessChain 9(color) 36
55: 6(float) Load 54
57: 6(float) FAdd 55 56
Store 54 57
Branch 13
53: Label
Branch 42
42: Label
61: 23(ptr) AccessChain 9(color) 60
62: 6(float) Load 61
63: 6(float) Load 27(d4)
64: 17(bool) FOrdLessThan 62 63
SelectionMerge 66 None
BranchConditional 64 65 72
65: Label
67: 6(float) Load 27(d4)
68: 23(ptr) AccessChain 9(color) 60
69: 6(float) Load 68
70: 6(float) FAdd 69 67
71: 23(ptr) AccessChain 9(color) 60
Store 71 70
Branch 66
72: Label
73: 6(float) Load 27(d4)
74: 23(ptr) AccessChain 9(color) 36
75: 6(float) Load 74
76: 6(float) FAdd 75 73
77: 23(ptr) AccessChain 9(color) 36
Store 77 76
Branch 66
66: Label
Branch 13
14: Label
Branch 78
78: Label
82: 23(ptr) AccessChain 9(color) 81
83: 6(float) Load 82
85: 6(float) Load 84(d13)
86: 17(bool) FOrdLessThan 83 85
LoopMerge 79 78 None
BranchConditional 86 80 79
80: Label
87: 23(ptr) AccessChain 9(color) 22
88: 6(float) Load 87
89: 6(float) Load 84(d13)
90: 17(bool) FOrdLessThan 88 89
SelectionMerge 92 None
BranchConditional 90 91 96
91: Label
93: 7(fvec4) Load 9(color)
94: 7(fvec4) CompositeConstruct 56 56 56 56
95: 7(fvec4) FAdd 93 94
Store 9(color) 95
Branch 92
96: Label
97: 7(fvec4) Load 9(color)
98: 7(fvec4) CompositeConstruct 56 56 56 56
99: 7(fvec4) FSub 97 98
Store 9(color) 99
Branch 92
92: Label
100: 7(fvec4) Load 32(bigColor4)
101: 7(fvec4) Load 9(color)
102: 7(fvec4) FAdd 101 100
Store 9(color) 102
103: 23(ptr) AccessChain 9(color) 36
104: 6(float) Load 103
105: 6(float) Load 27(d4)
106: 17(bool) FOrdLessThan 104 105
SelectionMerge 108 None
BranchConditional 106 107 108
107: Label
109: 23(ptr) AccessChain 9(color) 22
110: 6(float) Load 109
111: 6(float) FAdd 110 43
112: 23(ptr) AccessChain 9(color) 22
Store 112 111
113: 23(ptr) AccessChain 9(color) 22
114: 6(float) Load 113
115: 6(float) Load 27(d4)
116: 17(bool) FOrdLessThan 114 115
SelectionMerge 118 None
BranchConditional 116 117 118
117: Label
119: 23(ptr) AccessChain 9(color) 36
120: 6(float) Load 119
121: 6(float) FAdd 120 56
Store 119 121
Branch 78
118: Label
Branch 108
108: Label
123: 23(ptr) AccessChain 9(color) 60
124: 6(float) Load 123
125: 6(float) Load 27(d4)
126: 17(bool) FOrdLessThan 124 125
SelectionMerge 128 None
BranchConditional 126 127 134
127: Label
129: 6(float) Load 27(d4)
130: 23(ptr) AccessChain 9(color) 60
131: 6(float) Load 130
132: 6(float) FAdd 131 129
133: 23(ptr) AccessChain 9(color) 60
Store 133 132
Branch 128
134: Label
135: 6(float) Load 27(d4)
136: 23(ptr) AccessChain 9(color) 36
137: 6(float) Load 136
138: 6(float) FAdd 137 135
139: 23(ptr) AccessChain 9(color) 36
Store 139 138
Branch 128
128: Label
Branch 78
79: Label
140: 7(fvec4) Load 9(color)
141: 7(fvec4) CompositeConstruct 56 56 56 56
142: 7(fvec4) FAdd 140 141
Store 9(color) 142
145: 7(fvec4) Load 9(color)
Store 144(gl_FragColor) 145
Return
FunctionEnd
spv.loopsArtificial.frag
WARNING: 0:14: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 186
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 17 "bigColor4"
Name 27 "d4"
Name 79 "d13"
Name 139 "gl_FragColor"
Name 141 "bigColor"
Name 142 "bigColor1_1"
Name 143 "bigColor1_2"
Name 144 "bigColor1_3"
Name 145 "bigColor2"
Name 146 "bigColor3"
Name 147 "bigColor5"
Name 148 "bigColor6"
Name 149 "bigColor7"
Name 150 "bigColor8"
Name 151 "d"
Name 152 "d2"
Name 153 "d3"
Name 154 "d5"
Name 155 "d6"
Name 156 "d7"
Name 157 "d8"
Name 158 "d9"
Name 159 "d10"
Name 160 "d11"
Name 161 "d12"
Name 162 "d14"
Name 163 "d15"
Name 164 "d16"
Name 165 "d17"
Name 166 "d18"
Name 167 "d19"
Name 168 "d20"
Name 169 "d21"
Name 170 "d22"
Name 171 "d23"
Name 172 "d24"
Name 173 "d25"
Name 174 "d26"
Name 175 "d27"
Name 176 "d28"
Name 177 "d29"
Name 178 "d30"
Name 179 "d31"
Name 180 "d32"
Name 181 "d33"
Name 182 "d34"
Name 185 "Count"
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
16: TypePointer UniformConstant 7(fvec4)
17(bigColor4): 16(ptr) Variable UniformConstant
21: TypeInt 32 0
22: 21(int) Constant 0
23: TypePointer Function 6(float)
26: TypePointer UniformConstant 6(float)
27(d4): 26(ptr) Variable UniformConstant
29: TypeBool
33: 6(float) Constant 1073741824
34: 21(int) Constant 2
47: 6(float) Constant 1065353216
50: 21(int) Constant 1
76: 21(int) Constant 3
79(d13): 26(ptr) Variable UniformConstant
138: TypePointer Output 7(fvec4)
139(gl_FragColor): 138(ptr) Variable Output
141(bigColor): 16(ptr) Variable UniformConstant
142(bigColor1_1): 16(ptr) Variable UniformConstant
143(bigColor1_2): 16(ptr) Variable UniformConstant
144(bigColor1_3): 16(ptr) Variable UniformConstant
145(bigColor2): 16(ptr) Variable UniformConstant
146(bigColor3): 16(ptr) Variable UniformConstant
147(bigColor5): 16(ptr) Variable UniformConstant
148(bigColor6): 16(ptr) Variable UniformConstant
149(bigColor7): 16(ptr) Variable UniformConstant
150(bigColor8): 16(ptr) Variable UniformConstant
151(d): 26(ptr) Variable UniformConstant
152(d2): 26(ptr) Variable UniformConstant
153(d3): 26(ptr) Variable UniformConstant
154(d5): 26(ptr) Variable UniformConstant
155(d6): 26(ptr) Variable UniformConstant
156(d7): 26(ptr) Variable UniformConstant
157(d8): 26(ptr) Variable UniformConstant
158(d9): 26(ptr) Variable UniformConstant
159(d10): 26(ptr) Variable UniformConstant
160(d11): 26(ptr) Variable UniformConstant
161(d12): 26(ptr) Variable UniformConstant
162(d14): 26(ptr) Variable UniformConstant
163(d15): 26(ptr) Variable UniformConstant
164(d16): 26(ptr) Variable UniformConstant
165(d17): 26(ptr) Variable UniformConstant
166(d18): 26(ptr) Variable UniformConstant
167(d19): 26(ptr) Variable UniformConstant
168(d20): 26(ptr) Variable UniformConstant
169(d21): 26(ptr) Variable UniformConstant
170(d22): 26(ptr) Variable UniformConstant
171(d23): 26(ptr) Variable UniformConstant
172(d24): 26(ptr) Variable UniformConstant
173(d25): 26(ptr) Variable UniformConstant
174(d26): 26(ptr) Variable UniformConstant
175(d27): 26(ptr) Variable UniformConstant
176(d28): 26(ptr) Variable UniformConstant
177(d29): 26(ptr) Variable UniformConstant
178(d30): 26(ptr) Variable UniformConstant
179(d31): 26(ptr) Variable UniformConstant
180(d32): 26(ptr) Variable UniformConstant
181(d33): 26(ptr) Variable UniformConstant
182(d34): 26(ptr) Variable UniformConstant
183: TypeInt 32 1
184: TypePointer UniformConstant 183(int)
185(Count): 184(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Branch 13
13: Label
18: 7(fvec4) Load 17(bigColor4)
19: 7(fvec4) Load 9(color)
20: 7(fvec4) FAdd 19 18
Store 9(color) 20
24: 23(ptr) AccessChain 9(color) 22
25: 6(float) Load 24
28: 6(float) Load 27(d4)
30: 29(bool) FOrdLessThan 25 28
SelectionMerge 32 None
BranchConditional 30 31 32
14: Label
Branch 75
15: Label
68: 23(ptr) AccessChain 9(color) 34
69: 6(float) Load 68
70: 6(float) Load 27(d4)
71: 29(bool) FOrdLessThan 69 70
LoopMerge 14 15 None
BranchConditional 71 13 14
31: Label
35: 23(ptr) AccessChain 9(color) 34
36: 6(float) Load 35
37: 6(float) FAdd 36 33
38: 23(ptr) AccessChain 9(color) 34
Store 38 37
39: 23(ptr) AccessChain 9(color) 34
40: 6(float) Load 39
41: 6(float) Load 27(d4)
42: 29(bool) FOrdLessThan 40 41
SelectionMerge 44 None
BranchConditional 42 43 44
43: Label
45: 23(ptr) AccessChain 9(color) 22
46: 6(float) Load 45
48: 6(float) FAdd 46 47
Store 45 48
Branch 15
44: Label
Branch 32
32: Label
51: 23(ptr) AccessChain 9(color) 50
52: 6(float) Load 51
53: 6(float) Load 27(d4)
54: 29(bool) FOrdLessThan 52 53
SelectionMerge 56 None
BranchConditional 54 55 62
55: Label
57: 6(float) Load 27(d4)
58: 23(ptr) AccessChain 9(color) 50
59: 6(float) Load 58
60: 6(float) FAdd 59 57
61: 23(ptr) AccessChain 9(color) 50
Store 61 60
Branch 56
62: Label
63: 6(float) Load 27(d4)
64: 23(ptr) AccessChain 9(color) 22
65: 6(float) Load 64
66: 6(float) FAdd 65 63
67: 23(ptr) AccessChain 9(color) 22
Store 67 66
Branch 56
56: Label
Branch 15
72: Label
82: 23(ptr) AccessChain 9(color) 34
83: 6(float) Load 82
84: 6(float) Load 79(d13)
85: 29(bool) FOrdLessThan 83 84
SelectionMerge 87 None
BranchConditional 85 86 91
73: Label
135: 7(fvec4) Load 9(color)
136: 7(fvec4) CompositeConstruct 47 47 47 47
137: 7(fvec4) FAdd 135 136
Store 9(color) 137
140: 7(fvec4) Load 9(color)
Store 139(gl_FragColor) 140
Return
74: Label
Branch 75
75: Label
77: 23(ptr) AccessChain 9(color) 76
78: 6(float) Load 77
80: 6(float) Load 79(d13)
81: 29(bool) FOrdLessThan 78 80
LoopMerge 73 74 None
BranchConditional 81 72 73
86: Label
88: 7(fvec4) Load 9(color)
89: 7(fvec4) CompositeConstruct 47 47 47 47
90: 7(fvec4) FAdd 88 89
Store 9(color) 90
Branch 87
91: Label
92: 7(fvec4) Load 9(color)
93: 7(fvec4) CompositeConstruct 47 47 47 47
94: 7(fvec4) FSub 92 93
Store 9(color) 94
Branch 87
87: Label
95: 7(fvec4) Load 17(bigColor4)
96: 7(fvec4) Load 9(color)
97: 7(fvec4) FAdd 96 95
Store 9(color) 97
98: 23(ptr) AccessChain 9(color) 22
99: 6(float) Load 98
100: 6(float) Load 27(d4)
101: 29(bool) FOrdLessThan 99 100
SelectionMerge 103 None
BranchConditional 101 102 103
102: Label
104: 23(ptr) AccessChain 9(color) 34
105: 6(float) Load 104
106: 6(float) FAdd 105 33
107: 23(ptr) AccessChain 9(color) 34
Store 107 106
108: 23(ptr) AccessChain 9(color) 34
109: 6(float) Load 108
110: 6(float) Load 27(d4)
111: 29(bool) FOrdLessThan 109 110
SelectionMerge 113 None
BranchConditional 111 112 113
112: Label
114: 23(ptr) AccessChain 9(color) 22
115: 6(float) Load 114
116: 6(float) FAdd 115 47
Store 114 116
Branch 74
113: Label
Branch 103
103: Label
118: 23(ptr) AccessChain 9(color) 50
119: 6(float) Load 118
120: 6(float) Load 27(d4)
121: 29(bool) FOrdLessThan 119 120
SelectionMerge 123 None
BranchConditional 121 122 129
122: Label
124: 6(float) Load 27(d4)
125: 23(ptr) AccessChain 9(color) 50
126: 6(float) Load 125
127: 6(float) FAdd 126 124
128: 23(ptr) AccessChain 9(color) 50
Store 128 127
Branch 123
129: Label
130: 6(float) Load 27(d4)
131: 23(ptr) AccessChain 9(color) 22
132: 6(float) Load 131
133: 6(float) FAdd 132 130
134: 23(ptr) AccessChain 9(color) 22
Store 134 133
Branch 123
123: Label
Branch 74
FunctionEnd

View File

@ -1,400 +1,404 @@
spv.switch.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
WARNING: 0:121: 'switch' : last case/default label not followed by statements
WARNING: 0:134: 'switch' : last case/default label not followed by statements
WARNING: 0:139: 'switch' : last case/default label not followed by statements
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 263
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 73 221
ExecutionMode 4 OriginLowerLeft
Source ESSL 310
Name 4 "main"
Name 15 "foo1(vf4;vf4;i1;"
Name 12 "v1"
Name 13 "v2"
Name 14 "i1"
Name 20 "foo2(vf4;vf4;i1;"
Name 17 "v1"
Name 18 "v2"
Name 19 "i1"
Name 58 "local"
Name 60 "c"
Name 71 "f"
Name 73 "x"
Name 127 "d"
Name 153 "i"
Name 171 "j"
Name 221 "color"
Name 227 "v"
Name 228 "param"
Name 230 "param"
Name 232 "param"
Name 240 "param"
Name 242 "param"
Name 244 "param"
Decorate 58(local) RelaxedPrecision
Decorate 60(c) RelaxedPrecision
Decorate 71(f) RelaxedPrecision
Decorate 73(x) RelaxedPrecision
Decorate 127(d) RelaxedPrecision
Decorate 153(i) RelaxedPrecision
Decorate 171(j) RelaxedPrecision
Decorate 221(color) RelaxedPrecision
Decorate 227(v) RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeInt 32 1
10: TypePointer Function 9(int)
11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr)
36: 6(float) Constant 0
37: 7(fvec4) ConstantComposite 36 36 36 36
47: 6(float) Constant 1065353216
48: 7(fvec4) ConstantComposite 47 47 47 47
59: TypePointer UniformConstant 9(int)
60(c): 59(ptr) Variable UniformConstant
63: 9(int) Constant 1
70: TypePointer Function 6(float)
72: TypePointer Input 6(float)
73(x): 72(ptr) Variable Input
127(d): 59(ptr) Variable UniformConstant
154: 9(int) Constant 0
159: 9(int) Constant 10
160: TypeBool
172: 9(int) Constant 20
177: 9(int) Constant 30
182: 6(float) Constant 1120429670
202: 6(float) Constant 1079739679
220: TypePointer Output 6(float)
221(color): 220(ptr) Variable Output
226: TypePointer UniformConstant 7(fvec4)
227(v): 226(ptr) Variable UniformConstant
235: TypeInt 32 0
236: 235(int) Constant 1
247: 235(int) Constant 2
4(main): 2 Function None 3
5: Label
58(local): 10(ptr) Variable Function
71(f): 70(ptr) Variable Function
153(i): 10(ptr) Variable Function
171(j): 10(ptr) Variable Function
228(param): 8(ptr) Variable Function
230(param): 8(ptr) Variable Function
232(param): 10(ptr) Variable Function
240(param): 8(ptr) Variable Function
242(param): 8(ptr) Variable Function
244(param): 10(ptr) Variable Function
61: 9(int) Load 60(c)
Store 58(local) 61
62: 9(int) Load 58(local)
64: 9(int) IAdd 62 63
Store 58(local) 64
65: 9(int) Load 60(c)
SelectionMerge 69 None
Switch 65 68
case 1: 66
case 2: 67
66: Label
74: 6(float) Load 73(x)
75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74
Store 71(f) 75
Branch 69
67: Label
77: 6(float) Load 73(x)
78: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 77
Store 71(f) 78
Branch 69
68: Label
80: 6(float) Load 73(x)
81: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 80
Store 71(f) 81
Branch 69
69: Label
83: 9(int) Load 60(c)
SelectionMerge 87 None
Switch 83 86
case 1: 84
case 2: 85
84: Label
88: 6(float) Load 73(x)
89: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 88
90: 6(float) Load 71(f)
91: 6(float) FAdd 90 89
Store 71(f) 91
Branch 85
85: Label
92: 6(float) Load 73(x)
93: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 92
94: 6(float) Load 71(f)
95: 6(float) FAdd 94 93
Store 71(f) 95
Branch 87
86: Label
97: 6(float) Load 73(x)
98: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 97
99: 6(float) Load 71(f)
100: 6(float) FAdd 99 98
Store 71(f) 100
Branch 87
87: Label
102: 9(int) Load 60(c)
SelectionMerge 105 None
Switch 102 105
case 1: 103
case 2: 104
103: Label
106: 6(float) Load 73(x)
107: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 106
108: 6(float) Load 71(f)
109: 6(float) FAdd 108 107
Store 71(f) 109
Branch 105
104: Label
111: 6(float) Load 73(x)
112: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 111
113: 6(float) Load 71(f)
114: 6(float) FAdd 113 112
Store 71(f) 114
Branch 105
105: Label
117: 9(int) Load 60(c)
SelectionMerge 121 None
Switch 117 120
case 1: 118
case 2: 119
118: Label
122: 6(float) Load 73(x)
123: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 122
124: 6(float) Load 71(f)
125: 6(float) FAdd 124 123
Store 71(f) 125
Branch 121
119: Label
128: 9(int) Load 127(d)
SelectionMerge 131 None
Switch 128 131
case 1: 129
case 2: 130
129: Label
132: 6(float) Load 73(x)
133: 6(float) Load 73(x)
134: 6(float) FMul 132 133
135: 6(float) Load 73(x)
136: 6(float) FMul 134 135
137: 6(float) Load 71(f)
138: 6(float) FAdd 137 136
Store 71(f) 138
Branch 131
130: Label
140: 6(float) Load 73(x)
141: 6(float) Load 73(x)
142: 6(float) FMul 140 141
143: 6(float) Load 71(f)
144: 6(float) FAdd 143 142
Store 71(f) 144
Branch 131
131: Label
Branch 121
120: Label
148: 6(float) Load 73(x)
149: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 148
150: 6(float) Load 71(f)
151: 6(float) FAdd 150 149
Store 71(f) 151
Branch 121
121: Label
Store 153(i) 154
Branch 155
155: Label
158: 9(int) Load 153(i)
161: 160(bool) SLessThan 158 159
LoopMerge 156 155 None
BranchConditional 161 157 156
157: Label
162: 9(int) Load 60(c)
SelectionMerge 166 None
Switch 162 165
case 1: 163
case 2: 164
163: Label
167: 6(float) Load 73(x)
168: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 167
169: 6(float) Load 71(f)
170: 6(float) FAdd 169 168
Store 71(f) 170
Store 171(j) 172
Branch 173
173: Label
176: 9(int) Load 171(j)
178: 160(bool) SLessThan 176 177
LoopMerge 174 173 None
BranchConditional 178 175 174
175: Label
179: 6(float) Load 71(f)
180: 6(float) FAdd 179 47
Store 71(f) 180
181: 6(float) Load 71(f)
183: 160(bool) FOrdLessThan 181 182
SelectionMerge 185 None
BranchConditional 183 184 185
184: Label
Branch 174
185: Label
187: 9(int) Load 171(j)
188: 9(int) IAdd 187 63
Store 171(j) 188
Branch 173
174: Label
Branch 166
164: Label
190: 6(float) Load 73(x)
191: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 190
192: 6(float) Load 71(f)
193: 6(float) FAdd 192 191
Store 71(f) 193
Branch 166
165: Label
196: 6(float) Load 73(x)
197: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 196
198: 6(float) Load 71(f)
199: 6(float) FAdd 198 197
Store 71(f) 199
Branch 166
166: Label
201: 6(float) Load 71(f)
203: 160(bool) FOrdLessThan 201 202
SelectionMerge 205 None
BranchConditional 203 204 205
204: Label
Branch 156
205: Label
207: 9(int) Load 153(i)
208: 9(int) IAdd 207 63
Store 153(i) 208
Branch 155
156: Label
209: 9(int) Load 60(c)
SelectionMerge 212 None
Switch 209 212
case 1: 210
case 2: 211
210: Label
213: 6(float) Load 73(x)
214: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 213
215: 6(float) Load 71(f)
216: 6(float) FAdd 215 214
Store 71(f) 216
Branch 212
211: Label
Branch 212
212: Label
222: 6(float) Load 71(f)
223: 9(int) Load 58(local)
224: 6(float) ConvertSToF 223
225: 6(float) FAdd 222 224
Store 221(color) 225
229: 7(fvec4) Load 227(v)
Store 228(param) 229
231: 7(fvec4) Load 227(v)
Store 230(param) 231
233: 9(int) Load 60(c)
Store 232(param) 233
234: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 228(param) 230(param) 232(param)
237: 6(float) CompositeExtract 234 1
238: 6(float) Load 221(color)
239: 6(float) FAdd 238 237
Store 221(color) 239
241: 7(fvec4) Load 227(v)
Store 240(param) 241
243: 7(fvec4) Load 227(v)
Store 242(param) 243
245: 9(int) Load 60(c)
Store 244(param) 245
246: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 240(param) 242(param) 244(param)
248: 6(float) CompositeExtract 246 2
249: 6(float) Load 221(color)
250: 6(float) FAdd 249 248
Store 221(color) 250
251: 9(int) Load 60(c)
SelectionMerge 254 None
Switch 251 253
case 0: 252
252: Label
Branch 254
253: Label
Branch 254
254: Label
258: 9(int) Load 60(c)
SelectionMerge 260 None
Switch 258 259
259: Label
Branch 260
260: Label
Return
FunctionEnd
15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11
12(v1): 8(ptr) FunctionParameter
13(v2): 8(ptr) FunctionParameter
14(i1): 10(ptr) FunctionParameter
16: Label
22: 9(int) Load 14(i1)
SelectionMerge 26 None
Switch 22 26
case 0: 23
case 2: 24
case 1: 24
case 3: 25
23: Label
27: 7(fvec4) Load 12(v1)
ReturnValue 27
24: Label
29: 7(fvec4) Load 13(v2)
ReturnValue 29
25: Label
31: 7(fvec4) Load 12(v1)
32: 7(fvec4) Load 13(v2)
33: 7(fvec4) FMul 31 32
ReturnValue 33
26: Label
ReturnValue 37
FunctionEnd
20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11
17(v1): 8(ptr) FunctionParameter
18(v2): 8(ptr) FunctionParameter
19(i1): 10(ptr) FunctionParameter
21: Label
39: 9(int) Load 19(i1)
SelectionMerge 44 None
Switch 39 44
case 0: 40
case 2: 41
case 1: 42
case 3: 43
40: Label
45: 7(fvec4) Load 17(v1)
ReturnValue 45
41: Label
ReturnValue 48
42: Label
50: 7(fvec4) Load 18(v2)
ReturnValue 50
43: Label
52: 7(fvec4) Load 17(v1)
53: 7(fvec4) Load 18(v2)
54: 7(fvec4) FMul 52 53
ReturnValue 54
44: Label
ReturnValue 37
FunctionEnd
spv.switch.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
WARNING: 0:121: 'switch' : last case/default label not followed by statements
WARNING: 0:134: 'switch' : last case/default label not followed by statements
WARNING: 0:139: 'switch' : last case/default label not followed by statements
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 265
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 73 223
ExecutionMode 4 OriginLowerLeft
Source ESSL 310
Name 4 "main"
Name 15 "foo1(vf4;vf4;i1;"
Name 12 "v1"
Name 13 "v2"
Name 14 "i1"
Name 20 "foo2(vf4;vf4;i1;"
Name 17 "v1"
Name 18 "v2"
Name 19 "i1"
Name 58 "local"
Name 60 "c"
Name 71 "f"
Name 73 "x"
Name 127 "d"
Name 153 "i"
Name 172 "j"
Name 223 "color"
Name 229 "v"
Name 230 "param"
Name 232 "param"
Name 234 "param"
Name 242 "param"
Name 244 "param"
Name 246 "param"
Decorate 58(local) RelaxedPrecision
Decorate 60(c) RelaxedPrecision
Decorate 71(f) RelaxedPrecision
Decorate 73(x) RelaxedPrecision
Decorate 127(d) RelaxedPrecision
Decorate 153(i) RelaxedPrecision
Decorate 172(j) RelaxedPrecision
Decorate 223(color) RelaxedPrecision
Decorate 229(v) RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeInt 32 1
10: TypePointer Function 9(int)
11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr)
36: 6(float) Constant 0
37: 7(fvec4) ConstantComposite 36 36 36 36
47: 6(float) Constant 1065353216
48: 7(fvec4) ConstantComposite 47 47 47 47
59: TypePointer UniformConstant 9(int)
60(c): 59(ptr) Variable UniformConstant
63: 9(int) Constant 1
70: TypePointer Function 6(float)
72: TypePointer Input 6(float)
73(x): 72(ptr) Variable Input
127(d): 59(ptr) Variable UniformConstant
154: 9(int) Constant 0
160: 9(int) Constant 10
161: TypeBool
173: 9(int) Constant 20
179: 9(int) Constant 30
184: 6(float) Constant 1120429670
204: 6(float) Constant 1079739679
222: TypePointer Output 6(float)
223(color): 222(ptr) Variable Output
228: TypePointer UniformConstant 7(fvec4)
229(v): 228(ptr) Variable UniformConstant
237: TypeInt 32 0
238: 237(int) Constant 1
249: 237(int) Constant 2
4(main): 2 Function None 3
5: Label
58(local): 10(ptr) Variable Function
71(f): 70(ptr) Variable Function
153(i): 10(ptr) Variable Function
172(j): 10(ptr) Variable Function
230(param): 8(ptr) Variable Function
232(param): 8(ptr) Variable Function
234(param): 10(ptr) Variable Function
242(param): 8(ptr) Variable Function
244(param): 8(ptr) Variable Function
246(param): 10(ptr) Variable Function
61: 9(int) Load 60(c)
Store 58(local) 61
62: 9(int) Load 58(local)
64: 9(int) IAdd 62 63
Store 58(local) 64
65: 9(int) Load 60(c)
SelectionMerge 69 None
Switch 65 68
case 1: 66
case 2: 67
66: Label
74: 6(float) Load 73(x)
75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74
Store 71(f) 75
Branch 69
67: Label
77: 6(float) Load 73(x)
78: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 77
Store 71(f) 78
Branch 69
68: Label
80: 6(float) Load 73(x)
81: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 80
Store 71(f) 81
Branch 69
69: Label
83: 9(int) Load 60(c)
SelectionMerge 87 None
Switch 83 86
case 1: 84
case 2: 85
84: Label
88: 6(float) Load 73(x)
89: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 88
90: 6(float) Load 71(f)
91: 6(float) FAdd 90 89
Store 71(f) 91
Branch 85
85: Label
92: 6(float) Load 73(x)
93: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 92
94: 6(float) Load 71(f)
95: 6(float) FAdd 94 93
Store 71(f) 95
Branch 87
86: Label
97: 6(float) Load 73(x)
98: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 97
99: 6(float) Load 71(f)
100: 6(float) FAdd 99 98
Store 71(f) 100
Branch 87
87: Label
102: 9(int) Load 60(c)
SelectionMerge 105 None
Switch 102 105
case 1: 103
case 2: 104
103: Label
106: 6(float) Load 73(x)
107: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 106
108: 6(float) Load 71(f)
109: 6(float) FAdd 108 107
Store 71(f) 109
Branch 105
104: Label
111: 6(float) Load 73(x)
112: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 111
113: 6(float) Load 71(f)
114: 6(float) FAdd 113 112
Store 71(f) 114
Branch 105
105: Label
117: 9(int) Load 60(c)
SelectionMerge 121 None
Switch 117 120
case 1: 118
case 2: 119
118: Label
122: 6(float) Load 73(x)
123: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 122
124: 6(float) Load 71(f)
125: 6(float) FAdd 124 123
Store 71(f) 125
Branch 121
119: Label
128: 9(int) Load 127(d)
SelectionMerge 131 None
Switch 128 131
case 1: 129
case 2: 130
129: Label
132: 6(float) Load 73(x)
133: 6(float) Load 73(x)
134: 6(float) FMul 132 133
135: 6(float) Load 73(x)
136: 6(float) FMul 134 135
137: 6(float) Load 71(f)
138: 6(float) FAdd 137 136
Store 71(f) 138
Branch 131
130: Label
140: 6(float) Load 73(x)
141: 6(float) Load 73(x)
142: 6(float) FMul 140 141
143: 6(float) Load 71(f)
144: 6(float) FAdd 143 142
Store 71(f) 144
Branch 131
131: Label
Branch 121
120: Label
148: 6(float) Load 73(x)
149: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 148
150: 6(float) Load 71(f)
151: 6(float) FAdd 150 149
Store 71(f) 151
Branch 121
121: Label
Store 153(i) 154
Branch 158
155: Label
163: 9(int) Load 60(c)
SelectionMerge 167 None
Switch 163 166
case 1: 164
case 2: 165
156: Label
211: 9(int) Load 60(c)
SelectionMerge 214 None
Switch 211 214
case 1: 212
case 2: 213
157: Label
209: 9(int) Load 153(i)
210: 9(int) IAdd 209 63
Store 153(i) 210
Branch 158
158: Label
159: 9(int) Load 153(i)
162: 161(bool) SLessThan 159 160
LoopMerge 156 157 None
BranchConditional 162 155 156
164: Label
168: 6(float) Load 73(x)
169: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 168
170: 6(float) Load 71(f)
171: 6(float) FAdd 170 169
Store 71(f) 171
Store 172(j) 173
Branch 177
174: Label
181: 6(float) Load 71(f)
182: 6(float) FAdd 181 47
Store 71(f) 182
183: 6(float) Load 71(f)
185: 161(bool) FOrdLessThan 183 184
SelectionMerge 187 None
BranchConditional 185 186 187
175: Label
Branch 167
176: Label
189: 9(int) Load 172(j)
190: 9(int) IAdd 189 63
Store 172(j) 190
Branch 177
177: Label
178: 9(int) Load 172(j)
180: 161(bool) SLessThan 178 179
LoopMerge 175 176 None
BranchConditional 180 174 175
186: Label
Branch 175
187: Label
Branch 176
165: Label
192: 6(float) Load 73(x)
193: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 192
194: 6(float) Load 71(f)
195: 6(float) FAdd 194 193
Store 71(f) 195
Branch 167
166: Label
198: 6(float) Load 73(x)
199: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 198
200: 6(float) Load 71(f)
201: 6(float) FAdd 200 199
Store 71(f) 201
Branch 167
167: Label
203: 6(float) Load 71(f)
205: 161(bool) FOrdLessThan 203 204
SelectionMerge 207 None
BranchConditional 205 206 207
206: Label
Branch 156
207: Label
Branch 157
212: Label
215: 6(float) Load 73(x)
216: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 215
217: 6(float) Load 71(f)
218: 6(float) FAdd 217 216
Store 71(f) 218
Branch 214
213: Label
Branch 214
214: Label
224: 6(float) Load 71(f)
225: 9(int) Load 58(local)
226: 6(float) ConvertSToF 225
227: 6(float) FAdd 224 226
Store 223(color) 227
231: 7(fvec4) Load 229(v)
Store 230(param) 231
233: 7(fvec4) Load 229(v)
Store 232(param) 233
235: 9(int) Load 60(c)
Store 234(param) 235
236: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 230(param) 232(param) 234(param)
239: 6(float) CompositeExtract 236 1
240: 6(float) Load 223(color)
241: 6(float) FAdd 240 239
Store 223(color) 241
243: 7(fvec4) Load 229(v)
Store 242(param) 243
245: 7(fvec4) Load 229(v)
Store 244(param) 245
247: 9(int) Load 60(c)
Store 246(param) 247
248: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 242(param) 244(param) 246(param)
250: 6(float) CompositeExtract 248 2
251: 6(float) Load 223(color)
252: 6(float) FAdd 251 250
Store 223(color) 252
253: 9(int) Load 60(c)
SelectionMerge 256 None
Switch 253 255
case 0: 254
254: Label
Branch 256
255: Label
Branch 256
256: Label
260: 9(int) Load 60(c)
SelectionMerge 262 None
Switch 260 261
261: Label
Branch 262
262: Label
Return
FunctionEnd
15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11
12(v1): 8(ptr) FunctionParameter
13(v2): 8(ptr) FunctionParameter
14(i1): 10(ptr) FunctionParameter
16: Label
22: 9(int) Load 14(i1)
SelectionMerge 26 None
Switch 22 26
case 0: 23
case 2: 24
case 1: 24
case 3: 25
23: Label
27: 7(fvec4) Load 12(v1)
ReturnValue 27
24: Label
29: 7(fvec4) Load 13(v2)
ReturnValue 29
25: Label
31: 7(fvec4) Load 12(v1)
32: 7(fvec4) Load 13(v2)
33: 7(fvec4) FMul 31 32
ReturnValue 33
26: Label
ReturnValue 37
FunctionEnd
20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11
17(v1): 8(ptr) FunctionParameter
18(v2): 8(ptr) FunctionParameter
19(i1): 10(ptr) FunctionParameter
21: Label
39: 9(int) Load 19(i1)
SelectionMerge 44 None
Switch 39 44
case 0: 40
case 2: 41
case 1: 42
case 3: 43
40: Label
45: 7(fvec4) Load 17(v1)
ReturnValue 45
41: Label
ReturnValue 48
42: Label
50: 7(fvec4) Load 18(v2)
ReturnValue 50
43: Label
52: 7(fvec4) Load 17(v1)
53: 7(fvec4) Load 18(v2)
54: 7(fvec4) FMul 52 53
ReturnValue 54
44: Label
ReturnValue 37
FunctionEnd

View File

@ -1,86 +1,88 @@
spv.while-continue-break.vert
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 42
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 40 41
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 17 "A"
Name 25 "B"
Name 27 "C"
Name 37 "D"
Name 40 "gl_VertexID"
Name 41 "gl_InstanceID"
Decorate 40(gl_VertexID) BuiltIn VertexId
Decorate 41(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
14: 6(int) Constant 10
15: TypeBool
18: 6(int) Constant 1
20: 6(int) Constant 2
29: 6(int) Constant 5
38: 6(int) Constant 3
39: TypePointer Input 6(int)
40(gl_VertexID): 39(ptr) Variable Input
41(gl_InstanceID): 39(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
17(A): 7(ptr) Variable Function
25(B): 7(ptr) Variable Function
27(C): 7(ptr) Variable Function
37(D): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
13: 6(int) Load 8(i)
16: 15(bool) SLessThan 13 14
LoopMerge 11 10 None
BranchConditional 16 12 11
12: Label
Store 17(A) 18
19: 6(int) Load 8(i)
21: 6(int) SMod 19 20
22: 15(bool) IEqual 21 9
SelectionMerge 24 None
BranchConditional 22 23 24
23: Label
Store 25(B) 20
Branch 10
26: Label
Store 27(C) 20
Branch 24
24: Label
28: 6(int) Load 8(i)
30: 6(int) SMod 28 29
31: 15(bool) IEqual 30 9
SelectionMerge 33 None
BranchConditional 31 32 33
32: Label
Store 25(B) 20
Branch 11
34: Label
Store 27(C) 20
Branch 33
33: Label
35: 6(int) Load 8(i)
36: 6(int) IAdd 35 18
Store 8(i) 36
Branch 10
11: Label
Store 37(D) 38
Return
FunctionEnd
spv.while-continue-break.vert
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 43
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 41 42
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 18 "A"
Name 26 "B"
Name 28 "C"
Name 38 "D"
Name 41 "gl_VertexID"
Name 42 "gl_InstanceID"
Decorate 41(gl_VertexID) BuiltIn VertexId
Decorate 42(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
15: 6(int) Constant 10
16: TypeBool
19: 6(int) Constant 1
21: 6(int) Constant 2
30: 6(int) Constant 5
39: 6(int) Constant 3
40: TypePointer Input 6(int)
41(gl_VertexID): 40(ptr) Variable Input
42(gl_InstanceID): 40(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
18(A): 7(ptr) Variable Function
26(B): 7(ptr) Variable Function
28(C): 7(ptr) Variable Function
38(D): 7(ptr) Variable Function
Store 8(i) 9
Branch 13
10: Label
Store 18(A) 19
20: 6(int) Load 8(i)
22: 6(int) SMod 20 21
23: 16(bool) IEqual 22 9
SelectionMerge 25 None
BranchConditional 23 24 25
11: Label
Store 38(D) 39
Return
12: Label
Branch 13
13: Label
14: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15
LoopMerge 11 12 None
BranchConditional 17 10 11
24: Label
Store 26(B) 21
Branch 12
27: Label
Store 28(C) 21
Branch 25
25: Label
29: 6(int) Load 8(i)
31: 6(int) SMod 29 30
32: 16(bool) IEqual 31 9
SelectionMerge 34 None
BranchConditional 32 33 34
33: Label
Store 26(B) 21
Branch 11
35: Label
Store 28(C) 21
Branch 34
34: Label
36: 6(int) Load 8(i)
37: 6(int) IAdd 36 19
Store 8(i) 37
Branch 12
FunctionEnd

View File

@ -1,49 +1,51 @@
spv.while-simple.vert
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 23
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 21 22
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 21 "gl_VertexID"
Name 22 "gl_InstanceID"
Decorate 21(gl_VertexID) BuiltIn VertexId
Decorate 22(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
14: 6(int) Constant 10
15: TypeBool
18: 6(int) Constant 1
20: TypePointer Input 6(int)
21(gl_VertexID): 20(ptr) Variable Input
22(gl_InstanceID): 20(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
13: 6(int) Load 8(i)
16: 15(bool) SLessThan 13 14
LoopMerge 11 10 None
BranchConditional 16 12 11
12: Label
17: 6(int) Load 8(i)
19: 6(int) IAdd 17 18
Store 8(i) 19
Branch 10
11: Label
Return
FunctionEnd
spv.while-simple.vert
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 22 23
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 22 "gl_VertexID"
Name 23 "gl_InstanceID"
Decorate 22(gl_VertexID) BuiltIn VertexId
Decorate 23(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
15: 6(int) Constant 10
16: TypeBool
19: 6(int) Constant 1
21: TypePointer Input 6(int)
22(gl_VertexID): 21(ptr) Variable Input
23(gl_InstanceID): 21(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
Store 8(i) 9
Branch 13
10: Label
18: 6(int) Load 8(i)
20: 6(int) IAdd 18 19
Store 8(i) 20
Branch 12
11: Label
Return
12: Label
Branch 13
13: Label
14: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15
LoopMerge 11 12 None
BranchConditional 17 10 11
FunctionEnd

View File

@ -1,62 +1,64 @@
spv.whileLoop.frag
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 34
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11
ExecutionMode 4 OriginLowerLeft
Source GLSL 110
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 22 "d"
Name 27 "bigColor"
Name 32 "gl_FragColor"
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
16: TypeInt 32 0
17: 16(int) Constant 0
18: TypePointer Function 6(float)
21: TypePointer UniformConstant 6(float)
22(d): 21(ptr) Variable UniformConstant
24: TypeBool
26: TypePointer UniformConstant 7(fvec4)
27(bigColor): 26(ptr) Variable UniformConstant
31: TypePointer Output 7(fvec4)
32(gl_FragColor): 31(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Branch 13
13: Label
19: 18(ptr) AccessChain 9(color) 17
20: 6(float) Load 19
23: 6(float) Load 22(d)
25: 24(bool) FOrdLessThan 20 23
LoopMerge 14 13 None
BranchConditional 25 15 14
15: Label
28: 7(fvec4) Load 27(bigColor)
29: 7(fvec4) Load 9(color)
30: 7(fvec4) FAdd 29 28
Store 9(color) 30
Branch 13
14: Label
33: 7(fvec4) Load 9(color)
Store 32(gl_FragColor) 33
Return
FunctionEnd
spv.whileLoop.frag
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 35
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11
ExecutionMode 4 OriginLowerLeft
Source GLSL 110
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 23 "d"
Name 28 "bigColor"
Name 33 "gl_FragColor"
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
17: TypeInt 32 0
18: 17(int) Constant 0
19: TypePointer Function 6(float)
22: TypePointer UniformConstant 6(float)
23(d): 22(ptr) Variable UniformConstant
25: TypeBool
27: TypePointer UniformConstant 7(fvec4)
28(bigColor): 27(ptr) Variable UniformConstant
32: TypePointer Output 7(fvec4)
33(gl_FragColor): 32(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Branch 16
13: Label
29: 7(fvec4) Load 28(bigColor)
30: 7(fvec4) Load 9(color)
31: 7(fvec4) FAdd 30 29
Store 9(color) 31
Branch 15
14: Label
34: 7(fvec4) Load 9(color)
Store 33(gl_FragColor) 34
Return
15: Label
Branch 16
16: Label
20: 19(ptr) AccessChain 9(color) 18
21: 6(float) Load 20
24: 6(float) Load 23(d)
26: 25(bool) FOrdLessThan 21 24
LoopMerge 14 15 None
BranchConditional 26 13 14
FunctionEnd

View File

@ -5,6 +5,8 @@ spv.do-simple.vert
spv.do-while-continue-break.vert
spv.for-continue-break.vert
spv.for-simple.vert
spv.for-notest.vert
spv.for-nobody.vert
spv.while-continue-break.vert
spv.while-simple.vert
# vulkan-specific tests