Commit c8fbbab4 by Dejan Mircevski

Update .out files with new loop SPIR-V.

Also update breakForLoop and call builder.closeLoop() in code generation. Remove dead code. Change-Id: Ic8ce5b208530f8787989ef45a2efa405f1b45310
parent 7819bee8
......@@ -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:
......
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
......@@ -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
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
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
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
This source diff could not be displayed because it is too large. You can view the blob instead.
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
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
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
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment