Commit e770b3e6 by John Kessenich

SPV return from main: Simplify a legacy design such returns are not jumps to exit block.

Structured control-flow rules allow leaving the middle of a construct through a return, but not through a jump to a block that does a return. Addresses issue #58.
parent 5f5b205c
...@@ -454,7 +454,7 @@ TGlslangToSpvTraverser::~TGlslangToSpvTraverser() ...@@ -454,7 +454,7 @@ TGlslangToSpvTraverser::~TGlslangToSpvTraverser()
if (! mainTerminated) { if (! mainTerminated) {
spv::Block* lastMainBlock = shaderEntry->getLastBlock(); spv::Block* lastMainBlock = shaderEntry->getLastBlock();
builder.setBuildPoint(lastMainBlock); builder.setBuildPoint(lastMainBlock);
builder.leaveFunction(true); builder.leaveFunction();
} }
} }
...@@ -854,7 +854,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt ...@@ -854,7 +854,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
} else { } else {
if (inMain) if (inMain)
mainTerminated = true; mainTerminated = true;
builder.leaveFunction(inMain); builder.leaveFunction();
inMain = false; inMain = false;
} }
...@@ -1276,12 +1276,10 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T ...@@ -1276,12 +1276,10 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T
builder.createLoopContinue(); builder.createLoopContinue();
break; break;
case glslang::EOpReturn: case glslang::EOpReturn:
if (inMain) if (node->getExpression())
builder.makeMainReturn();
else if (node->getExpression())
builder.makeReturn(false, builder.accessChainLoad(convertGlslangToSpvType(node->getExpression()->getType()))); builder.makeReturn(false, builder.accessChainLoad(convertGlslangToSpvType(node->getExpression()->getType())));
else else
builder.makeReturn(); builder.makeReturn(false);
builder.clearAccessChain(); builder.clearAccessChain();
break; break;
......
...@@ -65,8 +65,7 @@ Builder::Builder(unsigned int userNumber) : ...@@ -65,8 +65,7 @@ Builder::Builder(unsigned int userNumber) :
builderNumber(userNumber << 16 | SpvBuilderMagic), builderNumber(userNumber << 16 | SpvBuilderMagic),
buildPoint(0), buildPoint(0),
uniqueId(0), uniqueId(0),
mainFunction(0), mainFunction(0)
stageExit(0)
{ {
clearAccessChain(); clearAccessChain();
} }
...@@ -723,20 +722,11 @@ Function* Builder::makeMain() ...@@ -723,20 +722,11 @@ Function* Builder::makeMain()
std::vector<Id> params; std::vector<Id> params;
mainFunction = makeFunctionEntry(makeVoidType(), "main", params, &entry); mainFunction = makeFunctionEntry(makeVoidType(), "main", params, &entry);
stageExit = new Block(getUniqueId(), *mainFunction);
return mainFunction; return mainFunction;
} }
// Comments in header // Comments in header
void Builder::closeMain()
{
setBuildPoint(stageExit);
stageExit->addInstruction(new Instruction(NoResult, NoType, OpReturn));
mainFunction->addBlock(stageExit);
}
// Comments in header
Function* Builder::makeFunctionEntry(Id returnType, const char* name, std::vector<Id>& paramTypes, Block **entry) Function* Builder::makeFunctionEntry(Id returnType, const char* name, std::vector<Id>& paramTypes, Block **entry)
{ {
Id typeId = makeFunctionType(returnType, paramTypes); Id typeId = makeFunctionType(returnType, paramTypes);
...@@ -756,14 +746,9 @@ Function* Builder::makeFunctionEntry(Id returnType, const char* name, std::vecto ...@@ -756,14 +746,9 @@ Function* Builder::makeFunctionEntry(Id returnType, const char* name, std::vecto
} }
// Comments in header // Comments in header
void Builder::makeReturn(bool implicit, Id retVal, bool isMain) void Builder::makeReturn(bool implicit, Id retVal)
{ {
if (isMain && retVal) if (retVal) {
MissingFunctionality("return value from main()");
if (isMain)
createBranch(stageExit);
else if (retVal) {
Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue); Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue);
inst->addIdOperand(retVal); inst->addIdOperand(retVal);
buildPoint->addInstruction(inst); buildPoint->addInstruction(inst);
...@@ -775,7 +760,7 @@ void Builder::makeReturn(bool implicit, Id retVal, bool isMain) ...@@ -775,7 +760,7 @@ void Builder::makeReturn(bool implicit, Id retVal, bool isMain)
} }
// Comments in header // Comments in header
void Builder::leaveFunction(bool main) void Builder::leaveFunction()
{ {
Block* block = buildPoint; Block* block = buildPoint;
Function& function = buildPoint->getParent(); Function& function = buildPoint->getParent();
...@@ -791,10 +776,8 @@ void Builder::leaveFunction(bool main) ...@@ -791,10 +776,8 @@ void Builder::leaveFunction(bool main)
// Given that this block is at the end of a function, it must be right after an // Given that this block is at the end of a function, it must be right after an
// explicit return, just remove it. // explicit return, just remove it.
function.popBlock(block); function.popBlock(block);
} else if (main) } else {
makeMainReturn(true); // We'll add a return instruction at the end of the current block,
else {
// We're get a return instruction at the end of the current block,
// which for a non-void function is really error recovery (?), as the source // which for a non-void function is really error recovery (?), as the source
// being translated should have had an explicit return, which would have been // being translated should have had an explicit return, which would have been
// followed by an unreachable block, which was handled above. // followed by an unreachable block, which was handled above.
...@@ -805,9 +788,6 @@ void Builder::leaveFunction(bool main) ...@@ -805,9 +788,6 @@ void Builder::leaveFunction(bool main)
} }
} }
} }
if (main)
closeMain();
} }
// Comments in header // Comments in header
......
...@@ -195,23 +195,16 @@ public: ...@@ -195,23 +195,16 @@ public:
// Make the main function. // Make the main function.
Function* makeMain(); Function* makeMain();
// Return from main. Implicit denotes a return at the very end of main.
void makeMainReturn(bool implicit = false) { makeReturn(implicit, 0, true); }
// Close the main function.
void closeMain();
// Make a shader-style function, and create its entry block if entry is non-zero. // Make a shader-style function, and create its entry block if entry is non-zero.
// Return the function, pass back the entry. // Return the function, pass back the entry.
Function* makeFunctionEntry(Id returnType, const char* name, std::vector<Id>& paramTypes, Block **entry = 0); Function* makeFunctionEntry(Id returnType, const char* name, std::vector<Id>& paramTypes, Block **entry = 0);
// Create a return. Pass whether it is a return form main, and the return // Create a return. An 'implicit' return is one not appearing in the source
// value (if applicable). In the case of an implicit return, no post-return // code. In the case of an implicit return, no post-return block is inserted.
// block is inserted. void makeReturn(bool implicit, Id retVal = 0);
void makeReturn(bool implicit = false, Id retVal = 0, bool isMain = false);
// Generate all the code needed to finish up a function. // Generate all the code needed to finish up a function.
void leaveFunction(bool main); void leaveFunction();
// Create a discard. // Create a discard.
void makeDiscard(); void makeDiscard();
...@@ -516,7 +509,6 @@ protected: ...@@ -516,7 +509,6 @@ protected:
Block* buildPoint; Block* buildPoint;
Id uniqueId; Id uniqueId;
Function* mainFunction; Function* mainFunction;
Block* stageExit;
AccessChain accessChain; AccessChain accessChain;
// special blocks of instructions for output // special blocks of instructions for output
......
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 48 // Id's are bound by 47
Source ESSL 100 Source ESSL 100
Capability Shader Capability Shader
...@@ -14,75 +14,73 @@ Linked fragment stage: ...@@ -14,75 +14,73 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 9 "foo(" Name 8 "foo("
Name 12 "face1" Name 11 "face1"
Name 14 "face2" Name 13 "face2"
Name 18 "z" Name 17 "z"
Name 22 "low" Name 21 "low"
Name 27 "high" Name 26 "high"
Name 37 "gl_FragColor" Name 36 "gl_FragColor"
Decorate 12(face1) RelaxedPrecision Decorate 11(face1) RelaxedPrecision
Decorate 14(face2) RelaxedPrecision Decorate 13(face2) RelaxedPrecision
Decorate 18(z) RelaxedPrecision Decorate 17(z) RelaxedPrecision
Decorate 22(low) RelaxedPrecision Decorate 21(low) RelaxedPrecision
Decorate 27(high) RelaxedPrecision Decorate 26(high) RelaxedPrecision
Decorate 37(gl_FragColor) RelaxedPrecision Decorate 36(gl_FragColor) RelaxedPrecision
Decorate 37(gl_FragColor) BuiltIn FragColor Decorate 36(gl_FragColor) BuiltIn FragColor
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeFunction 7(float) 7: TypeFunction 6(float)
11: TypePointer PrivateGlobal 7(float) 10: TypePointer PrivateGlobal 6(float)
12(face1): 11(ptr) Variable PrivateGlobal 11(face1): 10(ptr) Variable PrivateGlobal
13: 7(float) Constant 1093664768 12: 6(float) Constant 1093664768
14(face2): 11(ptr) Variable PrivateGlobal 13(face2): 10(ptr) Variable PrivateGlobal
15: 7(float) Constant 3221225472 14: 6(float) Constant 3221225472
16: TypeInt 32 1 15: TypeInt 32 1
17: TypePointer Function 16(int) 16: TypePointer Function 15(int)
19: 16(int) Constant 3 18: 15(int) Constant 3
20: 16(int) Constant 2 19: 15(int) Constant 2
21: TypePointer UniformConstant 16(int) 20: TypePointer UniformConstant 15(int)
22(low): 21(ptr) Variable UniformConstant 21(low): 20(ptr) Variable UniformConstant
25: 16(int) Constant 1 24: 15(int) Constant 1
27(high): 21(ptr) Variable UniformConstant 26(high): 20(ptr) Variable UniformConstant
29: TypeBool 28: TypeBool
35: TypeVector 7(float) 4 34: TypeVector 6(float) 4
36: TypePointer Output 35(fvec4) 35: TypePointer Output 34(fvec4)
37(gl_FragColor): 36(ptr) Variable Output 36(gl_FragColor): 35(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
18(z): 17(ptr) Variable Function 17(z): 16(ptr) Variable Function
Store 12(face1) 13 Store 11(face1) 12
Store 14(face2) 15 Store 13(face2) 14
Store 18(z) 19 Store 17(z) 18
23: 16(int) Load 22(low) 22: 15(int) Load 21(low)
24: 16(int) IMul 20 23 23: 15(int) IMul 19 22
26: 16(int) IAdd 24 25 25: 15(int) IAdd 23 24
28: 16(int) Load 27(high) 27: 15(int) Load 26(high)
30: 29(bool) SLessThan 26 28 29: 28(bool) SLessThan 25 27
SelectionMerge 32 None SelectionMerge 31 None
BranchConditional 30 31 32 BranchConditional 29 30 31
30: Label
32: 15(int) Load 17(z)
33: 15(int) IAdd 32 24
Store 17(z) 33
Branch 31
31: Label 31: Label
33: 16(int) Load 18(z) 37: 6(float) Load 11(face1)
34: 16(int) IAdd 33 25 38: 15(int) Load 17(z)
Store 18(z) 34 39: 6(float) ConvertSToF 38
Branch 32 40: 34(fvec4) CompositeConstruct 39 39 39 39
32: Label 41: 34(fvec4) VectorTimesScalar 40 37
38: 7(float) Load 12(face1) 42: 6(float) FunctionCall 8(foo()
39: 16(int) Load 18(z) 43: 34(fvec4) CompositeConstruct 42 42 42 42
40: 7(float) ConvertSToF 39 44: 34(fvec4) FAdd 41 43
41: 35(fvec4) CompositeConstruct 40 40 40 40 Store 36(gl_FragColor) 44
42: 35(fvec4) VectorTimesScalar 41 38
43: 7(float) FunctionCall 9(foo()
44: 35(fvec4) CompositeConstruct 43 43 43 43
45: 35(fvec4) FAdd 42 44
Store 37(gl_FragColor) 45
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
9(foo(): 7(float) Function None 8 8(foo(): 6(float) Function None 7
10: Label 9: Label
46: 7(float) Load 14(face2) 45: 6(float) Load 13(face2)
ReturnValue 46 ReturnValue 45
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked vertex stage: ...@@ -5,7 +5,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 41 // Id's are bound by 40
Source ESSL 300 Source ESSL 300
Capability Shader Capability Shader
...@@ -13,67 +13,65 @@ Linked vertex stage: ...@@ -13,67 +13,65 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 9 "i" Name 8 "i"
Name 12 "gl_VertexID" Name 11 "gl_VertexID"
Name 17 "j" Name 16 "j"
Name 24 "gl_Position" Name 23 "gl_Position"
Name 26 "ps" Name 25 "ps"
Name 34 "gl_PointSize" Name 33 "gl_PointSize"
Name 40 "gl_InstanceID" Name 39 "gl_InstanceID"
Decorate 9(i) RelaxedPrecision Decorate 8(i) RelaxedPrecision
Decorate 12(gl_VertexID) BuiltIn VertexId Decorate 11(gl_VertexID) BuiltIn VertexId
Decorate 17(j) RelaxedPrecision Decorate 16(j) RelaxedPrecision
Decorate 24(gl_Position) Invariant Decorate 23(gl_Position) Invariant
Decorate 24(gl_Position) BuiltIn Position Decorate 23(gl_Position) BuiltIn Position
Decorate 26(ps) RelaxedPrecision Decorate 25(ps) RelaxedPrecision
Decorate 34(gl_PointSize) BuiltIn PointSize Decorate 33(gl_PointSize) BuiltIn PointSize
Decorate 40(gl_InstanceID) BuiltIn InstanceId Decorate 39(gl_InstanceID) BuiltIn InstanceId
Decorate 40(gl_InstanceID) NoStaticUse Decorate 39(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypePointer Function 7(int) 7: TypePointer Function 6(int)
10: 7(int) Constant 4 9: 6(int) Constant 4
11: TypePointer Input 7(int) 10: TypePointer Input 6(int)
12(gl_VertexID): 11(ptr) Variable Input 11(gl_VertexID): 10(ptr) Variable Input
15: 7(int) Constant 10 14: 6(int) Constant 10
21: TypeFloat 32 20: TypeFloat 32
22: TypeVector 21(float) 4 21: TypeVector 20(float) 4
23: TypePointer Output 22(fvec4) 22: TypePointer Output 21(fvec4)
24(gl_Position): 23(ptr) Variable Output 23(gl_Position): 22(ptr) Variable Output
25: TypePointer Input 21(float) 24: TypePointer Input 20(float)
26(ps): 25(ptr) Variable Input 25(ps): 24(ptr) Variable Input
33: TypePointer Output 21(float) 32: TypePointer Output 20(float)
34(gl_PointSize): 33(ptr) Variable Output 33(gl_PointSize): 32(ptr) Variable Output
40(gl_InstanceID): 11(ptr) Variable Input 39(gl_InstanceID): 10(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(i): 8(ptr) Variable Function 8(i): 7(ptr) Variable Function
17(j): 8(ptr) Variable Function 16(j): 7(ptr) Variable Function
13: 7(int) Load 12(gl_VertexID) 12: 6(int) Load 11(gl_VertexID)
14: 7(int) IMul 10 13 13: 6(int) IMul 9 12
16: 7(int) ISub 14 15 15: 6(int) ISub 13 14
Store 9(i) 16 Store 8(i) 15
18: 7(int) Load 12(gl_VertexID) 17: 6(int) Load 11(gl_VertexID)
19: 7(int) IMul 10 18 18: 6(int) IMul 9 17
20: 7(int) ISub 19 15 19: 6(int) ISub 18 14
Store 17(j) 20 Store 16(j) 19
27: 21(float) Load 26(ps) 26: 20(float) Load 25(ps)
28: 22(fvec4) CompositeConstruct 27 27 27 27 27: 21(fvec4) CompositeConstruct 26 26 26 26
Store 24(gl_Position) 28 Store 23(gl_Position) 27
29: 7(int) Load 9(i) 28: 6(int) Load 8(i)
30: 21(float) ConvertSToF 29 29: 20(float) ConvertSToF 28
31: 22(fvec4) Load 24(gl_Position) 30: 21(fvec4) Load 23(gl_Position)
32: 22(fvec4) VectorTimesScalar 31 30 31: 21(fvec4) VectorTimesScalar 30 29
Store 24(gl_Position) 32 Store 23(gl_Position) 31
35: 21(float) Load 26(ps) 34: 20(float) Load 25(ps)
Store 34(gl_PointSize) 35 Store 33(gl_PointSize) 34
36: 7(int) Load 17(j) 35: 6(int) Load 16(j)
37: 21(float) ConvertSToF 36 36: 20(float) ConvertSToF 35
38: 21(float) Load 34(gl_PointSize) 37: 20(float) Load 33(gl_PointSize)
39: 21(float) FMul 38 37 38: 20(float) FMul 37 36
Store 34(gl_PointSize) 39 Store 33(gl_PointSize) 38
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 38 // Id's are bound by 37
Source ESSL 300 Source ESSL 300
Capability Shader Capability Shader
...@@ -14,62 +14,60 @@ Linked fragment stage: ...@@ -14,62 +14,60 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "c" Name 9 "c"
Name 12 "color" Name 11 "color"
Name 14 "S" Name 13 "S"
MemberName 14(S) 0 "c" MemberName 13(S) 0 "c"
MemberName 14(S) 1 "f" MemberName 13(S) 1 "f"
Name 16 "s" Name 15 "s"
Name 27 "p" Name 26 "p"
Name 30 "pos" Name 29 "pos"
Decorate 10(c) RelaxedPrecision Decorate 9(c) RelaxedPrecision
Decorate 10(c) Location 7 Decorate 9(c) Location 7
Decorate 12(color) RelaxedPrecision Decorate 11(color) RelaxedPrecision
Decorate 12(color) Smooth Decorate 11(color) Smooth
MemberDecorate 14(S) 0 RelaxedPrecision MemberDecorate 13(S) 0 RelaxedPrecision
MemberDecorate 14(S) 1 RelaxedPrecision MemberDecorate 13(S) 1 RelaxedPrecision
Decorate 27(p) RelaxedPrecision Decorate 26(p) RelaxedPrecision
Decorate 27(p) Location 3 Decorate 26(p) Location 3
Decorate 30(pos) RelaxedPrecision Decorate 29(pos) RelaxedPrecision
Decorate 30(pos) Smooth Decorate 29(pos) Smooth
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 3 7: TypeVector 6(float) 3
9: TypePointer Output 8(fvec3) 8: TypePointer Output 7(fvec3)
10(c): 9(ptr) Variable Output 9(c): 8(ptr) Variable Output
11: TypePointer Input 8(fvec3) 10: TypePointer Input 7(fvec3)
12(color): 11(ptr) Variable Input 11(color): 10(ptr) Variable Input
14(S): TypeStruct 8(fvec3) 7(float) 13(S): TypeStruct 7(fvec3) 6(float)
15: TypePointer Input 14(S) 14: TypePointer Input 13(S)
16(s): 15(ptr) Variable Input 15(s): 14(ptr) Variable Input
17: TypeInt 32 1 16: TypeInt 32 1
18: 17(int) Constant 0 17: 16(int) Constant 0
22: TypeVector 7(float) 4 21: TypeVector 6(float) 4
23: TypeInt 32 0 22: TypeInt 32 0
24: 23(int) Constant 2 23: 22(int) Constant 2
25: TypeArray 22(fvec4) 24 24: TypeArray 21(fvec4) 23
26: TypePointer Output 25 25: TypePointer Output 24
27(p): 26(ptr) Variable Output 26(p): 25(ptr) Variable Output
28: 17(int) Constant 1 27: 16(int) Constant 1
29: TypePointer Input 22(fvec4) 28: TypePointer Input 21(fvec4)
30(pos): 29(ptr) Variable Input 29(pos): 28(ptr) Variable Input
32: TypePointer Input 7(float) 31: TypePointer Input 6(float)
36: TypePointer Output 22(fvec4) 35: TypePointer Output 21(fvec4)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
13: 8(fvec3) Load 12(color) 12: 7(fvec3) Load 11(color)
19: 11(ptr) AccessChain 16(s) 18 18: 10(ptr) AccessChain 15(s) 17
20: 8(fvec3) Load 19 19: 7(fvec3) Load 18
21: 8(fvec3) FAdd 13 20 20: 7(fvec3) FAdd 12 19
Store 10(c) 21 Store 9(c) 20
31: 22(fvec4) Load 30(pos) 30: 21(fvec4) Load 29(pos)
33: 32(ptr) AccessChain 16(s) 28 32: 31(ptr) AccessChain 15(s) 27
34: 7(float) Load 33 33: 6(float) Load 32
35: 22(fvec4) VectorTimesScalar 31 34 34: 21(fvec4) VectorTimesScalar 30 33
37: 36(ptr) AccessChain 27(p) 28 36: 35(ptr) AccessChain 26(p) 27
Store 37 35 Store 36 34
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked geometry stage: ...@@ -5,7 +5,7 @@ Linked geometry stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 33 // Id's are bound by 32
Source GLSL 330 Source GLSL 330
SourceExtension "GL_ARB_separate_shader_objects" SourceExtension "GL_ARB_separate_shader_objects"
...@@ -18,57 +18,55 @@ Linked geometry stage: ...@@ -18,57 +18,55 @@ Linked geometry stage:
ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3 ExecutionMode 4 OutputVertices 3
Name 4 "main" Name 4 "main"
Name 12 "gl_PerVertex" Name 11 "gl_PerVertex"
MemberName 12(gl_PerVertex) 0 "gl_Position" MemberName 11(gl_PerVertex) 0 "gl_Position"
MemberName 12(gl_PerVertex) 1 "gl_ClipDistance" MemberName 11(gl_PerVertex) 1 "gl_ClipDistance"
Name 14 "" Name 13 ""
Name 17 "gl_PerVertex" Name 16 "gl_PerVertex"
MemberName 17(gl_PerVertex) 0 "gl_Position" MemberName 16(gl_PerVertex) 0 "gl_Position"
MemberName 17(gl_PerVertex) 1 "gl_ClipDistance" MemberName 16(gl_PerVertex) 1 "gl_ClipDistance"
Name 21 "gl_in" Name 20 "gl_in"
MemberDecorate 12(gl_PerVertex) 0 BuiltIn Position MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 12(gl_PerVertex) 1 BuiltIn ClipDistance MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance
Decorate 12(gl_PerVertex) Block Decorate 11(gl_PerVertex) Block
Decorate 12(gl_PerVertex) Stream 0 Decorate 11(gl_PerVertex) Stream 0
Decorate 14 Stream 0 Decorate 13 Stream 0
MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 17(gl_PerVertex) 1 BuiltIn ClipDistance MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance
Decorate 17(gl_PerVertex) Block Decorate 16(gl_PerVertex) Block
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypeInt 32 0 8: TypeInt 32 0
10: 9(int) Constant 1 9: 8(int) Constant 1
11: TypeArray 7(float) 10 10: TypeArray 6(float) 9
12(gl_PerVertex): TypeStruct 8(fvec4) 11 11(gl_PerVertex): TypeStruct 7(fvec4) 10
13: TypePointer Output 12(gl_PerVertex) 12: TypePointer Output 11(gl_PerVertex)
14: 13(ptr) Variable Output 13: 12(ptr) Variable Output
15: TypeInt 32 1 14: TypeInt 32 1
16: 15(int) Constant 0 15: 14(int) Constant 0
17(gl_PerVertex): TypeStruct 8(fvec4) 11 16(gl_PerVertex): TypeStruct 7(fvec4) 10
18: 9(int) Constant 3 17: 8(int) Constant 3
19: TypeArray 17(gl_PerVertex) 18 18: TypeArray 16(gl_PerVertex) 17
20: TypePointer Input 19 19: TypePointer Input 18
21(gl_in): 20(ptr) Variable Input 20(gl_in): 19(ptr) Variable Input
22: 15(int) Constant 1 21: 14(int) Constant 1
23: TypePointer Input 8(fvec4) 22: TypePointer Input 7(fvec4)
26: TypePointer Output 8(fvec4) 25: TypePointer Output 7(fvec4)
28: TypePointer Input 7(float) 27: TypePointer Input 6(float)
31: TypePointer Output 7(float) 30: TypePointer Output 6(float)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
24: 23(ptr) AccessChain 21(gl_in) 22 16 23: 22(ptr) AccessChain 20(gl_in) 21 15
25: 8(fvec4) Load 24 24: 7(fvec4) Load 23
27: 26(ptr) AccessChain 14 16 26: 25(ptr) AccessChain 13 15
Store 27 25 Store 26 24
29: 28(ptr) AccessChain 21(gl_in) 22 22 16 28: 27(ptr) AccessChain 20(gl_in) 21 21 15
30: 7(float) Load 29 29: 6(float) Load 28
32: 31(ptr) AccessChain 14 22 16 31: 30(ptr) AccessChain 13 21 15
Store 32 30 Store 31 29
EmitVertex EmitVertex
EndPrimitive EndPrimitive
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 37 // Id's are bound by 36
Source GLSL 110 Source GLSL 110
Capability Shader Capability Shader
...@@ -14,53 +14,51 @@ Linked fragment stage: ...@@ -14,53 +14,51 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "white" Name 9 "white"
Name 13 "black" Name 12 "black"
Name 16 "color" Name 15 "color"
Name 19 "x" Name 18 "x"
Name 22 "tex_coord" Name 21 "tex_coord"
Name 28 "y" Name 27 "y"
Name 35 "gl_FragColor" Name 34 "gl_FragColor"
Decorate 22(tex_coord) Smooth Decorate 21(tex_coord) Smooth
Decorate 35(gl_FragColor) BuiltIn FragColor Decorate 34(gl_FragColor) BuiltIn FragColor
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Function 8(fvec4) 8: TypePointer Function 7(fvec4)
11: 7(float) Constant 1065353216 10: 6(float) Constant 1065353216
12: 8(fvec4) ConstantComposite 11 11 11 11 11: 7(fvec4) ConstantComposite 10 10 10 10
14: 7(float) Constant 1045220557 13: 6(float) Constant 1045220557
15: 8(fvec4) ConstantComposite 14 14 14 14 14: 7(fvec4) ConstantComposite 13 13 13 13
18: TypePointer Function 7(float) 17: TypePointer Function 6(float)
20: TypeVector 7(float) 2 19: TypeVector 6(float) 2
21: TypePointer Input 20(fvec2) 20: TypePointer Input 19(fvec2)
22(tex_coord): 21(ptr) Variable Input 21(tex_coord): 20(ptr) Variable Input
25: 7(float) Constant 1073741824 24: 6(float) Constant 1073741824
34: TypePointer Output 8(fvec4) 33: TypePointer Output 7(fvec4)
35(gl_FragColor): 34(ptr) Variable Output 34(gl_FragColor): 33(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(white): 9(ptr) Variable Function 9(white): 8(ptr) Variable Function
13(black): 9(ptr) Variable Function 12(black): 8(ptr) Variable Function
16(color): 9(ptr) Variable Function 15(color): 8(ptr) Variable Function
19(x): 18(ptr) Variable Function 18(x): 17(ptr) Variable Function
28(y): 18(ptr) Variable Function 27(y): 17(ptr) Variable Function
Store 10(white) 12 Store 9(white) 11
Store 13(black) 15 Store 12(black) 14
17: 8(fvec4) Load 10(white) 16: 7(fvec4) Load 9(white)
Store 16(color) 17 Store 15(color) 16
23: 20(fvec2) Load 22(tex_coord) 22: 19(fvec2) Load 21(tex_coord)
24: 7(float) CompositeExtract 23 0 23: 6(float) CompositeExtract 22 0
26: 7(float) FMul 24 25 25: 6(float) FMul 23 24
27: 7(float) FSub 26 11 26: 6(float) FSub 25 10
Store 19(x) 27 Store 18(x) 26
29: 20(fvec2) Load 22(tex_coord) 28: 19(fvec2) Load 21(tex_coord)
30: 7(float) CompositeExtract 29 1 29: 6(float) CompositeExtract 28 1
31: 7(float) FMul 30 25 30: 6(float) FMul 29 24
32: 7(float) FSub 31 11 31: 6(float) FSub 30 10
Store 28(y) 32 Store 27(y) 31
Kill Kill
6: Label
Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 37 // Id's are bound by 36
Source GLSL 110 Source GLSL 110
Capability Shader Capability Shader
...@@ -14,51 +14,49 @@ Linked fragment stage: ...@@ -14,51 +14,49 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "v" Name 9 "v"
Name 14 "tex" Name 13 "tex"
Name 18 "coord" Name 17 "coord"
Name 35 "gl_FragColor" Name 34 "gl_FragColor"
Decorate 18(coord) Smooth Decorate 17(coord) Smooth
Decorate 35(gl_FragColor) BuiltIn FragColor Decorate 34(gl_FragColor) BuiltIn FragColor
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Function 8(fvec4) 8: TypePointer Function 7(fvec4)
11: TypeImage 7(float) 2D sampled format:Unknown 10: TypeImage 6(float) 2D sampled format:Unknown
12: TypeSampledImage 11 11: TypeSampledImage 10
13: TypePointer UniformConstant 12 12: TypePointer UniformConstant 11
14(tex): 13(ptr) Variable UniformConstant 13(tex): 12(ptr) Variable UniformConstant
16: TypeVector 7(float) 2 15: TypeVector 6(float) 2
17: TypePointer Input 16(fvec2) 16: TypePointer Input 15(fvec2)
18(coord): 17(ptr) Variable Input 17(coord): 16(ptr) Variable Input
22: 7(float) Constant 1036831949 21: 6(float) Constant 1036831949
23: 7(float) Constant 1045220557 22: 6(float) Constant 1045220557
24: 7(float) Constant 1050253722 23: 6(float) Constant 1050253722
25: 7(float) Constant 1053609165 24: 6(float) Constant 1053609165
26: 8(fvec4) ConstantComposite 22 23 24 25 25: 7(fvec4) ConstantComposite 21 22 23 24
27: TypeBool 26: TypeBool
28: TypeVector 27(bool) 4 27: TypeVector 26(bool) 4
34: TypePointer Output 8(fvec4) 33: TypePointer Output 7(fvec4)
35(gl_FragColor): 34(ptr) Variable Output 34(gl_FragColor): 33(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(v): 9(ptr) Variable Function 9(v): 8(ptr) Variable Function
15: 12 Load 14(tex) 14: 11 Load 13(tex)
19: 16(fvec2) Load 18(coord) 18: 15(fvec2) Load 17(coord)
20: 8(fvec4) ImageSampleImplicitLod 15 19 19: 7(fvec4) ImageSampleImplicitLod 14 18
Store 10(v) 20 Store 9(v) 19
21: 8(fvec4) Load 10(v) 20: 7(fvec4) Load 9(v)
29: 28(bvec4) FOrdEqual 21 26 28: 27(bvec4) FOrdEqual 20 25
30: 27(bool) All 29 29: 26(bool) All 28
SelectionMerge 32 None SelectionMerge 31 None
BranchConditional 30 31 32 BranchConditional 29 30 31
31: Label 30: Label
Kill Kill
32: Label 31: Label
36: 8(fvec4) Load 10(v) 35: 7(fvec4) Load 9(v)
Store 35(gl_FragColor) 36 Store 34(gl_FragColor) 35
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -7,7 +7,7 @@ Linked fragment stage: ...@@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 21 // Id's are bound by 20
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -16,30 +16,28 @@ Linked fragment stage: ...@@ -16,30 +16,28 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 13 "gl_FragData" Name 12 "gl_FragData"
Name 17 "Color" Name 16 "Color"
Decorate 13(gl_FragData) BuiltIn FragColor Decorate 12(gl_FragData) BuiltIn FragColor
Decorate 17(Color) Smooth Decorate 16(Color) Smooth
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypeInt 32 0 8: TypeInt 32 0
10: 9(int) Constant 32 9: 8(int) Constant 32
11: TypeArray 8(fvec4) 10 10: TypeArray 7(fvec4) 9
12: TypePointer Output 11 11: TypePointer Output 10
13(gl_FragData): 12(ptr) Variable Output 12(gl_FragData): 11(ptr) Variable Output
14: TypeInt 32 1 13: TypeInt 32 1
15: 14(int) Constant 1 14: 13(int) Constant 1
16: TypePointer Input 8(fvec4) 15: TypePointer Input 7(fvec4)
17(Color): 16(ptr) Variable Input 16(Color): 15(ptr) Variable Input
19: TypePointer Output 8(fvec4) 18: TypePointer Output 7(fvec4)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
18: 8(fvec4) Load 17(Color) 17: 7(fvec4) Load 16(Color)
20: 19(ptr) AccessChain 13(gl_FragData) 15 19: 18(ptr) AccessChain 12(gl_FragData) 14
Store 20 18 Store 19 17
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -7,7 +7,7 @@ Linked fragment stage: ...@@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 23 // Id's are bound by 22
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -16,33 +16,31 @@ Linked fragment stage: ...@@ -16,33 +16,31 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 13 "gl_FragData" Name 12 "gl_FragData"
Name 16 "i" Name 15 "i"
Name 19 "Color" Name 18 "Color"
Decorate 13(gl_FragData) BuiltIn FragColor Decorate 12(gl_FragData) BuiltIn FragColor
Decorate 19(Color) Smooth Decorate 18(Color) Smooth
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypeInt 32 0 8: TypeInt 32 0
10: 9(int) Constant 32 9: 8(int) Constant 32
11: TypeArray 8(fvec4) 10 10: TypeArray 7(fvec4) 9
12: TypePointer Output 11 11: TypePointer Output 10
13(gl_FragData): 12(ptr) Variable Output 12(gl_FragData): 11(ptr) Variable Output
14: TypeInt 32 1 13: TypeInt 32 1
15: TypePointer UniformConstant 14(int) 14: TypePointer UniformConstant 13(int)
16(i): 15(ptr) Variable UniformConstant 15(i): 14(ptr) Variable UniformConstant
18: TypePointer Input 8(fvec4) 17: TypePointer Input 7(fvec4)
19(Color): 18(ptr) Variable Input 18(Color): 17(ptr) Variable Input
21: TypePointer Output 8(fvec4) 20: TypePointer Output 7(fvec4)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
17: 14(int) Load 16(i) 16: 13(int) Load 15(i)
20: 8(fvec4) Load 19(Color) 19: 7(fvec4) Load 18(Color)
22: 21(ptr) AccessChain 13(gl_FragData) 17 21: 20(ptr) AccessChain 12(gl_FragData) 16
Store 22 20 Store 21 19
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -8,7 +8,7 @@ Linked vertex stage: ...@@ -8,7 +8,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 39 // Id's are bound by 38
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -16,60 +16,58 @@ Linked vertex stage: ...@@ -16,60 +16,58 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 9 "i" Name 8 "i"
Name 24 "colorOut" Name 23 "colorOut"
Name 27 "color" Name 26 "color"
Name 33 "gl_Position" Name 32 "gl_Position"
Name 38 "gl_VertexID" Name 37 "gl_VertexID"
Decorate 24(colorOut) Smooth Decorate 23(colorOut) Smooth
Decorate 33(gl_Position) BuiltIn Position Decorate 32(gl_Position) BuiltIn Position
Decorate 38(gl_VertexID) BuiltIn VertexId Decorate 37(gl_VertexID) BuiltIn VertexId
Decorate 38(gl_VertexID) NoStaticUse Decorate 37(gl_VertexID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypePointer Function 7(int) 7: TypePointer Function 6(int)
10: 7(int) Constant 1 9: 6(int) Constant 1
15: 7(int) Constant 5 14: 6(int) Constant 5
16: TypeBool 15: TypeBool
18: TypeFloat 32 17: TypeFloat 32
19: TypeVector 18(float) 4 18: TypeVector 17(float) 4
20: TypeInt 32 0 19: TypeInt 32 0
21: 20(int) Constant 6 20: 19(int) Constant 6
22: TypeArray 19(fvec4) 21 21: TypeArray 18(fvec4) 20
23: TypePointer Output 22 22: TypePointer Output 21
24(colorOut): 23(ptr) Variable Output 23(colorOut): 22(ptr) Variable Output
26: TypePointer Input 19(fvec4) 25: TypePointer Input 18(fvec4)
27(color): 26(ptr) Variable Input 26(color): 25(ptr) Variable Input
29: TypePointer Output 19(fvec4) 28: TypePointer Output 18(fvec4)
33(gl_Position): 29(ptr) Variable Output 32(gl_Position): 28(ptr) Variable Output
34: 7(int) Constant 2 33: 6(int) Constant 2
37: TypePointer Input 7(int) 36: TypePointer Input 6(int)
38(gl_VertexID): 37(ptr) Variable Input 37(gl_VertexID): 36(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(i): 8(ptr) Variable Function 8(i): 7(ptr) Variable Function
Store 9(i) 10 Store 8(i) 9
Branch 11 Branch 10
11: Label 10: Label
14: 7(int) Load 9(i) 13: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15 16: 15(bool) SLessThan 13 14
LoopMerge 12 None LoopMerge 11 None
BranchConditional 17 13 12 BranchConditional 16 12 11
13: Label
25: 7(int) Load 9(i)
28: 19(fvec4) Load 27(color)
30: 29(ptr) AccessChain 24(colorOut) 25
Store 30 28
31: 7(int) Load 9(i)
32: 7(int) IAdd 31 10
Store 9(i) 32
Branch 11
12: Label 12: Label
35: 29(ptr) AccessChain 24(colorOut) 34 24: 6(int) Load 8(i)
36: 19(fvec4) Load 35 27: 18(fvec4) Load 26(color)
Store 33(gl_Position) 36 29: 28(ptr) AccessChain 23(colorOut) 24
Branch 6 Store 29 27
6: Label 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 Return
FunctionEnd FunctionEnd
...@@ -8,7 +8,7 @@ Linked fragment stage: ...@@ -8,7 +8,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 19 // Id's are bound by 18
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -17,33 +17,31 @@ Linked fragment stage: ...@@ -17,33 +17,31 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 9 "gl_FragDepth" Name 8 "gl_FragDepth"
Name 11 "Depth" Name 10 "Depth"
Name 15 "gl_FragColor" Name 14 "gl_FragColor"
Name 17 "Color" Name 16 "Color"
Decorate 9(gl_FragDepth) BuiltIn FragDepth Decorate 8(gl_FragDepth) BuiltIn FragDepth
Decorate 11(Depth) Smooth Decorate 10(Depth) Smooth
Decorate 15(gl_FragColor) BuiltIn FragColor Decorate 14(gl_FragColor) BuiltIn FragColor
Decorate 17(Color) Smooth Decorate 16(Color) Smooth
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypePointer Output 7(float) 7: TypePointer Output 6(float)
9(gl_FragDepth): 8(ptr) Variable Output 8(gl_FragDepth): 7(ptr) Variable Output
10: TypePointer Input 7(float) 9: TypePointer Input 6(float)
11(Depth): 10(ptr) Variable Input 10(Depth): 9(ptr) Variable Input
13: TypeVector 7(float) 4 12: TypeVector 6(float) 4
14: TypePointer Output 13(fvec4) 13: TypePointer Output 12(fvec4)
15(gl_FragColor): 14(ptr) Variable Output 14(gl_FragColor): 13(ptr) Variable Output
16: TypePointer Input 13(fvec4) 15: TypePointer Input 12(fvec4)
17(Color): 16(ptr) Variable Input 16(Color): 15(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
12: 7(float) Load 11(Depth) 11: 6(float) Load 10(Depth)
Store 9(gl_FragDepth) 12 Store 8(gl_FragDepth) 11
18: 13(fvec4) Load 17(Color) 17: 12(fvec4) Load 16(Color)
Store 15(gl_FragColor) 18 Store 14(gl_FragColor) 17
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked vertex stage: ...@@ -5,7 +5,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 30 // Id's are bound by 29
Source ESSL 300 Source ESSL 300
Capability Shader Capability Shader
...@@ -13,52 +13,50 @@ Linked vertex stage: ...@@ -13,52 +13,50 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 9 "i" Name 8 "i"
Name 28 "gl_VertexID" Name 27 "gl_VertexID"
Name 29 "gl_InstanceID" Name 28 "gl_InstanceID"
Decorate 28(gl_VertexID) BuiltIn VertexId Decorate 27(gl_VertexID) BuiltIn VertexId
Decorate 28(gl_VertexID) NoStaticUse Decorate 27(gl_VertexID) NoStaticUse
Decorate 29(gl_InstanceID) BuiltIn InstanceId Decorate 28(gl_InstanceID) BuiltIn InstanceId
Decorate 29(gl_InstanceID) NoStaticUse Decorate 28(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypePointer Function 7(int) 7: TypePointer Function 6(int)
10: 7(int) Constant 0 9: 6(int) Constant 0
15: TypeBool 14: TypeBool
16: 15(bool) ConstantTrue 15: 14(bool) ConstantTrue
20: 7(int) Constant 10 19: 6(int) Constant 10
24: 7(int) Constant 1 23: 6(int) Constant 1
26: 15(bool) ConstantFalse 25: 14(bool) ConstantFalse
27: TypePointer Input 7(int) 26: TypePointer Input 6(int)
28(gl_VertexID): 27(ptr) Variable Input 27(gl_VertexID): 26(ptr) Variable Input
29(gl_InstanceID): 27(ptr) Variable Input 28(gl_InstanceID): 26(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(i): 8(ptr) Variable Function 8(i): 7(ptr) Variable Function
Store 9(i) 10 Store 8(i) 9
Branch 11 Branch 10
11: Label 10: Label
14: 15(bool) Phi 16 5 26 13 13: 14(bool) Phi 15 5 25 12
LoopMerge 12 None LoopMerge 11 None
Branch 17 Branch 16
16: Label
SelectionMerge 12 None
BranchConditional 13 12 17
17: Label 17: Label
SelectionMerge 13 None 18: 6(int) Load 8(i)
BranchConditional 14 13 18 20: 14(bool) SLessThan 18 19
18: Label SelectionMerge 21 None
19: 7(int) Load 9(i) BranchConditional 20 21 11
21: 15(bool) SLessThan 19 20 21: Label
SelectionMerge 22 None Branch 12
BranchConditional 21 22 12
22: Label
Branch 13
13: Label
23: 7(int) Load 9(i)
25: 7(int) IAdd 23 24
Store 9(i) 25
Branch 11
12: Label 12: Label
Branch 6 22: 6(int) Load 8(i)
6: Label 24: 6(int) IAdd 22 23
Store 8(i) 24
Branch 10
11: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked vertex stage: ...@@ -5,7 +5,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 52 // Id's are bound by 51
Source ESSL 300 Source ESSL 300
Capability Shader Capability Shader
...@@ -13,96 +13,94 @@ Linked vertex stage: ...@@ -13,96 +13,94 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 9 "i" Name 8 "i"
Name 25 "A" Name 24 "A"
Name 31 "B" Name 30 "B"
Name 34 "C" Name 33 "C"
Name 40 "D" Name 39 "D"
Name 43 "E" Name 42 "E"
Name 45 "F" Name 44 "F"
Name 47 "G" Name 46 "G"
Name 50 "gl_VertexID" Name 49 "gl_VertexID"
Name 51 "gl_InstanceID" Name 50 "gl_InstanceID"
Decorate 50(gl_VertexID) BuiltIn VertexId Decorate 49(gl_VertexID) BuiltIn VertexId
Decorate 50(gl_VertexID) NoStaticUse Decorate 49(gl_VertexID) NoStaticUse
Decorate 51(gl_InstanceID) BuiltIn InstanceId Decorate 50(gl_InstanceID) BuiltIn InstanceId
Decorate 51(gl_InstanceID) NoStaticUse Decorate 50(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypePointer Function 7(int) 7: TypePointer Function 6(int)
10: 7(int) Constant 0 9: 6(int) Constant 0
15: TypeBool 14: TypeBool
16: 15(bool) ConstantTrue 15: 14(bool) ConstantTrue
20: 7(int) Constant 1 19: 6(int) Constant 1
22: 7(int) Constant 19 21: 6(int) Constant 19
27: 7(int) Constant 2 26: 6(int) Constant 2
32: 15(bool) ConstantFalse 31: 14(bool) ConstantFalse
36: 7(int) Constant 5 35: 6(int) Constant 5
41: 7(int) Constant 3 40: 6(int) Constant 3
44: 7(int) Constant 42 43: 6(int) Constant 42
46: 7(int) Constant 99 45: 6(int) Constant 99
48: 7(int) Constant 12 47: 6(int) Constant 12
49: TypePointer Input 7(int) 48: TypePointer Input 6(int)
50(gl_VertexID): 49(ptr) Variable Input 49(gl_VertexID): 48(ptr) Variable Input
51(gl_InstanceID): 49(ptr) Variable Input 50(gl_InstanceID): 48(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(i): 8(ptr) Variable Function 8(i): 7(ptr) Variable Function
25(A): 8(ptr) Variable Function 24(A): 7(ptr) Variable Function
31(B): 8(ptr) Variable Function 30(B): 7(ptr) Variable Function
34(C): 8(ptr) Variable Function 33(C): 7(ptr) Variable Function
40(D): 8(ptr) Variable Function 39(D): 7(ptr) Variable Function
43(E): 8(ptr) Variable Function 42(E): 7(ptr) Variable Function
45(F): 8(ptr) Variable Function 44(F): 7(ptr) Variable Function
47(G): 8(ptr) Variable Function 46(G): 7(ptr) Variable Function
Store 9(i) 10 Store 8(i) 9
Branch 11 Branch 10
11: Label 10: Label
14: 15(bool) Phi 16 5 32 29 32 39 13: 14(bool) Phi 15 5 31 28 31 38
LoopMerge 12 None LoopMerge 11 None
Branch 17 Branch 16
16: Label
SelectionMerge 12 None
BranchConditional 13 12 17
17: Label 17: Label
SelectionMerge 13 None 18: 6(int) Load 8(i)
BranchConditional 14 13 18 20: 6(int) IAdd 18 19
18: Label Store 8(i) 20
19: 7(int) Load 9(i) 22: 14(bool) SLessThan 20 21
21: 7(int) IAdd 19 20 SelectionMerge 23 None
Store 9(i) 21 BranchConditional 22 23 11
23: 15(bool) SLessThan 21 22 23: Label
SelectionMerge 24 None Branch 12
BranchConditional 23 24 12 12: Label
24: Label Store 24(A) 9
Branch 13 25: 6(int) Load 8(i)
13: Label 27: 14(bool) IEqual 25 26
Store 25(A) 10 SelectionMerge 29 None
26: 7(int) Load 9(i) BranchConditional 27 28 29
28: 15(bool) IEqual 26 27 28: Label
SelectionMerge 30 None Store 30(B) 19
BranchConditional 28 29 30 Branch 10
32: Label
Store 33(C) 26
Branch 29
29: Label 29: Label
Store 31(B) 20 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 Branch 11
33: Label 41: Label
Store 34(C) 27 Store 42(E) 43
Branch 30 Branch 38
30: Label
35: 7(int) Load 9(i)
37: 15(bool) IEqual 35 36
SelectionMerge 39 None
BranchConditional 37 38 39
38: Label 38: Label
Store 40(D) 41 Store 44(F) 45
Branch 12 Branch 10
42: Label 11: Label
Store 43(E) 44 Store 46(G) 47
Branch 39
39: Label
Store 45(F) 46
Branch 11
12: Label
Store 47(G) 48
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 38 // Id's are bound by 37
Source GLSL 110 Source GLSL 110
Capability Shader Capability Shader
...@@ -14,61 +14,59 @@ Linked fragment stage: ...@@ -14,61 +14,59 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "color" Name 9 "color"
Name 12 "BaseColor" Name 11 "BaseColor"
Name 25 "d" Name 24 "d"
Name 30 "bigColor" Name 29 "bigColor"
Name 36 "gl_FragColor" Name 35 "gl_FragColor"
Decorate 12(BaseColor) Smooth Decorate 11(BaseColor) Smooth
Decorate 36(gl_FragColor) BuiltIn FragColor Decorate 35(gl_FragColor) BuiltIn FragColor
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Function 8(fvec4) 8: TypePointer Function 7(fvec4)
11: TypePointer Input 8(fvec4) 10: TypePointer Input 7(fvec4)
12(BaseColor): 11(ptr) Variable Input 11(BaseColor): 10(ptr) Variable Input
18: TypeBool 17: TypeBool
19: 18(bool) ConstantTrue 18: 17(bool) ConstantTrue
24: TypePointer UniformConstant 7(float) 23: TypePointer UniformConstant 6(float)
25(d): 24(ptr) Variable UniformConstant 24(d): 23(ptr) Variable UniformConstant
29: TypePointer UniformConstant 8(fvec4) 28: TypePointer UniformConstant 7(fvec4)
30(bigColor): 29(ptr) Variable UniformConstant 29(bigColor): 28(ptr) Variable UniformConstant
34: 18(bool) ConstantFalse 33: 17(bool) ConstantFalse
35: TypePointer Output 8(fvec4) 34: TypePointer Output 7(fvec4)
36(gl_FragColor): 35(ptr) Variable Output 35(gl_FragColor): 34(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(color): 9(ptr) Variable Function 9(color): 8(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor) 12: 7(fvec4) Load 11(BaseColor)
Store 10(color) 13 Store 9(color) 12
Branch 14 Branch 13
14: Label 13: Label
17: 18(bool) Phi 19 5 34 16 16: 17(bool) Phi 18 5 33 15
LoopMerge 15 None LoopMerge 14 None
Branch 20 Branch 19
19: Label
SelectionMerge 15 None
BranchConditional 16 15 20
20: Label 20: Label
SelectionMerge 16 None 21: 7(fvec4) Load 9(color)
BranchConditional 17 16 21 22: 6(float) CompositeExtract 21 0
21: Label 25: 6(float) Load 24(d)
22: 8(fvec4) Load 10(color) 26: 17(bool) FOrdLessThan 22 25
23: 7(float) CompositeExtract 22 0 SelectionMerge 27 None
26: 7(float) Load 25(d) BranchConditional 26 27 14
27: 18(bool) FOrdLessThan 23 26 27: Label
SelectionMerge 28 None Branch 15
BranchConditional 27 28 15
28: Label
Branch 16
16: Label
31: 8(fvec4) Load 30(bigColor)
32: 8(fvec4) Load 10(color)
33: 8(fvec4) FAdd 32 31
Store 10(color) 33
Branch 14
15: Label 15: Label
37: 8(fvec4) Load 10(color) 30: 7(fvec4) Load 29(bigColor)
Store 36(gl_FragColor) 37 31: 7(fvec4) Load 9(color)
Branch 6 32: 7(fvec4) FAdd 31 30
6: Label Store 9(color) 32
Branch 13
14: Label
36: 7(fvec4) Load 9(color)
Store 35(gl_FragColor) 36
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 42 // Id's are bound by 41
Source GLSL 120 Source GLSL 120
Capability Shader Capability Shader
...@@ -14,67 +14,65 @@ Linked fragment stage: ...@@ -14,67 +14,65 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "color" Name 9 "color"
Name 12 "BaseColor" Name 11 "BaseColor"
Name 14 "color2" Name 13 "color2"
Name 16 "otherColor" Name 15 "otherColor"
Name 19 "c" Name 18 "c"
Name 22 "d" Name 21 "d"
Name 28 "bigColor" Name 27 "bigColor"
Name 33 "smallColor" Name 32 "smallColor"
Name 38 "gl_FragColor" Name 37 "gl_FragColor"
Decorate 12(BaseColor) Smooth Decorate 11(BaseColor) Smooth
Decorate 19(c) Smooth Decorate 18(c) Smooth
Decorate 38(gl_FragColor) BuiltIn FragColor Decorate 37(gl_FragColor) BuiltIn FragColor
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Function 8(fvec4) 8: TypePointer Function 7(fvec4)
11: TypePointer Input 8(fvec4) 10: TypePointer Input 7(fvec4)
12(BaseColor): 11(ptr) Variable Input 11(BaseColor): 10(ptr) Variable Input
15: TypePointer UniformConstant 8(fvec4) 14: TypePointer UniformConstant 7(fvec4)
16(otherColor): 15(ptr) Variable UniformConstant 15(otherColor): 14(ptr) Variable UniformConstant
18: TypePointer Input 7(float) 17: TypePointer Input 6(float)
19(c): 18(ptr) Variable Input 18(c): 17(ptr) Variable Input
21: TypePointer UniformConstant 7(float) 20: TypePointer UniformConstant 6(float)
22(d): 21(ptr) Variable UniformConstant 21(d): 20(ptr) Variable UniformConstant
24: TypeBool 23: TypeBool
28(bigColor): 15(ptr) Variable UniformConstant 27(bigColor): 14(ptr) Variable UniformConstant
33(smallColor): 15(ptr) Variable UniformConstant 32(smallColor): 14(ptr) Variable UniformConstant
37: TypePointer Output 8(fvec4) 36: TypePointer Output 7(fvec4)
38(gl_FragColor): 37(ptr) Variable Output 37(gl_FragColor): 36(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(color): 9(ptr) Variable Function 9(color): 8(ptr) Variable Function
14(color2): 9(ptr) Variable Function 13(color2): 8(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor) 12: 7(fvec4) Load 11(BaseColor)
Store 10(color) 13 Store 9(color) 12
17: 8(fvec4) Load 16(otherColor) 16: 7(fvec4) Load 15(otherColor)
Store 14(color2) 17 Store 13(color2) 16
20: 7(float) Load 19(c) 19: 6(float) Load 18(c)
23: 7(float) Load 22(d) 22: 6(float) Load 21(d)
25: 24(bool) FOrdGreaterThan 20 23 24: 23(bool) FOrdGreaterThan 19 22
SelectionMerge 27 None SelectionMerge 26 None
BranchConditional 25 26 32 BranchConditional 24 25 31
25: Label
28: 7(fvec4) Load 27(bigColor)
29: 7(fvec4) Load 9(color)
30: 7(fvec4) FAdd 29 28
Store 9(color) 30
Branch 26
31: Label
33: 7(fvec4) Load 32(smallColor)
34: 7(fvec4) Load 9(color)
35: 7(fvec4) FAdd 34 33
Store 9(color) 35
Branch 26
26: Label 26: Label
29: 8(fvec4) Load 28(bigColor) 38: 7(fvec4) Load 9(color)
30: 8(fvec4) Load 10(color) 39: 7(fvec4) Load 13(color2)
31: 8(fvec4) FAdd 30 29 40: 7(fvec4) FMul 38 39
Store 10(color) 31 Store 37(gl_FragColor) 40
Branch 27
32: Label
34: 8(fvec4) Load 33(smallColor)
35: 8(fvec4) Load 10(color)
36: 8(fvec4) FAdd 35 34
Store 10(color) 36
Branch 27
27: Label
39: 8(fvec4) Load 10(color)
40: 8(fvec4) Load 14(color2)
41: 8(fvec4) FMul 39 40
Store 38(gl_FragColor) 41
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked vertex stage: ...@@ -5,7 +5,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 49 // Id's are bound by 48
Source ESSL 300 Source ESSL 300
Capability Shader Capability Shader
...@@ -13,89 +13,87 @@ Linked vertex stage: ...@@ -13,89 +13,87 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 9 "i" Name 8 "i"
Name 18 "A" Name 17 "A"
Name 26 "B" Name 25 "B"
Name 30 "C" Name 29 "C"
Name 37 "D" Name 36 "D"
Name 39 "E" Name 38 "E"
Name 40 "F" Name 39 "F"
Name 44 "G" Name 43 "G"
Name 47 "gl_VertexID" Name 46 "gl_VertexID"
Name 48 "gl_InstanceID" Name 47 "gl_InstanceID"
Decorate 47(gl_VertexID) BuiltIn VertexId Decorate 46(gl_VertexID) BuiltIn VertexId
Decorate 47(gl_VertexID) NoStaticUse Decorate 46(gl_VertexID) NoStaticUse
Decorate 48(gl_InstanceID) BuiltIn InstanceId Decorate 47(gl_InstanceID) BuiltIn InstanceId
Decorate 48(gl_InstanceID) NoStaticUse Decorate 47(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypePointer Function 7(int) 7: TypePointer Function 6(int)
10: 7(int) Constant 0 9: 6(int) Constant 0
15: 7(int) Constant 10 14: 6(int) Constant 10
16: TypeBool 15: TypeBool
19: 7(int) Constant 1 18: 6(int) Constant 1
21: 7(int) Constant 2 20: 6(int) Constant 2
32: 7(int) Constant 3 31: 6(int) Constant 3
41: 7(int) Constant 12 40: 6(int) Constant 12
45: 7(int) Constant 99 44: 6(int) Constant 99
46: TypePointer Input 7(int) 45: TypePointer Input 6(int)
47(gl_VertexID): 46(ptr) Variable Input 46(gl_VertexID): 45(ptr) Variable Input
48(gl_InstanceID): 46(ptr) Variable Input 47(gl_InstanceID): 45(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(i): 8(ptr) Variable Function 8(i): 7(ptr) Variable Function
18(A): 8(ptr) Variable Function 17(A): 7(ptr) Variable Function
26(B): 8(ptr) Variable Function 25(B): 7(ptr) Variable Function
30(C): 8(ptr) Variable Function 29(C): 7(ptr) Variable Function
37(D): 8(ptr) Variable Function 36(D): 7(ptr) Variable Function
39(E): 8(ptr) Variable Function 38(E): 7(ptr) Variable Function
40(F): 8(ptr) Variable Function 39(F): 7(ptr) Variable Function
44(G): 8(ptr) Variable Function 43(G): 7(ptr) Variable Function
Store 9(i) 10 Store 8(i) 9
Branch 11 Branch 10
11: Label 10: Label
14: 7(int) Load 9(i) 13: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15 16: 15(bool) SLessThan 13 14
LoopMerge 12 None LoopMerge 11 None
BranchConditional 17 13 12 BranchConditional 16 12 11
13: Label 12: Label
Store 18(A) 19 Store 17(A) 18
20: 7(int) Load 9(i) 19: 6(int) Load 8(i)
22: 7(int) SMod 20 21 21: 6(int) SMod 19 20
23: 16(bool) IEqual 22 10 22: 15(bool) IEqual 21 9
SelectionMerge 25 None SelectionMerge 24 None
BranchConditional 23 24 25 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 24: Label
Store 26(B) 19 30: 6(int) Load 8(i)
27: 7(int) Load 9(i) 32: 6(int) SMod 30 31
28: 7(int) IAdd 27 19 33: 15(bool) IEqual 32 9
Store 9(i) 28 SelectionMerge 35 None
BranchConditional 33 34 35
34: Label
Store 36(D) 18
Branch 11 Branch 11
29: Label 37: Label
Store 30(C) 19 Store 38(E) 18
Branch 25 Branch 35
25: Label
31: 7(int) Load 9(i)
33: 7(int) SMod 31 32
34: 16(bool) IEqual 33 10
SelectionMerge 36 None
BranchConditional 34 35 36
35: Label 35: Label
Store 37(D) 19 Store 39(F) 40
Branch 12 41: 6(int) Load 8(i)
38: Label 42: 6(int) IAdd 41 18
Store 39(E) 19 Store 8(i) 42
Branch 36 Branch 10
36: Label 11: Label
Store 40(F) 41 Store 43(G) 44
42: 7(int) Load 9(i)
43: 7(int) IAdd 42 19
Store 9(i) 43
Branch 11
12: Label
Store 44(G) 45
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked vertex stage: ...@@ -5,7 +5,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 26 // Id's are bound by 25
Source ESSL 300 Source ESSL 300
Capability Shader Capability Shader
...@@ -13,45 +13,43 @@ Linked vertex stage: ...@@ -13,45 +13,43 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 9 "i" Name 8 "i"
Name 18 "j" Name 17 "j"
Name 24 "gl_VertexID" Name 23 "gl_VertexID"
Name 25 "gl_InstanceID" Name 24 "gl_InstanceID"
Decorate 24(gl_VertexID) BuiltIn VertexId Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 24(gl_VertexID) NoStaticUse Decorate 23(gl_VertexID) NoStaticUse
Decorate 25(gl_InstanceID) BuiltIn InstanceId Decorate 24(gl_InstanceID) BuiltIn InstanceId
Decorate 25(gl_InstanceID) NoStaticUse Decorate 24(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypePointer Function 7(int) 7: TypePointer Function 6(int)
10: 7(int) Constant 0 9: 6(int) Constant 0
15: 7(int) Constant 10 14: 6(int) Constant 10
16: TypeBool 15: TypeBool
19: 7(int) Constant 12 18: 6(int) Constant 12
21: 7(int) Constant 1 20: 6(int) Constant 1
23: TypePointer Input 7(int) 22: TypePointer Input 6(int)
24(gl_VertexID): 23(ptr) Variable Input 23(gl_VertexID): 22(ptr) Variable Input
25(gl_InstanceID): 23(ptr) Variable Input 24(gl_InstanceID): 22(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(i): 8(ptr) Variable Function 8(i): 7(ptr) Variable Function
18(j): 8(ptr) Variable Function 17(j): 7(ptr) Variable Function
Store 9(i) 10 Store 8(i) 9
Branch 11 Branch 10
11: Label 10: Label
14: 7(int) Load 9(i) 13: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15 16: 15(bool) SLessThan 13 14
LoopMerge 12 None LoopMerge 11 None
BranchConditional 17 13 12 BranchConditional 16 12 11
13: Label
Store 18(j) 19
20: 7(int) Load 9(i)
22: 7(int) IAdd 20 21
Store 9(i) 22
Branch 11
12: Label 12: Label
Branch 6 Store 17(j) 18
6: Label 19: 6(int) Load 8(i)
21: 6(int) IAdd 19 20
Store 8(i) 21
Branch 10
11: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 58 // Id's are bound by 57
Source ESSL 100 Source ESSL 100
Capability Shader Capability Shader
...@@ -14,93 +14,91 @@ Linked fragment stage: ...@@ -14,93 +14,91 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 7 "bar(" Name 6 "bar("
Name 11 "unreachableReturn(" Name 10 "unreachableReturn("
Name 17 "foo(vf4;" Name 16 "foo(vf4;"
Name 16 "bar" Name 15 "bar"
Name 19 "color" Name 18 "color"
Name 21 "BaseColor" Name 20 "BaseColor"
Name 22 "param" Name 21 "param"
Name 28 "f" Name 27 "f"
Name 31 "gl_FragColor" Name 30 "gl_FragColor"
Name 37 "d" Name 36 "d"
Name 57 "bigColor" Name 56 "bigColor"
Decorate 19(color) RelaxedPrecision Decorate 18(color) RelaxedPrecision
Decorate 21(BaseColor) RelaxedPrecision Decorate 20(BaseColor) RelaxedPrecision
Decorate 21(BaseColor) Smooth Decorate 20(BaseColor) Smooth
Decorate 28(f) RelaxedPrecision Decorate 27(f) RelaxedPrecision
Decorate 31(gl_FragColor) RelaxedPrecision Decorate 30(gl_FragColor) RelaxedPrecision
Decorate 31(gl_FragColor) BuiltIn FragColor Decorate 30(gl_FragColor) BuiltIn FragColor
Decorate 37(d) RelaxedPrecision Decorate 36(d) RelaxedPrecision
Decorate 57(bigColor) RelaxedPrecision Decorate 56(bigColor) RelaxedPrecision
Decorate 57(bigColor) NoStaticUse Decorate 56(bigColor) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
9: TypeFloat 32 8: TypeFloat 32
10: TypeFunction 9(float) 9: TypeFunction 8(float)
13: TypeVector 9(float) 4 12: TypeVector 8(float) 4
14: TypePointer Function 13(fvec4) 13: TypePointer Function 12(fvec4)
15: TypeFunction 9(float) 14(ptr) 14: TypeFunction 8(float) 13(ptr)
20: TypePointer Input 13(fvec4) 19: TypePointer Input 12(fvec4)
21(BaseColor): 20(ptr) Variable Input 20(BaseColor): 19(ptr) Variable Input
27: TypePointer Function 9(float) 26: TypePointer Function 8(float)
30: TypePointer Output 13(fvec4) 29: TypePointer Output 12(fvec4)
31(gl_FragColor): 30(ptr) Variable Output 30(gl_FragColor): 29(ptr) Variable Output
36: TypePointer UniformConstant 9(float) 35: TypePointer UniformConstant 8(float)
37(d): 36(ptr) Variable UniformConstant 36(d): 35(ptr) Variable UniformConstant
39: 9(float) Constant 1082549862 38: 8(float) Constant 1082549862
40: TypeBool 39: TypeBool
44: 9(float) Constant 1067030938 43: 8(float) Constant 1067030938
47: 9(float) Constant 1083179008 46: 8(float) Constant 1083179008
56: TypePointer UniformConstant 13(fvec4) 55: TypePointer UniformConstant 12(fvec4)
57(bigColor): 56(ptr) Variable UniformConstant 56(bigColor): 55(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
19(color): 14(ptr) Variable Function 18(color): 13(ptr) Variable Function
22(param): 14(ptr) Variable Function 21(param): 13(ptr) Variable Function
28(f): 27(ptr) Variable Function 27(f): 26(ptr) Variable Function
23: 13(fvec4) Load 21(BaseColor) 22: 12(fvec4) Load 20(BaseColor)
Store 22(param) 23 Store 21(param) 22
24: 9(float) FunctionCall 17(foo(vf4;) 22(param) 23: 8(float) FunctionCall 16(foo(vf4;) 21(param)
25: 13(fvec4) CompositeConstruct 24 24 24 24 24: 12(fvec4) CompositeConstruct 23 23 23 23
Store 19(color) 25 Store 18(color) 24
26: 2 FunctionCall 7(bar() 25: 2 FunctionCall 6(bar()
29: 9(float) FunctionCall 11(unreachableReturn() 28: 8(float) FunctionCall 10(unreachableReturn()
Store 28(f) 29 Store 27(f) 28
32: 13(fvec4) Load 19(color) 31: 12(fvec4) Load 18(color)
33: 9(float) Load 28(f) 32: 8(float) Load 27(f)
34: 13(fvec4) VectorTimesScalar 32 33 33: 12(fvec4) VectorTimesScalar 31 32
Store 31(gl_FragColor) 34 Store 30(gl_FragColor) 33
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
7(bar(): 2 Function None 3 6(bar(): 2 Function None 3
8: Label 7: Label
Return Return
FunctionEnd FunctionEnd
11(unreachableReturn(): 9(float) Function None 10 10(unreachableReturn(): 8(float) Function None 9
12: Label 11: Label
35: 2 FunctionCall 7(bar() 34: 2 FunctionCall 6(bar()
38: 9(float) Load 37(d) 37: 8(float) Load 36(d)
41: 40(bool) FOrdLessThan 38 39 40: 39(bool) FOrdLessThan 37 38
SelectionMerge 43 None SelectionMerge 42 None
BranchConditional 41 42 46 BranchConditional 40 41 45
41: Label
ReturnValue 43
45: Label
ReturnValue 46
42: Label 42: Label
ReturnValue 44 48: 8(float) Undef
46: Label ReturnValue 48
ReturnValue 47
43: Label
49: 9(float) Undef
ReturnValue 49
FunctionEnd FunctionEnd
17(foo(vf4;): 9(float) Function None 15 16(foo(vf4;): 8(float) Function None 14
16(bar): 14(ptr) FunctionParameter 15(bar): 13(ptr) FunctionParameter
18: Label 17: Label
50: 13(fvec4) Load 16(bar) 49: 12(fvec4) Load 15(bar)
51: 9(float) CompositeExtract 50 0 50: 8(float) CompositeExtract 49 0
52: 13(fvec4) Load 16(bar) 51: 12(fvec4) Load 15(bar)
53: 9(float) CompositeExtract 52 1 52: 8(float) CompositeExtract 51 1
54: 9(float) FAdd 51 53 53: 8(float) FAdd 50 52
ReturnValue 54 ReturnValue 53
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 34 // Id's are bound by 33
Source GLSL 120 Source GLSL 120
Capability Shader Capability Shader
...@@ -14,47 +14,45 @@ Linked fragment stage: ...@@ -14,47 +14,45 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "t" Name 9 "t"
Name 15 "v" Name 14 "v"
Name 27 "gl_FragColor" Name 26 "gl_FragColor"
Name 33 "u" Name 32 "u"
Decorate 15(v) Smooth Decorate 14(v) Smooth
Decorate 27(gl_FragColor) BuiltIn FragColor Decorate 26(gl_FragColor) BuiltIn FragColor
Decorate 33(u) NoStaticUse Decorate 32(u) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 2 7: TypeVector 6(float) 2
9: TypePointer Function 8(fvec2) 8: TypePointer Function 7(fvec2)
11: TypeInt 32 0 10: TypeInt 32 0
12: 11(int) Constant 2 11: 10(int) Constant 2
13: TypeArray 8(fvec2) 12 12: TypeArray 7(fvec2) 11
14: TypePointer Input 13 13: TypePointer Input 12
15(v): 14(ptr) Variable Input 14(v): 13(ptr) Variable Input
16: TypeInt 32 1 15: TypeInt 32 1
17: 16(int) Constant 0 16: 15(int) Constant 0
18: TypePointer Input 8(fvec2) 17: TypePointer Input 7(fvec2)
21: 16(int) Constant 1 20: 15(int) Constant 1
25: TypeVector 7(float) 4 24: TypeVector 6(float) 4
26: TypePointer Output 25(fvec4) 25: TypePointer Output 24(fvec4)
27(gl_FragColor): 26(ptr) Variable Output 26(gl_FragColor): 25(ptr) Variable Output
28: 7(float) Constant 1106247680 27: 6(float) Constant 1106247680
29: 25(fvec4) ConstantComposite 28 28 28 28 28: 24(fvec4) ConstantComposite 27 27 27 27
30: 11(int) Constant 3 29: 10(int) Constant 3
31: TypeArray 25(fvec4) 30 30: TypeArray 24(fvec4) 29
32: TypePointer UniformConstant 31 31: TypePointer UniformConstant 30
33(u): 32(ptr) Variable UniformConstant 32(u): 31(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(t): 9(ptr) Variable Function 9(t): 8(ptr) Variable Function
19: 18(ptr) AccessChain 15(v) 17 18: 17(ptr) AccessChain 14(v) 16
20: 8(fvec2) Load 19 19: 7(fvec2) Load 18
22: 18(ptr) AccessChain 15(v) 21 21: 17(ptr) AccessChain 14(v) 20
23: 8(fvec2) Load 22 22: 7(fvec2) Load 21
24: 8(fvec2) FAdd 20 23 23: 7(fvec2) FAdd 19 22
Store 10(t) 24 Store 9(t) 23
Store 27(gl_FragColor) 29 Store 26(gl_FragColor) 28
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -7,7 +7,7 @@ Linked vertex stage: ...@@ -7,7 +7,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 26 // Id's are bound by 25
Source GLSL 430 Source GLSL 430
Capability Shader Capability Shader
...@@ -15,52 +15,50 @@ Linked vertex stage: ...@@ -15,52 +15,50 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 10 "outVc" Name 9 "outVc"
Name 12 "inV" Name 11 "inV"
Name 14 "outVs" Name 13 "outVs"
Name 16 "outVf" Name 15 "outVf"
Name 18 "outVn" Name 17 "outVn"
Name 20 "outVcn" Name 19 "outVcn"
Name 24 "gl_VertexID" Name 23 "gl_VertexID"
Name 25 "gl_InstanceID" Name 24 "gl_InstanceID"
Decorate 10(outVc) Smooth Decorate 9(outVc) Smooth
Decorate 14(outVs) Smooth Decorate 13(outVs) Smooth
Decorate 16(outVf) Flat Decorate 15(outVf) Flat
Decorate 18(outVn) Noperspective Decorate 17(outVn) Noperspective
Decorate 20(outVcn) Noperspective Decorate 19(outVcn) Noperspective
Decorate 24(gl_VertexID) BuiltIn VertexId Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 24(gl_VertexID) NoStaticUse Decorate 23(gl_VertexID) NoStaticUse
Decorate 25(gl_InstanceID) BuiltIn InstanceId Decorate 24(gl_InstanceID) BuiltIn InstanceId
Decorate 25(gl_InstanceID) NoStaticUse Decorate 24(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Output 8(fvec4) 8: TypePointer Output 7(fvec4)
10(outVc): 9(ptr) Variable Output 9(outVc): 8(ptr) Variable Output
11: TypePointer Input 8(fvec4) 10: TypePointer Input 7(fvec4)
12(inV): 11(ptr) Variable Input 11(inV): 10(ptr) Variable Input
14(outVs): 9(ptr) Variable Output 13(outVs): 8(ptr) Variable Output
16(outVf): 9(ptr) Variable Output 15(outVf): 8(ptr) Variable Output
18(outVn): 9(ptr) Variable Output 17(outVn): 8(ptr) Variable Output
20(outVcn): 9(ptr) Variable Output 19(outVcn): 8(ptr) Variable Output
22: TypeInt 32 1 21: TypeInt 32 1
23: TypePointer Input 22(int) 22: TypePointer Input 21(int)
24(gl_VertexID): 23(ptr) Variable Input 23(gl_VertexID): 22(ptr) Variable Input
25(gl_InstanceID): 23(ptr) Variable Input 24(gl_InstanceID): 22(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
13: 8(fvec4) Load 12(inV) 12: 7(fvec4) Load 11(inV)
Store 10(outVc) 13 Store 9(outVc) 12
15: 8(fvec4) Load 12(inV) 14: 7(fvec4) Load 11(inV)
Store 14(outVs) 15 Store 13(outVs) 14
17: 8(fvec4) Load 12(inV) 16: 7(fvec4) Load 11(inV)
Store 16(outVf) 17 Store 15(outVf) 16
19: 8(fvec4) Load 12(inV) 18: 7(fvec4) Load 11(inV)
Store 18(outVn) 19 Store 17(outVn) 18
21: 8(fvec4) Load 12(inV) 20: 7(fvec4) Load 11(inV)
Store 20(outVcn) 21 Store 19(outVcn) 20
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -7,7 +7,7 @@ Linked vertex stage: ...@@ -7,7 +7,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 26 // Id's are bound by 25
Source GLSL 450 Source GLSL 450
Capability Shader Capability Shader
...@@ -15,50 +15,48 @@ Linked vertex stage: ...@@ -15,50 +15,48 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 10 "color" Name 9 "color"
Name 11 "setBuf" Name 10 "setBuf"
MemberName 11(setBuf) 0 "color" MemberName 10(setBuf) 0 "color"
Name 13 "setBufInst" Name 12 "setBufInst"
Name 22 "sampler" Name 21 "sampler"
Name 24 "gl_VertexID" Name 23 "gl_VertexID"
Name 25 "gl_InstanceID" Name 24 "gl_InstanceID"
Decorate 10(color) Smooth Decorate 9(color) Smooth
Decorate 11(setBuf) GLSLShared Decorate 10(setBuf) GLSLShared
Decorate 11(setBuf) BufferBlock Decorate 10(setBuf) BufferBlock
Decorate 13(setBufInst) DescriptorSet 0 Decorate 12(setBufInst) DescriptorSet 0
Decorate 13(setBufInst) Binding 8 Decorate 12(setBufInst) Binding 8
Decorate 22(sampler) DescriptorSet 4 Decorate 21(sampler) DescriptorSet 4
Decorate 22(sampler) Binding 7 Decorate 21(sampler) Binding 7
Decorate 22(sampler) NoStaticUse Decorate 21(sampler) NoStaticUse
Decorate 24(gl_VertexID) BuiltIn VertexId Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 24(gl_VertexID) NoStaticUse Decorate 23(gl_VertexID) NoStaticUse
Decorate 25(gl_InstanceID) BuiltIn InstanceId Decorate 24(gl_InstanceID) BuiltIn InstanceId
Decorate 25(gl_InstanceID) NoStaticUse Decorate 24(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Output 8(fvec4) 8: TypePointer Output 7(fvec4)
10(color): 9(ptr) Variable Output 9(color): 8(ptr) Variable Output
11(setBuf): TypeStruct 8(fvec4) 10(setBuf): TypeStruct 7(fvec4)
12: TypePointer Uniform 11(setBuf) 11: TypePointer Uniform 10(setBuf)
13(setBufInst): 12(ptr) Variable Uniform 12(setBufInst): 11(ptr) Variable Uniform
14: TypeInt 32 1 13: TypeInt 32 1
15: 14(int) Constant 0 14: 13(int) Constant 0
16: TypePointer Uniform 8(fvec4) 15: TypePointer Uniform 7(fvec4)
19: TypeImage 7(float) 2D sampled format:Unknown 18: TypeImage 6(float) 2D sampled format:Unknown
20: TypeSampledImage 19 19: TypeSampledImage 18
21: TypePointer UniformConstant 20 20: TypePointer UniformConstant 19
22(sampler): 21(ptr) Variable UniformConstant 21(sampler): 20(ptr) Variable UniformConstant
23: TypePointer Input 14(int) 22: TypePointer Input 13(int)
24(gl_VertexID): 23(ptr) Variable Input 23(gl_VertexID): 22(ptr) Variable Input
25(gl_InstanceID): 23(ptr) Variable Input 24(gl_InstanceID): 22(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
17: 16(ptr) AccessChain 13(setBufInst) 15 16: 15(ptr) AccessChain 12(setBufInst) 14
18: 8(fvec4) Load 17 17: 7(fvec4) Load 16
Store 10(color) 18 Store 9(color) 17
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -7,7 +7,7 @@ Linked fragment stage: ...@@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 23 // Id's are bound by 22
Source GLSL 150 Source GLSL 150
Capability Shader Capability Shader
...@@ -16,38 +16,36 @@ Linked fragment stage: ...@@ -16,38 +16,36 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "foo(" Name 9 "foo("
Name 13 "BaseColor" Name 12 "BaseColor"
Name 17 "gl_FragColor" Name 16 "gl_FragColor"
Name 20 "bigColor" Name 19 "bigColor"
Name 22 "d" Name 21 "d"
Decorate 13(BaseColor) Smooth Decorate 12(BaseColor) Smooth
Decorate 17(gl_FragColor) BuiltIn FragColor Decorate 16(gl_FragColor) BuiltIn FragColor
Decorate 20(bigColor) NoStaticUse Decorate 19(bigColor) NoStaticUse
Decorate 22(d) NoStaticUse Decorate 21(d) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypeFunction 8(fvec4) 8: TypeFunction 7(fvec4)
12: TypePointer Input 8(fvec4) 11: TypePointer Input 7(fvec4)
13(BaseColor): 12(ptr) Variable Input 12(BaseColor): 11(ptr) Variable Input
16: TypePointer Output 8(fvec4) 15: TypePointer Output 7(fvec4)
17(gl_FragColor): 16(ptr) Variable Output 16(gl_FragColor): 15(ptr) Variable Output
19: TypePointer UniformConstant 8(fvec4) 18: TypePointer UniformConstant 7(fvec4)
20(bigColor): 19(ptr) Variable UniformConstant 19(bigColor): 18(ptr) Variable UniformConstant
21: TypePointer UniformConstant 7(float) 20: TypePointer UniformConstant 6(float)
22(d): 21(ptr) Variable UniformConstant 21(d): 20(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
18: 8(fvec4) FunctionCall 10(foo() 17: 7(fvec4) FunctionCall 9(foo()
Store 17(gl_FragColor) 18 Store 16(gl_FragColor) 17
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
10(foo(): 8(fvec4) Function None 9 9(foo(): 7(fvec4) Function None 8
11: Label 10: Label
14: 8(fvec4) Load 13(BaseColor) 13: 7(fvec4) Load 12(BaseColor)
ReturnValue 14 ReturnValue 13
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked vertex stage: ...@@ -5,7 +5,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 44 // Id's are bound by 43
Source GLSL 330 Source GLSL 330
Capability Shader Capability Shader
...@@ -13,64 +13,62 @@ Linked vertex stage: ...@@ -13,64 +13,62 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 10 "glPos" Name 9 "glPos"
Name 13 "mvp" Name 12 "mvp"
Name 16 "v" Name 15 "v"
Name 20 "f" Name 19 "f"
Name 24 "am3" Name 23 "am3"
Name 35 "arraym" Name 34 "arraym"
Name 42 "gl_VertexID" Name 41 "gl_VertexID"
Name 43 "gl_InstanceID" Name 42 "gl_InstanceID"
Decorate 10(glPos) Smooth Decorate 9(glPos) Smooth
Decorate 20(f) Smooth Decorate 19(f) Smooth
Decorate 42(gl_VertexID) BuiltIn VertexId Decorate 41(gl_VertexID) BuiltIn VertexId
Decorate 42(gl_VertexID) NoStaticUse Decorate 41(gl_VertexID) NoStaticUse
Decorate 43(gl_InstanceID) BuiltIn InstanceId Decorate 42(gl_InstanceID) BuiltIn InstanceId
Decorate 43(gl_InstanceID) NoStaticUse Decorate 42(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Output 8(fvec4) 8: TypePointer Output 7(fvec4)
10(glPos): 9(ptr) Variable Output 9(glPos): 8(ptr) Variable Output
11: TypeMatrix 8(fvec4) 4 10: TypeMatrix 7(fvec4) 4
12: TypePointer UniformConstant 11 11: TypePointer UniformConstant 10
13(mvp): 12(ptr) Variable UniformConstant 12(mvp): 11(ptr) Variable UniformConstant
15: TypePointer Input 8(fvec4) 14: TypePointer Input 7(fvec4)
16(v): 15(ptr) Variable Input 15(v): 14(ptr) Variable Input
19: TypePointer Output 7(float) 18: TypePointer Output 6(float)
20(f): 19(ptr) Variable Output 19(f): 18(ptr) Variable Output
21: TypeVector 7(float) 3 20: TypeVector 6(float) 3
22: TypeMatrix 21(fvec3) 3 21: TypeMatrix 20(fvec3) 3
23: TypePointer Input 22 22: TypePointer Input 21
24(am3): 23(ptr) Variable Input 23(am3): 22(ptr) Variable Input
25: TypeInt 32 1 24: TypeInt 32 1
26: 25(int) Constant 2 25: 24(int) Constant 2
27: TypePointer Input 21(fvec3) 26: TypePointer Input 20(fvec3)
31: TypeInt 32 0 30: TypeInt 32 0
32: 31(int) Constant 3 31: 30(int) Constant 3
33: TypeArray 11 32 32: TypeArray 10 31
34: TypePointer Input 33 33: TypePointer Input 32
35(arraym): 34(ptr) Variable Input 34(arraym): 33(ptr) Variable Input
36: 25(int) Constant 1 35: 24(int) Constant 1
41: TypePointer Input 25(int) 40: TypePointer Input 24(int)
42(gl_VertexID): 41(ptr) Variable Input 41(gl_VertexID): 40(ptr) Variable Input
43(gl_InstanceID): 41(ptr) Variable Input 42(gl_InstanceID): 40(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
14: 11 Load 13(mvp) 13: 10 Load 12(mvp)
17: 8(fvec4) Load 16(v) 16: 7(fvec4) Load 15(v)
18: 8(fvec4) MatrixTimesVector 14 17 17: 7(fvec4) MatrixTimesVector 13 16
Store 10(glPos) 18 Store 9(glPos) 17
28: 27(ptr) AccessChain 24(am3) 26 27: 26(ptr) AccessChain 23(am3) 25
29: 21(fvec3) Load 28 28: 20(fvec3) Load 27
30: 7(float) CompositeExtract 29 1 29: 6(float) CompositeExtract 28 1
37: 15(ptr) AccessChain 35(arraym) 36 26 36: 14(ptr) AccessChain 34(arraym) 35 25
38: 8(fvec4) Load 37 37: 7(fvec4) Load 36
39: 7(float) CompositeExtract 38 3 38: 6(float) CompositeExtract 37 3
40: 7(float) FAdd 30 39 39: 6(float) FAdd 29 38
Store 20(f) 40 Store 19(f) 39
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -7,7 +7,7 @@ Linked fragment stage: ...@@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 51 // Id's are bound by 50
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -16,84 +16,82 @@ Linked fragment stage: ...@@ -16,84 +16,82 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 9 "lunarStruct1" Name 8 "lunarStruct1"
MemberName 9(lunarStruct1) 0 "i" MemberName 8(lunarStruct1) 0 "i"
MemberName 9(lunarStruct1) 1 "f" MemberName 8(lunarStruct1) 1 "f"
Name 10 "lunarStruct2" Name 9 "lunarStruct2"
MemberName 10(lunarStruct2) 0 "i" MemberName 9(lunarStruct2) 0 "i"
MemberName 10(lunarStruct2) 1 "f" MemberName 9(lunarStruct2) 1 "f"
MemberName 10(lunarStruct2) 2 "s1_1" MemberName 9(lunarStruct2) 2 "s1_1"
Name 11 "lunarStruct3" Name 10 "lunarStruct3"
MemberName 11(lunarStruct3) 0 "s2_1" MemberName 10(lunarStruct3) 0 "s2_1"
MemberName 11(lunarStruct3) 1 "i" MemberName 10(lunarStruct3) 1 "i"
MemberName 11(lunarStruct3) 2 "f" MemberName 10(lunarStruct3) 2 "f"
MemberName 11(lunarStruct3) 3 "s1_1" MemberName 10(lunarStruct3) 3 "s1_1"
Name 13 "foo3" Name 12 "foo3"
Name 23 "locals2" Name 22 "locals2"
Name 28 "foo2" Name 27 "foo2"
Name 32 "gl_FragColor" Name 31 "gl_FragColor"
Name 41 "sampler" Name 40 "sampler"
Name 45 "coord" Name 44 "coord"
Name 50 "foo" Name 49 "foo"
Decorate 32(gl_FragColor) BuiltIn FragColor Decorate 31(gl_FragColor) BuiltIn FragColor
Decorate 45(coord) Smooth Decorate 44(coord) Smooth
Decorate 50(foo) NoStaticUse Decorate 49(foo) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypeFloat 32 7: TypeFloat 32
9(lunarStruct1): TypeStruct 7(int) 8(float) 8(lunarStruct1): TypeStruct 6(int) 7(float)
10(lunarStruct2): TypeStruct 7(int) 8(float) 9(lunarStruct1) 9(lunarStruct2): TypeStruct 6(int) 7(float) 8(lunarStruct1)
11(lunarStruct3): TypeStruct 10(lunarStruct2) 7(int) 8(float) 9(lunarStruct1) 10(lunarStruct3): TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1)
12: TypePointer UniformConstant 11(lunarStruct3) 11: TypePointer UniformConstant 10(lunarStruct3)
13(foo3): 12(ptr) Variable UniformConstant 12(foo3): 11(ptr) Variable UniformConstant
14: 7(int) Constant 0 13: 6(int) Constant 0
15: TypePointer UniformConstant 7(int) 14: TypePointer UniformConstant 6(int)
18: TypeBool 17: TypeBool
22: TypePointer Function 10(lunarStruct2) 21: TypePointer Function 9(lunarStruct2)
24: TypePointer UniformConstant 10(lunarStruct2) 23: TypePointer UniformConstant 9(lunarStruct2)
28(foo2): 24(ptr) Variable UniformConstant 27(foo2): 23(ptr) Variable UniformConstant
30: TypeVector 8(float) 4 29: TypeVector 7(float) 4
31: TypePointer Output 30(fvec4) 30: TypePointer Output 29(fvec4)
32(gl_FragColor): 31(ptr) Variable Output 31(gl_FragColor): 30(ptr) Variable Output
33: 7(int) Constant 2 32: 6(int) Constant 2
34: 7(int) Constant 1 33: 6(int) Constant 1
35: TypePointer Function 8(float) 34: TypePointer Function 7(float)
38: TypeImage 8(float) 2D sampled format:Unknown 37: TypeImage 7(float) 2D sampled format:Unknown
39: TypeSampledImage 38 38: TypeSampledImage 37
40: TypePointer UniformConstant 39 39: TypePointer UniformConstant 38
41(sampler): 40(ptr) Variable UniformConstant 40(sampler): 39(ptr) Variable UniformConstant
43: TypeVector 8(float) 2 42: TypeVector 7(float) 2
44: TypePointer Input 43(fvec2) 43: TypePointer Input 42(fvec2)
45(coord): 44(ptr) Variable Input 44(coord): 43(ptr) Variable Input
49: TypePointer UniformConstant 9(lunarStruct1) 48: TypePointer UniformConstant 8(lunarStruct1)
50(foo): 49(ptr) Variable UniformConstant 49(foo): 48(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
23(locals2): 22(ptr) Variable Function 22(locals2): 21(ptr) Variable Function
16: 15(ptr) AccessChain 13(foo3) 14 14 15: 14(ptr) AccessChain 12(foo3) 13 13
17: 7(int) Load 16 16: 6(int) Load 15
19: 18(bool) SGreaterThan 17 14 18: 17(bool) SGreaterThan 16 13
SelectionMerge 21 None SelectionMerge 20 None
BranchConditional 19 20 27 BranchConditional 18 19 26
19: Label
24: 23(ptr) AccessChain 12(foo3) 13
25:9(lunarStruct2) Load 24
Store 22(locals2) 25
Branch 20
26: Label
28:9(lunarStruct2) Load 27(foo2)
Store 22(locals2) 28
Branch 20
20: Label 20: Label
25: 24(ptr) AccessChain 13(foo3) 14 35: 34(ptr) AccessChain 22(locals2) 32 33
26:10(lunarStruct2) Load 25 36: 7(float) Load 35
Store 23(locals2) 26 41: 38 Load 40(sampler)
Branch 21 45: 42(fvec2) Load 44(coord)
27: Label 46: 29(fvec4) ImageSampleImplicitLod 41 45
29:10(lunarStruct2) Load 28(foo2) 47: 29(fvec4) VectorTimesScalar 46 36
Store 23(locals2) 29 Store 31(gl_FragColor) 47
Branch 21
21: Label
36: 35(ptr) AccessChain 23(locals2) 33 34
37: 8(float) Load 36
42: 39 Load 41(sampler)
46: 43(fvec2) Load 45(coord)
47: 30(fvec4) ImageSampleImplicitLod 42 46
48: 30(fvec4) VectorTimesScalar 47 37
Store 32(gl_FragColor) 48
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -7,7 +7,7 @@ Linked fragment stage: ...@@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 62 // Id's are bound by 61
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -16,91 +16,89 @@ Linked fragment stage: ...@@ -16,91 +16,89 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 9 "scale" Name 8 "scale"
Name 19 "lunarStruct1" Name 18 "lunarStruct1"
MemberName 19(lunarStruct1) 0 "i" MemberName 18(lunarStruct1) 0 "i"
MemberName 19(lunarStruct1) 1 "f" MemberName 18(lunarStruct1) 1 "f"
MemberName 19(lunarStruct1) 2 "color" MemberName 18(lunarStruct1) 2 "color"
Name 22 "lunarStruct2" Name 21 "lunarStruct2"
MemberName 22(lunarStruct2) 0 "i" MemberName 21(lunarStruct2) 0 "i"
MemberName 22(lunarStruct2) 1 "f" MemberName 21(lunarStruct2) 1 "f"
MemberName 22(lunarStruct2) 2 "s1_1" MemberName 21(lunarStruct2) 2 "s1_1"
Name 25 "foo2" Name 24 "foo2"
Name 47 "gl_FragColor" Name 46 "gl_FragColor"
Name 52 "sampler" Name 51 "sampler"
Name 56 "coord" Name 55 "coord"
Name 61 "foo" Name 60 "foo"
Decorate 47(gl_FragColor) BuiltIn FragColor Decorate 46(gl_FragColor) BuiltIn FragColor
Decorate 56(coord) Smooth Decorate 55(coord) Smooth
Decorate 61(foo) NoStaticUse Decorate 60(foo) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypePointer Function 7(float) 7: TypePointer Function 6(float)
10: 7(float) Constant 0 9: 6(float) Constant 0
11: TypeInt 32 1 10: TypeInt 32 1
12: TypeInt 32 0 11: TypeInt 32 0
13: 12(int) Constant 5 12: 11(int) Constant 5
14: TypeArray 11(int) 13 13: TypeArray 10(int) 12
15: 12(int) Constant 4 14: 11(int) Constant 4
16: TypeArray 7(float) 15 15: TypeArray 6(float) 14
17: TypeVector 7(float) 4 16: TypeVector 6(float) 4
18: TypeArray 17(fvec4) 13 17: TypeArray 16(fvec4) 12
19(lunarStruct1): TypeStruct 11(int) 16 18 18(lunarStruct1): TypeStruct 10(int) 15 17
20: 12(int) Constant 7 19: 11(int) Constant 7
21: TypeArray 19(lunarStruct1) 20 20: TypeArray 18(lunarStruct1) 19
22(lunarStruct2): TypeStruct 14 7(float) 21 21(lunarStruct2): TypeStruct 13 6(float) 20
23: TypeArray 22(lunarStruct2) 13 22: TypeArray 21(lunarStruct2) 12
24: TypePointer UniformConstant 23 23: TypePointer UniformConstant 22
25(foo2): 24(ptr) Variable UniformConstant 24(foo2): 23(ptr) Variable UniformConstant
26: 11(int) Constant 3 25: 10(int) Constant 3
27: 11(int) Constant 0 26: 10(int) Constant 0
28: 11(int) Constant 4 27: 10(int) Constant 4
29: TypePointer UniformConstant 11(int) 28: TypePointer UniformConstant 10(int)
32: TypeBool 31: TypeBool
36: 11(int) Constant 2 35: 10(int) Constant 2
37: TypePointer UniformConstant 17(fvec4) 36: TypePointer UniformConstant 16(fvec4)
42: 11(int) Constant 1 41: 10(int) Constant 1
43: TypePointer UniformConstant 7(float) 42: TypePointer UniformConstant 6(float)
46: TypePointer Output 17(fvec4) 45: TypePointer Output 16(fvec4)
47(gl_FragColor): 46(ptr) Variable Output 46(gl_FragColor): 45(ptr) Variable Output
49: TypeImage 7(float) 2D sampled format:Unknown 48: TypeImage 6(float) 2D sampled format:Unknown
50: TypeSampledImage 49 49: TypeSampledImage 48
51: TypePointer UniformConstant 50 50: TypePointer UniformConstant 49
52(sampler): 51(ptr) Variable UniformConstant 51(sampler): 50(ptr) Variable UniformConstant
54: TypeVector 7(float) 2 53: TypeVector 6(float) 2
55: TypePointer Input 54(fvec2) 54: TypePointer Input 53(fvec2)
56(coord): 55(ptr) Variable Input 55(coord): 54(ptr) Variable Input
60: TypePointer UniformConstant 19(lunarStruct1) 59: TypePointer UniformConstant 18(lunarStruct1)
61(foo): 60(ptr) Variable UniformConstant 60(foo): 59(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(scale): 8(ptr) Variable Function 8(scale): 7(ptr) Variable Function
Store 9(scale) 10 Store 8(scale) 9
30: 29(ptr) AccessChain 25(foo2) 26 27 28 29: 28(ptr) AccessChain 24(foo2) 25 26 27
31: 11(int) Load 30 30: 10(int) Load 29
33: 32(bool) SGreaterThan 31 27 32: 31(bool) SGreaterThan 30 26
SelectionMerge 35 None SelectionMerge 34 None
BranchConditional 33 34 41 BranchConditional 32 33 40
33: Label
37: 36(ptr) AccessChain 24(foo2) 25 35 35 35 25
38: 16(fvec4) Load 37
39: 6(float) CompositeExtract 38 0
Store 8(scale) 39
Branch 34
40: Label
43: 42(ptr) AccessChain 24(foo2) 25 35 35 41 25
44: 6(float) Load 43
Store 8(scale) 44
Branch 34
34: Label 34: Label
38: 37(ptr) AccessChain 25(foo2) 26 36 36 36 26 47: 6(float) Load 8(scale)
39: 17(fvec4) Load 38 52: 49 Load 51(sampler)
40: 7(float) CompositeExtract 39 0 56: 53(fvec2) Load 55(coord)
Store 9(scale) 40 57: 16(fvec4) ImageSampleImplicitLod 52 56
Branch 35 58: 16(fvec4) VectorTimesScalar 57 47
41: Label Store 46(gl_FragColor) 58
44: 43(ptr) AccessChain 25(foo2) 26 36 36 42 26
45: 7(float) Load 44
Store 9(scale) 45
Branch 35
35: Label
48: 7(float) Load 9(scale)
53: 50 Load 52(sampler)
57: 54(fvec2) Load 56(coord)
58: 17(fvec4) ImageSampleImplicitLod 53 57
59: 17(fvec4) VectorTimesScalar 58 48
Store 47(gl_FragColor) 59
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 56 // Id's are bound by 55
Source GLSL 110 Source GLSL 110
Capability Shader Capability Shader
...@@ -14,78 +14,76 @@ Linked fragment stage: ...@@ -14,78 +14,76 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 9 "blendscale" Name 8 "blendscale"
Name 13 "v" Name 12 "v"
Name 17 "texSampler2D" Name 16 "texSampler2D"
Name 21 "t" Name 20 "t"
Name 24 "scale" Name 23 "scale"
Name 31 "w" Name 30 "w"
Name 35 "texSampler3D" Name 34 "texSampler3D"
Name 39 "coords" Name 38 "coords"
Name 45 "gl_FragColor" Name 44 "gl_FragColor"
Name 48 "u" Name 47 "u"
Name 51 "blend" Name 50 "blend"
Decorate 21(t) Smooth Decorate 20(t) Smooth
Decorate 39(coords) Smooth Decorate 38(coords) Smooth
Decorate 45(gl_FragColor) BuiltIn FragColor Decorate 44(gl_FragColor) BuiltIn FragColor
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypePointer Function 7(float) 7: TypePointer Function 6(float)
10: 7(float) Constant 1071971828 9: 6(float) Constant 1071971828
11: TypeVector 7(float) 4 10: TypeVector 6(float) 4
12: TypePointer Function 11(fvec4) 11: TypePointer Function 10(fvec4)
14: TypeImage 7(float) 2D sampled format:Unknown 13: TypeImage 6(float) 2D sampled format:Unknown
15: TypeSampledImage 14 14: TypeSampledImage 13
16: TypePointer UniformConstant 15 15: TypePointer UniformConstant 14
17(texSampler2D): 16(ptr) Variable UniformConstant 16(texSampler2D): 15(ptr) Variable UniformConstant
19: TypeVector 7(float) 2 18: TypeVector 6(float) 2
20: TypePointer Input 19(fvec2) 19: TypePointer Input 18(fvec2)
21(t): 20(ptr) Variable Input 20(t): 19(ptr) Variable Input
23: TypePointer UniformConstant 19(fvec2) 22: TypePointer UniformConstant 18(fvec2)
24(scale): 23(ptr) Variable UniformConstant 23(scale): 22(ptr) Variable UniformConstant
32: TypeImage 7(float) 3D sampled format:Unknown 31: TypeImage 6(float) 3D sampled format:Unknown
33: TypeSampledImage 32 32: TypeSampledImage 31
34: TypePointer UniformConstant 33 33: TypePointer UniformConstant 32
35(texSampler3D): 34(ptr) Variable UniformConstant 34(texSampler3D): 33(ptr) Variable UniformConstant
37: TypeVector 7(float) 3 36: TypeVector 6(float) 3
38: TypePointer Input 37(fvec3) 37: TypePointer Input 36(fvec3)
39(coords): 38(ptr) Variable Input 38(coords): 37(ptr) Variable Input
44: TypePointer Output 11(fvec4) 43: TypePointer Output 10(fvec4)
45(gl_FragColor): 44(ptr) Variable Output 44(gl_FragColor): 43(ptr) Variable Output
47: TypePointer UniformConstant 11(fvec4) 46: TypePointer UniformConstant 10(fvec4)
48(u): 47(ptr) Variable UniformConstant 47(u): 46(ptr) Variable UniformConstant
50: TypePointer UniformConstant 7(float) 49: TypePointer UniformConstant 6(float)
51(blend): 50(ptr) Variable UniformConstant 50(blend): 49(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(blendscale): 8(ptr) Variable Function 8(blendscale): 7(ptr) Variable Function
13(v): 12(ptr) Variable Function 12(v): 11(ptr) Variable Function
31(w): 12(ptr) Variable Function 30(w): 11(ptr) Variable Function
Store 9(blendscale) 10 Store 8(blendscale) 9
18: 15 Load 17(texSampler2D) 17: 14 Load 16(texSampler2D)
22: 19(fvec2) Load 21(t) 21: 18(fvec2) Load 20(t)
25: 19(fvec2) Load 24(scale) 24: 18(fvec2) Load 23(scale)
26: 19(fvec2) FAdd 22 25 25: 18(fvec2) FAdd 21 24
27: 19(fvec2) Load 24(scale) 26: 18(fvec2) Load 23(scale)
28: 19(fvec2) FDiv 26 27 27: 18(fvec2) FDiv 25 26
29: 11(fvec4) ImageSampleImplicitLod 18 28 28: 10(fvec4) ImageSampleImplicitLod 17 27
30: 11(fvec4) VectorShuffle 29 29 3 2 1 0 29: 10(fvec4) VectorShuffle 28 28 3 2 1 0
Store 13(v) 30 Store 12(v) 29
36: 33 Load 35(texSampler3D) 35: 32 Load 34(texSampler3D)
40: 37(fvec3) Load 39(coords) 39: 36(fvec3) Load 38(coords)
41: 11(fvec4) ImageSampleImplicitLod 36 40 40: 10(fvec4) ImageSampleImplicitLod 35 39
42: 11(fvec4) Load 13(v) 41: 10(fvec4) Load 12(v)
43: 11(fvec4) FAdd 41 42 42: 10(fvec4) FAdd 40 41
Store 31(w) 43 Store 30(w) 42
46: 11(fvec4) Load 31(w) 45: 10(fvec4) Load 30(w)
49: 11(fvec4) Load 48(u) 48: 10(fvec4) Load 47(u)
52: 7(float) Load 51(blend) 51: 6(float) Load 50(blend)
53: 7(float) Load 9(blendscale) 52: 6(float) Load 8(blendscale)
54: 7(float) FMul 52 53 53: 6(float) FMul 51 52
55: 11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 46 49 54 54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 45 48 53
Store 45(gl_FragColor) 55 Store 44(gl_FragColor) 54
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -7,7 +7,7 @@ Linked vertex stage: ...@@ -7,7 +7,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 28 // Id's are bound by 27
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -15,44 +15,42 @@ Linked vertex stage: ...@@ -15,44 +15,42 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 10 "uv" Name 9 "uv"
Name 12 "uv_in" Name 11 "uv_in"
Name 16 "gl_Position" Name 15 "gl_Position"
Name 19 "transform" Name 18 "transform"
Name 22 "position" Name 21 "position"
Name 27 "gl_VertexID" Name 26 "gl_VertexID"
Decorate 10(uv) Smooth Decorate 9(uv) Smooth
Decorate 16(gl_Position) BuiltIn Position Decorate 15(gl_Position) BuiltIn Position
Decorate 27(gl_VertexID) BuiltIn VertexId Decorate 26(gl_VertexID) BuiltIn VertexId
Decorate 27(gl_VertexID) NoStaticUse Decorate 26(gl_VertexID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 2 7: TypeVector 6(float) 2
9: TypePointer Output 8(fvec2) 8: TypePointer Output 7(fvec2)
10(uv): 9(ptr) Variable Output 9(uv): 8(ptr) Variable Output
11: TypePointer Input 8(fvec2) 10: TypePointer Input 7(fvec2)
12(uv_in): 11(ptr) Variable Input 11(uv_in): 10(ptr) Variable Input
14: TypeVector 7(float) 4 13: TypeVector 6(float) 4
15: TypePointer Output 14(fvec4) 14: TypePointer Output 13(fvec4)
16(gl_Position): 15(ptr) Variable Output 15(gl_Position): 14(ptr) Variable Output
17: TypeMatrix 14(fvec4) 4 16: TypeMatrix 13(fvec4) 4
18: TypePointer UniformConstant 17 17: TypePointer UniformConstant 16
19(transform): 18(ptr) Variable UniformConstant 18(transform): 17(ptr) Variable UniformConstant
21: TypePointer Input 14(fvec4) 20: TypePointer Input 13(fvec4)
22(position): 21(ptr) Variable Input 21(position): 20(ptr) Variable Input
25: TypeInt 32 1 24: TypeInt 32 1
26: TypePointer Input 25(int) 25: TypePointer Input 24(int)
27(gl_VertexID): 26(ptr) Variable Input 26(gl_VertexID): 25(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
13: 8(fvec2) Load 12(uv_in) 12: 7(fvec2) Load 11(uv_in)
Store 10(uv) 13 Store 9(uv) 12
20: 17 Load 19(transform) 19: 16 Load 18(transform)
23: 14(fvec4) Load 22(position) 22: 13(fvec4) Load 21(position)
24: 14(fvec4) MatrixTimesVector 20 23 23: 13(fvec4) MatrixTimesVector 19 22
Store 16(gl_Position) 24 Store 15(gl_Position) 23
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 53 // Id's are bound by 52
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -14,69 +14,67 @@ Linked fragment stage: ...@@ -14,69 +14,67 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "texColor" Name 9 "texColor"
Name 15 "color" Name 14 "color"
Name 26 "inColor" Name 25 "inColor"
Name 36 "alpha" Name 35 "alpha"
Name 47 "gl_FragColor" Name 46 "gl_FragColor"
Name 52 "texSampler2D" Name 51 "texSampler2D"
Decorate 47(gl_FragColor) BuiltIn FragColor Decorate 46(gl_FragColor) BuiltIn FragColor
Decorate 52(texSampler2D) NoStaticUse Decorate 51(texSampler2D) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Function 8(fvec4) 8: TypePointer Function 7(fvec4)
11: TypeInt 32 0 10: TypeInt 32 0
12: 11(int) Constant 6 11: 10(int) Constant 6
13: TypeArray 8(fvec4) 12 12: TypeArray 7(fvec4) 11
14: TypePointer UniformConstant 13 13: TypePointer UniformConstant 12
15(color): 14(ptr) Variable UniformConstant 14(color): 13(ptr) Variable UniformConstant
16: TypeInt 32 1 15: TypeInt 32 1
17: 16(int) Constant 1 16: 15(int) Constant 1
18: TypePointer UniformConstant 8(fvec4) 17: TypePointer UniformConstant 7(fvec4)
24: TypeVector 7(float) 3 23: TypeVector 6(float) 3
25: TypePointer UniformConstant 24(fvec3) 24: TypePointer UniformConstant 23(fvec3)
26(inColor): 25(ptr) Variable UniformConstant 25(inColor): 24(ptr) Variable UniformConstant
33: 11(int) Constant 16 32: 10(int) Constant 16
34: TypeArray 7(float) 33 33: TypeArray 6(float) 32
35: TypePointer UniformConstant 34 34: TypePointer UniformConstant 33
36(alpha): 35(ptr) Variable UniformConstant 35(alpha): 34(ptr) Variable UniformConstant
37: 16(int) Constant 12 36: 15(int) Constant 12
38: TypePointer UniformConstant 7(float) 37: TypePointer UniformConstant 6(float)
46: TypePointer Output 8(fvec4) 45: TypePointer Output 7(fvec4)
47(gl_FragColor): 46(ptr) Variable Output 46(gl_FragColor): 45(ptr) Variable Output
49: TypeImage 7(float) 2D sampled format:Unknown 48: TypeImage 6(float) 2D sampled format:Unknown
50: TypeSampledImage 49 49: TypeSampledImage 48
51: TypePointer UniformConstant 50 50: TypePointer UniformConstant 49
52(texSampler2D): 51(ptr) Variable UniformConstant 51(texSampler2D): 50(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(texColor): 9(ptr) Variable Function 9(texColor): 8(ptr) Variable Function
19: 18(ptr) AccessChain 15(color) 17 18: 17(ptr) AccessChain 14(color) 16
20: 8(fvec4) Load 19 19: 7(fvec4) Load 18
21: 18(ptr) AccessChain 15(color) 17 20: 17(ptr) AccessChain 14(color) 16
22: 8(fvec4) Load 21 21: 7(fvec4) Load 20
23: 8(fvec4) FAdd 20 22 22: 7(fvec4) FAdd 19 21
Store 10(texColor) 23 Store 9(texColor) 22
27: 24(fvec3) Load 26(inColor) 26: 23(fvec3) Load 25(inColor)
28: 8(fvec4) Load 10(texColor) 27: 7(fvec4) Load 9(texColor)
29: 24(fvec3) VectorShuffle 28 28 0 1 2 28: 23(fvec3) VectorShuffle 27 27 0 1 2
30: 24(fvec3) FAdd 29 27 29: 23(fvec3) FAdd 28 26
31: 8(fvec4) Load 10(texColor) 30: 7(fvec4) Load 9(texColor)
32: 8(fvec4) VectorShuffle 31 30 4 5 6 3 31: 7(fvec4) VectorShuffle 30 29 4 5 6 3
Store 10(texColor) 32 Store 9(texColor) 31
39: 38(ptr) AccessChain 36(alpha) 37 38: 37(ptr) AccessChain 35(alpha) 36
40: 7(float) Load 39 39: 6(float) Load 38
41: 8(fvec4) Load 10(texColor) 40: 7(fvec4) Load 9(texColor)
42: 7(float) CompositeExtract 41 3 41: 6(float) CompositeExtract 40 3
43: 7(float) FAdd 42 40 42: 6(float) FAdd 41 39
44: 8(fvec4) Load 10(texColor) 43: 7(fvec4) Load 9(texColor)
45: 8(fvec4) CompositeInsert 43 44 3 44: 7(fvec4) CompositeInsert 42 43 3
Store 10(texColor) 45 Store 9(texColor) 44
48: 8(fvec4) Load 10(texColor) 47: 7(fvec4) Load 9(texColor)
Store 47(gl_FragColor) 48 Store 46(gl_FragColor) 47
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 62 // Id's are bound by 61
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -19,82 +19,80 @@ Linked fragment stage: ...@@ -19,82 +19,80 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "texColor" Name 9 "texColor"
Name 14 "texSampler2D" Name 13 "texSampler2D"
Name 20 "gl_TexCoord" Name 19 "gl_TexCoord"
Name 35 "color" Name 34 "color"
Name 40 "alpha" Name 39 "alpha"
Name 45 "gl_FragColor" Name 44 "gl_FragColor"
Name 49 "foo" Name 48 "foo"
Decorate 20(gl_TexCoord) Smooth Decorate 19(gl_TexCoord) Smooth
Decorate 35(color) Smooth Decorate 34(color) Smooth
Decorate 40(alpha) Smooth Decorate 39(alpha) Smooth
Decorate 45(gl_FragColor) BuiltIn FragColor Decorate 44(gl_FragColor) BuiltIn FragColor
Decorate 49(foo) Smooth Decorate 48(foo) Smooth
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Function 8(fvec4) 8: TypePointer Function 7(fvec4)
11: TypeImage 7(float) 2D sampled format:Unknown 10: TypeImage 6(float) 2D sampled format:Unknown
12: TypeSampledImage 11 11: TypeSampledImage 10
13: TypePointer UniformConstant 12 12: TypePointer UniformConstant 11
14(texSampler2D): 13(ptr) Variable UniformConstant 13(texSampler2D): 12(ptr) Variable UniformConstant
16: TypeInt 32 0 15: TypeInt 32 0
17: 16(int) Constant 6 16: 15(int) Constant 6
18: TypeArray 8(fvec4) 17 17: TypeArray 7(fvec4) 16
19: TypePointer Input 18 18: TypePointer Input 17
20(gl_TexCoord): 19(ptr) Variable Input 19(gl_TexCoord): 18(ptr) Variable Input
21: TypeInt 32 1 20: TypeInt 32 1
22: 21(int) Constant 4 21: 20(int) Constant 4
23: TypePointer Input 8(fvec4) 22: TypePointer Input 7(fvec4)
26: 21(int) Constant 5 25: 20(int) Constant 5
30: TypeVector 7(float) 2 29: TypeVector 6(float) 2
35(color): 23(ptr) Variable Input 34(color): 22(ptr) Variable Input
39: TypePointer Input 7(float) 38: TypePointer Input 6(float)
40(alpha): 39(ptr) Variable Input 39(alpha): 38(ptr) Variable Input
44: TypePointer Output 8(fvec4) 43: TypePointer Output 7(fvec4)
45(gl_FragColor): 44(ptr) Variable Output 44(gl_FragColor): 43(ptr) Variable Output
46: 16(int) Constant 3 45: 15(int) Constant 3
47: TypeArray 8(fvec4) 46 46: TypeArray 7(fvec4) 45
48: TypePointer Input 47 47: TypePointer Input 46
49(foo): 48(ptr) Variable Input 48(foo): 47(ptr) Variable Input
50: 21(int) Constant 1 49: 20(int) Constant 1
53: 21(int) Constant 0 52: 20(int) Constant 0
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(texColor): 9(ptr) Variable Function 9(texColor): 8(ptr) Variable Function
15: 12 Load 14(texSampler2D) 14: 11 Load 13(texSampler2D)
24: 23(ptr) AccessChain 20(gl_TexCoord) 22 23: 22(ptr) AccessChain 19(gl_TexCoord) 21
25: 8(fvec4) Load 24 24: 7(fvec4) Load 23
27: 23(ptr) AccessChain 20(gl_TexCoord) 26 26: 22(ptr) AccessChain 19(gl_TexCoord) 25
28: 8(fvec4) Load 27 27: 7(fvec4) Load 26
29: 8(fvec4) FAdd 25 28 28: 7(fvec4) FAdd 24 27
31: 7(float) CompositeExtract 29 0 30: 6(float) CompositeExtract 28 0
32: 7(float) CompositeExtract 29 1 31: 6(float) CompositeExtract 28 1
33: 30(fvec2) CompositeConstruct 31 32 32: 29(fvec2) CompositeConstruct 30 31
34: 8(fvec4) ImageSampleImplicitLod 15 33 33: 7(fvec4) ImageSampleImplicitLod 14 32
Store 10(texColor) 34 Store 9(texColor) 33
36: 8(fvec4) Load 35(color) 35: 7(fvec4) Load 34(color)
37: 8(fvec4) Load 10(texColor) 36: 7(fvec4) Load 9(texColor)
38: 8(fvec4) FAdd 37 36 37: 7(fvec4) FAdd 36 35
Store 10(texColor) 38 Store 9(texColor) 37
41: 7(float) Load 40(alpha) 40: 6(float) Load 39(alpha)
42: 8(fvec4) Load 10(texColor) 41: 7(fvec4) Load 9(texColor)
43: 8(fvec4) CompositeInsert 41 42 3 42: 7(fvec4) CompositeInsert 40 41 3
Store 10(texColor) 43 Store 9(texColor) 42
51: 23(ptr) AccessChain 49(foo) 50 50: 22(ptr) AccessChain 48(foo) 49
52: 8(fvec4) Load 51 51: 7(fvec4) Load 50
54: 23(ptr) AccessChain 20(gl_TexCoord) 53 53: 22(ptr) AccessChain 19(gl_TexCoord) 52
55: 8(fvec4) Load 54 54: 7(fvec4) Load 53
56: 8(fvec4) FAdd 52 55 55: 7(fvec4) FAdd 51 54
57: 23(ptr) AccessChain 20(gl_TexCoord) 22 56: 22(ptr) AccessChain 19(gl_TexCoord) 21
58: 8(fvec4) Load 57 57: 7(fvec4) Load 56
59: 8(fvec4) FAdd 56 58 58: 7(fvec4) FAdd 55 57
60: 8(fvec4) Load 10(texColor) 59: 7(fvec4) Load 9(texColor)
61: 8(fvec4) FAdd 59 60 60: 7(fvec4) FAdd 58 59
Store 45(gl_FragColor) 61 Store 44(gl_FragColor) 60
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 70 // Id's are bound by 69
Source GLSL 130 Source GLSL 130
Capability Shader Capability Shader
...@@ -19,92 +19,90 @@ Linked fragment stage: ...@@ -19,92 +19,90 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "texColor" Name 9 "texColor"
Name 14 "texSampler2D" Name 13 "texSampler2D"
Name 20 "userIn" Name 19 "userIn"
Name 23 "b" Name 22 "b"
Name 31 "gl_TexCoord" Name 30 "gl_TexCoord"
Name 32 "a" Name 31 "a"
Name 46 "color" Name 45 "color"
Name 51 "alpha" Name 50 "alpha"
Name 56 "gl_FragColor" Name 55 "gl_FragColor"
Decorate 20(userIn) Smooth Decorate 19(userIn) Smooth
Decorate 31(gl_TexCoord) Smooth Decorate 30(gl_TexCoord) Smooth
Decorate 46(color) Smooth Decorate 45(color) Smooth
Decorate 51(alpha) Smooth Decorate 50(alpha) Smooth
Decorate 56(gl_FragColor) BuiltIn FragColor Decorate 55(gl_FragColor) BuiltIn FragColor
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Function 8(fvec4) 8: TypePointer Function 7(fvec4)
11: TypeImage 7(float) 2D sampled format:Unknown 10: TypeImage 6(float) 2D sampled format:Unknown
12: TypeSampledImage 11 11: TypeSampledImage 10
13: TypePointer UniformConstant 12 12: TypePointer UniformConstant 11
14(texSampler2D): 13(ptr) Variable UniformConstant 13(texSampler2D): 12(ptr) Variable UniformConstant
16: TypeInt 32 0 15: TypeInt 32 0
17: 16(int) Constant 2 16: 15(int) Constant 2
18: TypeArray 8(fvec4) 17 17: TypeArray 7(fvec4) 16
19: TypePointer Input 18 18: TypePointer Input 17
20(userIn): 19(ptr) Variable Input 19(userIn): 18(ptr) Variable Input
21: TypeInt 32 1 20: TypeInt 32 1
22: TypePointer UniformConstant 21(int) 21: TypePointer UniformConstant 20(int)
23(b): 22(ptr) Variable UniformConstant 22(b): 21(ptr) Variable UniformConstant
25: TypePointer Input 8(fvec4) 24: TypePointer Input 7(fvec4)
28: 16(int) Constant 6 27: 15(int) Constant 6
29: TypeArray 8(fvec4) 28 28: TypeArray 7(fvec4) 27
30: TypePointer Input 29 29: TypePointer Input 28
31(gl_TexCoord): 30(ptr) Variable Input 30(gl_TexCoord): 29(ptr) Variable Input
32(a): 22(ptr) Variable UniformConstant 31(a): 21(ptr) Variable UniformConstant
37: 21(int) Constant 5 36: 20(int) Constant 5
41: TypeVector 7(float) 2 40: TypeVector 6(float) 2
46(color): 25(ptr) Variable Input 45(color): 24(ptr) Variable Input
50: TypePointer Input 7(float) 49: TypePointer Input 6(float)
51(alpha): 50(ptr) Variable Input 50(alpha): 49(ptr) Variable Input
55: TypePointer Output 8(fvec4) 54: TypePointer Output 7(fvec4)
56(gl_FragColor): 55(ptr) Variable Output 55(gl_FragColor): 54(ptr) Variable Output
57: 21(int) Constant 0 56: 20(int) Constant 0
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(texColor): 9(ptr) Variable Function 9(texColor): 8(ptr) Variable Function
15: 12 Load 14(texSampler2D) 14: 11 Load 13(texSampler2D)
24: 21(int) Load 23(b) 23: 20(int) Load 22(b)
26: 25(ptr) AccessChain 20(userIn) 24 25: 24(ptr) AccessChain 19(userIn) 23
27: 8(fvec4) Load 26 26: 7(fvec4) Load 25
33: 21(int) Load 32(a) 32: 20(int) Load 31(a)
34: 25(ptr) AccessChain 31(gl_TexCoord) 33 33: 24(ptr) AccessChain 30(gl_TexCoord) 32
35: 8(fvec4) Load 34 34: 7(fvec4) Load 33
36: 8(fvec4) FAdd 27 35 35: 7(fvec4) FAdd 26 34
38: 25(ptr) AccessChain 31(gl_TexCoord) 37 37: 24(ptr) AccessChain 30(gl_TexCoord) 36
39: 8(fvec4) Load 38 38: 7(fvec4) Load 37
40: 8(fvec4) FAdd 36 39 39: 7(fvec4) FAdd 35 38
42: 7(float) CompositeExtract 40 0 41: 6(float) CompositeExtract 39 0
43: 7(float) CompositeExtract 40 1 42: 6(float) CompositeExtract 39 1
44: 41(fvec2) CompositeConstruct 42 43 43: 40(fvec2) CompositeConstruct 41 42
45: 8(fvec4) ImageSampleImplicitLod 15 44 44: 7(fvec4) ImageSampleImplicitLod 14 43
Store 10(texColor) 45 Store 9(texColor) 44
47: 8(fvec4) Load 46(color) 46: 7(fvec4) Load 45(color)
48: 8(fvec4) Load 10(texColor) 47: 7(fvec4) Load 9(texColor)
49: 8(fvec4) FAdd 48 47 48: 7(fvec4) FAdd 47 46
Store 10(texColor) 49 Store 9(texColor) 48
52: 7(float) Load 51(alpha) 51: 6(float) Load 50(alpha)
53: 8(fvec4) Load 10(texColor) 52: 7(fvec4) Load 9(texColor)
54: 8(fvec4) CompositeInsert 52 53 3 53: 7(fvec4) CompositeInsert 51 52 3
Store 10(texColor) 54 Store 9(texColor) 53
58: 25(ptr) AccessChain 31(gl_TexCoord) 57 57: 24(ptr) AccessChain 30(gl_TexCoord) 56
59: 8(fvec4) Load 58 58: 7(fvec4) Load 57
60: 21(int) Load 23(b) 59: 20(int) Load 22(b)
61: 25(ptr) AccessChain 31(gl_TexCoord) 60 60: 24(ptr) AccessChain 30(gl_TexCoord) 59
62: 8(fvec4) Load 61 61: 7(fvec4) Load 60
63: 8(fvec4) FAdd 59 62 62: 7(fvec4) FAdd 58 61
64: 8(fvec4) Load 10(texColor) 63: 7(fvec4) Load 9(texColor)
65: 8(fvec4) FAdd 63 64 64: 7(fvec4) FAdd 62 63
66: 21(int) Load 32(a) 65: 20(int) Load 31(a)
67: 25(ptr) AccessChain 20(userIn) 66 66: 24(ptr) AccessChain 19(userIn) 65
68: 8(fvec4) Load 67 67: 7(fvec4) Load 66
69: 8(fvec4) FAdd 65 68 68: 7(fvec4) FAdd 64 67
Store 56(gl_FragColor) 69 Store 55(gl_FragColor) 68
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 43 // Id's are bound by 42
Source GLSL 120 Source GLSL 120
Capability Shader Capability Shader
...@@ -14,67 +14,65 @@ Linked fragment stage: ...@@ -14,67 +14,65 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 7 "foo(" Name 6 "foo("
Name 9 "foo2(" Name 8 "foo2("
Name 13 "bar" Name 12 "bar"
Name 23 "outColor" Name 22 "outColor"
Name 25 "bigColor" Name 24 "bigColor"
Name 36 "gl_FragColor" Name 35 "gl_FragColor"
Name 40 "BaseColor" Name 39 "BaseColor"
Name 42 "d" Name 41 "d"
Decorate 36(gl_FragColor) BuiltIn FragColor Decorate 35(gl_FragColor) BuiltIn FragColor
Decorate 40(BaseColor) Smooth Decorate 39(BaseColor) Smooth
Decorate 40(BaseColor) NoStaticUse Decorate 39(BaseColor) NoStaticUse
Decorate 42(d) NoStaticUse Decorate 41(d) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
11: TypeFloat 32 10: TypeFloat 32
12: TypePointer PrivateGlobal 11(float) 11: TypePointer PrivateGlobal 10(float)
13(bar): 12(ptr) Variable PrivateGlobal 12(bar): 11(ptr) Variable PrivateGlobal
14: 11(float) Constant 1073741824 13: 10(float) Constant 1073741824
16: 11(float) Constant 1065353216 15: 10(float) Constant 1065353216
21: TypeVector 11(float) 4 20: TypeVector 10(float) 4
22: TypePointer Function 21(fvec4) 21: TypePointer Function 20(fvec4)
24: TypePointer UniformConstant 21(fvec4) 23: TypePointer UniformConstant 20(fvec4)
25(bigColor): 24(ptr) Variable UniformConstant 24(bigColor): 23(ptr) Variable UniformConstant
35: TypePointer Output 21(fvec4) 34: TypePointer Output 20(fvec4)
36(gl_FragColor): 35(ptr) Variable Output 35(gl_FragColor): 34(ptr) Variable Output
39: TypePointer Input 21(fvec4) 38: TypePointer Input 20(fvec4)
40(BaseColor): 39(ptr) Variable Input 39(BaseColor): 38(ptr) Variable Input
41: TypePointer UniformConstant 11(float) 40: TypePointer UniformConstant 10(float)
42(d): 41(ptr) Variable UniformConstant 41(d): 40(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
23(outColor): 22(ptr) Variable Function 22(outColor): 21(ptr) Variable Function
Store 13(bar) 14 Store 12(bar) 13
26: 21(fvec4) Load 25(bigColor) 25: 20(fvec4) Load 24(bigColor)
Store 23(outColor) 26 Store 22(outColor) 25
27: 2 FunctionCall 7(foo() 26: 2 FunctionCall 6(foo()
28: 2 FunctionCall 9(foo2() 27: 2 FunctionCall 8(foo2()
29: 11(float) Load 13(bar) 28: 10(float) Load 12(bar)
30: 21(fvec4) Load 23(outColor) 29: 20(fvec4) Load 22(outColor)
31: 11(float) CompositeExtract 30 0 30: 10(float) CompositeExtract 29 0
32: 11(float) FAdd 31 29 31: 10(float) FAdd 30 28
33: 21(fvec4) Load 23(outColor) 32: 20(fvec4) Load 22(outColor)
34: 21(fvec4) CompositeInsert 32 33 0 33: 20(fvec4) CompositeInsert 31 32 0
Store 23(outColor) 34 Store 22(outColor) 33
37: 21(fvec4) Load 23(outColor) 36: 20(fvec4) Load 22(outColor)
Store 36(gl_FragColor) 37 Store 35(gl_FragColor) 36
Branch 6
6: Label
Return Return
FunctionEnd FunctionEnd
7(foo(): 2 Function None 3 6(foo(): 2 Function None 3
8: Label 7: Label
15: 11(float) Load 13(bar) 14: 10(float) Load 12(bar)
17: 11(float) FAdd 15 16 16: 10(float) FAdd 14 15
Store 13(bar) 17 Store 12(bar) 16
Return Return
FunctionEnd FunctionEnd
9(foo2(): 2 Function None 3 8(foo2(): 2 Function None 3
10: Label 9: Label
19: 11(float) Load 13(bar) 18: 10(float) Load 12(bar)
20: 11(float) FAdd 19 16 19: 10(float) FAdd 18 15
Store 13(bar) 20 Store 12(bar) 19
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked vertex stage: ...@@ -5,7 +5,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 43 // Id's are bound by 42
Source ESSL 300 Source ESSL 300
Capability Shader Capability Shader
...@@ -13,78 +13,76 @@ Linked vertex stage: ...@@ -13,78 +13,76 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 9 "i" Name 8 "i"
Name 18 "A" Name 17 "A"
Name 26 "B" Name 25 "B"
Name 28 "C" Name 27 "C"
Name 38 "D" Name 37 "D"
Name 41 "gl_VertexID" Name 40 "gl_VertexID"
Name 42 "gl_InstanceID" Name 41 "gl_InstanceID"
Decorate 41(gl_VertexID) BuiltIn VertexId Decorate 40(gl_VertexID) BuiltIn VertexId
Decorate 41(gl_VertexID) NoStaticUse Decorate 40(gl_VertexID) NoStaticUse
Decorate 42(gl_InstanceID) BuiltIn InstanceId Decorate 41(gl_InstanceID) BuiltIn InstanceId
Decorate 42(gl_InstanceID) NoStaticUse Decorate 41(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypePointer Function 7(int) 7: TypePointer Function 6(int)
10: 7(int) Constant 0 9: 6(int) Constant 0
15: 7(int) Constant 10 14: 6(int) Constant 10
16: TypeBool 15: TypeBool
19: 7(int) Constant 1 18: 6(int) Constant 1
21: 7(int) Constant 2 20: 6(int) Constant 2
30: 7(int) Constant 5 29: 6(int) Constant 5
39: 7(int) Constant 3 38: 6(int) Constant 3
40: TypePointer Input 7(int) 39: TypePointer Input 6(int)
41(gl_VertexID): 40(ptr) Variable Input 40(gl_VertexID): 39(ptr) Variable Input
42(gl_InstanceID): 40(ptr) Variable Input 41(gl_InstanceID): 39(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(i): 8(ptr) Variable Function 8(i): 7(ptr) Variable Function
18(A): 8(ptr) Variable Function 17(A): 7(ptr) Variable Function
26(B): 8(ptr) Variable Function 25(B): 7(ptr) Variable Function
28(C): 8(ptr) Variable Function 27(C): 7(ptr) Variable Function
38(D): 8(ptr) Variable Function 37(D): 7(ptr) Variable Function
Store 9(i) 10 Store 8(i) 9
Branch 11 Branch 10
11: Label 10: Label
14: 7(int) Load 9(i) 13: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15 16: 15(bool) SLessThan 13 14
LoopMerge 12 None LoopMerge 11 None
BranchConditional 17 13 12 BranchConditional 16 12 11
13: Label 12: Label
Store 18(A) 19 Store 17(A) 18
20: 7(int) Load 9(i) 19: 6(int) Load 8(i)
22: 7(int) SMod 20 21 21: 6(int) SMod 19 20
23: 16(bool) IEqual 22 10 22: 15(bool) IEqual 21 9
SelectionMerge 25 None SelectionMerge 24 None
BranchConditional 23 24 25 BranchConditional 22 23 24
23: Label
Store 25(B) 20
Branch 10
26: Label
Store 27(C) 20
Branch 24
24: Label 24: Label
Store 26(B) 21 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 Branch 11
27: Label
Store 28(C) 21
Branch 25
25: Label
29: 7(int) Load 9(i)
31: 7(int) SMod 29 30
32: 16(bool) IEqual 31 10
SelectionMerge 34 None
BranchConditional 32 33 34
33: Label
Store 26(B) 21
Branch 12
35: Label
Store 28(C) 21
Branch 34
34: Label 34: Label
36: 7(int) Load 9(i) Store 27(C) 20
37: 7(int) IAdd 36 19 Branch 33
Store 9(i) 37 33: Label
Branch 11 35: 6(int) Load 8(i)
12: Label 36: 6(int) IAdd 35 18
Store 38(D) 39 Store 8(i) 36
Branch 6 Branch 10
6: Label 11: Label
Store 37(D) 38
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked vertex stage: ...@@ -5,7 +5,7 @@ Linked vertex stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 24 // Id's are bound by 23
Source ESSL 300 Source ESSL 300
Capability Shader Capability Shader
...@@ -13,41 +13,39 @@ Linked vertex stage: ...@@ -13,41 +13,39 @@ Linked vertex stage:
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" EntryPoint Vertex 4 "main"
Name 4 "main" Name 4 "main"
Name 9 "i" Name 8 "i"
Name 22 "gl_VertexID" Name 21 "gl_VertexID"
Name 23 "gl_InstanceID" Name 22 "gl_InstanceID"
Decorate 22(gl_VertexID) BuiltIn VertexId Decorate 21(gl_VertexID) BuiltIn VertexId
Decorate 22(gl_VertexID) NoStaticUse Decorate 21(gl_VertexID) NoStaticUse
Decorate 23(gl_InstanceID) BuiltIn InstanceId Decorate 22(gl_InstanceID) BuiltIn InstanceId
Decorate 23(gl_InstanceID) NoStaticUse Decorate 22(gl_InstanceID) NoStaticUse
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeInt 32 1 6: TypeInt 32 1
8: TypePointer Function 7(int) 7: TypePointer Function 6(int)
10: 7(int) Constant 0 9: 6(int) Constant 0
15: 7(int) Constant 10 14: 6(int) Constant 10
16: TypeBool 15: TypeBool
19: 7(int) Constant 1 18: 6(int) Constant 1
21: TypePointer Input 7(int) 20: TypePointer Input 6(int)
22(gl_VertexID): 21(ptr) Variable Input 21(gl_VertexID): 20(ptr) Variable Input
23(gl_InstanceID): 21(ptr) Variable Input 22(gl_InstanceID): 20(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(i): 8(ptr) Variable Function 8(i): 7(ptr) Variable Function
Store 9(i) 10 Store 8(i) 9
Branch 11 Branch 10
11: Label 10: Label
14: 7(int) Load 9(i) 13: 6(int) Load 8(i)
17: 16(bool) SLessThan 14 15 16: 15(bool) SLessThan 13 14
LoopMerge 12 None LoopMerge 11 None
BranchConditional 17 13 12 BranchConditional 16 12 11
13: Label
18: 7(int) Load 9(i)
20: 7(int) IAdd 18 19
Store 9(i) 20
Branch 11
12: Label 12: Label
Branch 6 17: 6(int) Load 8(i)
6: Label 19: 6(int) IAdd 17 18
Store 8(i) 19
Branch 10
11: Label
Return Return
FunctionEnd FunctionEnd
...@@ -5,7 +5,7 @@ Linked fragment stage: ...@@ -5,7 +5,7 @@ Linked fragment stage:
// Module Version 99 // Module Version 99
// Generated by (magic number): 51a00bb // Generated by (magic number): 51a00bb
// Id's are bound by 32 // Id's are bound by 31
Source GLSL 110 Source GLSL 110
Capability Shader Capability Shader
...@@ -14,50 +14,48 @@ Linked fragment stage: ...@@ -14,50 +14,48 @@ Linked fragment stage:
EntryPoint Fragment 4 "main" EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Name 4 "main" Name 4 "main"
Name 10 "color" Name 9 "color"
Name 12 "BaseColor" Name 11 "BaseColor"
Name 20 "d" Name 19 "d"
Name 25 "bigColor" Name 24 "bigColor"
Name 30 "gl_FragColor" Name 29 "gl_FragColor"
Decorate 12(BaseColor) Smooth Decorate 11(BaseColor) Smooth
Decorate 30(gl_FragColor) BuiltIn FragColor Decorate 29(gl_FragColor) BuiltIn FragColor
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
7: TypeFloat 32 6: TypeFloat 32
8: TypeVector 7(float) 4 7: TypeVector 6(float) 4
9: TypePointer Function 8(fvec4) 8: TypePointer Function 7(fvec4)
11: TypePointer Input 8(fvec4) 10: TypePointer Input 7(fvec4)
12(BaseColor): 11(ptr) Variable Input 11(BaseColor): 10(ptr) Variable Input
19: TypePointer UniformConstant 7(float) 18: TypePointer UniformConstant 6(float)
20(d): 19(ptr) Variable UniformConstant 19(d): 18(ptr) Variable UniformConstant
22: TypeBool 21: TypeBool
24: TypePointer UniformConstant 8(fvec4) 23: TypePointer UniformConstant 7(fvec4)
25(bigColor): 24(ptr) Variable UniformConstant 24(bigColor): 23(ptr) Variable UniformConstant
29: TypePointer Output 8(fvec4) 28: TypePointer Output 7(fvec4)
30(gl_FragColor): 29(ptr) Variable Output 29(gl_FragColor): 28(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
10(color): 9(ptr) Variable Function 9(color): 8(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor) 12: 7(fvec4) Load 11(BaseColor)
Store 10(color) 13 Store 9(color) 12
Branch 14 Branch 13
14: Label 13: Label
17: 8(fvec4) Load 10(color) 16: 7(fvec4) Load 9(color)
18: 7(float) CompositeExtract 17 0 17: 6(float) CompositeExtract 16 0
21: 7(float) Load 20(d) 20: 6(float) Load 19(d)
23: 22(bool) FOrdLessThan 18 21 22: 21(bool) FOrdLessThan 17 20
LoopMerge 15 None LoopMerge 14 None
BranchConditional 23 16 15 BranchConditional 22 15 14
16: Label
26: 8(fvec4) Load 25(bigColor)
27: 8(fvec4) Load 10(color)
28: 8(fvec4) FAdd 27 26
Store 10(color) 28
Branch 14
15: Label 15: Label
31: 8(fvec4) Load 10(color) 25: 7(fvec4) Load 24(bigColor)
Store 30(gl_FragColor) 31 26: 7(fvec4) Load 9(color)
Branch 6 27: 7(fvec4) FAdd 26 25
6: Label Store 9(color) 27
Branch 13
14: Label
30: 7(fvec4) Load 9(color)
Store 29(gl_FragColor) 30
Return Return
FunctionEnd FunctionEnd
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits. // For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run). // For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "3.0.752" #define GLSLANG_REVISION "3.0.753"
#define GLSLANG_DATE "13-Sep-2015" #define GLSLANG_DATE "14-Sep-2015"
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