diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 0240dea0..3dffceb9 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -454,7 +454,7 @@ TGlslangToSpvTraverser::~TGlslangToSpvTraverser() if (! mainTerminated) { spv::Block* lastMainBlock = shaderEntry->getLastBlock(); builder.setBuildPoint(lastMainBlock); - builder.leaveFunction(true); + builder.leaveFunction(); } } @@ -854,7 +854,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt } else { if (inMain) mainTerminated = true; - builder.leaveFunction(inMain); + builder.leaveFunction(); inMain = false; } @@ -1276,12 +1276,10 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T builder.createLoopContinue(); break; case glslang::EOpReturn: - if (inMain) - builder.makeMainReturn(); - else if (node->getExpression()) + if (node->getExpression()) builder.makeReturn(false, builder.accessChainLoad(convertGlslangToSpvType(node->getExpression()->getType()))); else - builder.makeReturn(); + builder.makeReturn(false); builder.clearAccessChain(); break; @@ -2528,14 +2526,21 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv // Sort out the operands // - mapping from glslang -> SPV // - there are extra SPV operands with no glslang source + // - compare-exchange swaps the value and comparator + // - compare-exchange has an extra memory semantics std::vector spvAtomicOperands; // hold the spv operands auto opIt = operands.begin(); // walk the glslang operands spvAtomicOperands.push_back(*(opIt++)); spvAtomicOperands.push_back(builder.makeUintConstant(spv::ScopeDevice)); // TBD: what is the correct scope? spvAtomicOperands.push_back(builder.makeUintConstant(spv::MemorySemanticsMaskNone)); // TBD: what are the correct memory semantics? + if (opCode == spv::OpAtomicCompareExchange) { + spvAtomicOperands.push_back(builder.makeUintConstant(spv::MemorySemanticsMaskNone)); // TBD: what are the correct memory semantics? + spvAtomicOperands.push_back(*(opIt + 1)); + spvAtomicOperands.push_back(*opIt); + opIt += 2; + } - // Add the rest of the operands, skipping the first one, which was dealt with above. - // For some ops, there are none, for some 1, for compare-exchange, 2. + // Add the rest of the operands, skipping any that were dealt with above. for (; opIt != operands.end(); ++opIt) spvAtomicOperands.push_back(*opIt); diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 9913b0b6..45328b54 100755 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -65,8 +65,7 @@ Builder::Builder(unsigned int userNumber) : builderNumber(userNumber << 16 | SpvBuilderMagic), buildPoint(0), uniqueId(0), - mainFunction(0), - stageExit(0) + mainFunction(0) { clearAccessChain(); } @@ -723,19 +722,10 @@ Function* Builder::makeMain() std::vector params; mainFunction = makeFunctionEntry(makeVoidType(), "main", params, &entry); - stageExit = new Block(getUniqueId(), *mainFunction); return mainFunction; } -// 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& paramTypes, Block **entry) { @@ -756,14 +746,9 @@ Function* Builder::makeFunctionEntry(Id returnType, const char* name, std::vecto } // Comments in header -void Builder::makeReturn(bool implicit, Id retVal, bool isMain) +void Builder::makeReturn(bool implicit, Id retVal) { - if (isMain && retVal) - MissingFunctionality("return value from main()"); - - if (isMain) - createBranch(stageExit); - else if (retVal) { + if (retVal) { Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue); inst->addIdOperand(retVal); buildPoint->addInstruction(inst); @@ -775,7 +760,7 @@ void Builder::makeReturn(bool implicit, Id retVal, bool isMain) } // Comments in header -void Builder::leaveFunction(bool main) +void Builder::leaveFunction() { Block* block = buildPoint; Function& function = buildPoint->getParent(); @@ -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 // explicit return, just remove it. function.popBlock(block); - } else if (main) - makeMainReturn(true); - else { - // We're get a return instruction at the end of the current block, + } else { + // We'll add a return instruction at the end of the current block, // 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 // followed by an unreachable block, which was handled above. @@ -805,9 +788,6 @@ void Builder::leaveFunction(bool main) } } } - - if (main) - closeMain(); } // Comments in header @@ -1234,6 +1214,23 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, b } } + // See if the result type is expecting a smeared result. + // This happens when a legacy shadow*() call is made, which + // gets a vec4 back instead of a float. + Id smearedType = resultType; + if (! isScalarType(resultType)) { + switch (opCode) { + case OpImageSampleDrefImplicitLod: + case OpImageSampleDrefExplicitLod: + case OpImageSampleProjDrefImplicitLod: + case OpImageSampleProjDrefExplicitLod: + resultType = getScalarTypeId(resultType); + break; + default: + break; + } + } + Instruction* textureInst = new Instruction(getUniqueId(), resultType, opCode); for (int op = 0; op < optArgNum; ++op) textureInst->addIdOperand(texArgs[op]); @@ -1244,7 +1241,14 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, b setPrecision(textureInst->getResultId(), precision); buildPoint->addInstruction(textureInst); - return textureInst->getResultId(); + Id resultId = textureInst->getResultId(); + + // When a smear is needed, do it, as per what was computed + // above when resultType was changed to a scalar type. + if (resultType != smearedType) + resultId = smearScalar(precision, resultId, smearedType); + + return resultId; } // Comments in header diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index f81f9ed2..e4835703 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -195,23 +195,16 @@ public: // Make the main function. 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. // Return the function, pass back the entry. Function* makeFunctionEntry(Id returnType, const char* name, std::vector& paramTypes, Block **entry = 0); - // Create a return. Pass whether it is a return form main, and the return - // value (if applicable). In the case of an implicit return, no post-return - // block is inserted. - void makeReturn(bool implicit = false, Id retVal = 0, bool isMain = false); + // Create a return. An 'implicit' return is one not appearing in the source + // code. In the case of an implicit return, no post-return block is inserted. + void makeReturn(bool implicit, Id retVal = 0); // Generate all the code needed to finish up a function. - void leaveFunction(bool main); + void leaveFunction(); // Create a discard. void makeDiscard(); @@ -516,7 +509,6 @@ protected: Block* buildPoint; Id uniqueId; Function* mainFunction; - Block* stageExit; AccessChain accessChain; // special blocks of instructions for output diff --git a/Test/330.frag b/Test/330.frag index a23ab664..a3301a2c 100644 --- a/Test/330.frag +++ b/Test/330.frag @@ -125,4 +125,18 @@ layout(location=0, index=1) out vec4 outVar4; // ERROR overlapping layout(location=27, index=0) in vec4 indexIn; // ERROR, not on in layout(location=0, index=0) in; // ERROR, not just on in layout(location=0, index=0) out; // ERROR, need a variable -layout(location=26, index=0) out indexBlock { int a; } indexBlockI; // ERROR, not on a block \ No newline at end of file +layout(location=26, index=0) out indexBlock { int a; } indexBlockI; // ERROR, not on a block + +uniform sampler1D samp1D; +uniform sampler2DShadow samp2Ds; + +void qlod() +{ + vec2 lod; + float pf; + vec2 pf2; + vec3 pf3; + + lod = textureQueryLod(samp1D, pf); // ERROR, not until 400 + lod = textureQueryLod(samp2Ds, pf2); // ERROR, not until 400 +} diff --git a/Test/400.frag b/Test/400.frag index 7ca965fb..a2c4691a 100644 --- a/Test/400.frag +++ b/Test/400.frag @@ -138,4 +138,48 @@ void interp() float f; interpolateAtCentroid(f); // ERROR, not interpolant interpolateAtSample(outp, 0); // ERROR, not interpolant -} \ No newline at end of file +} + +uniform sampler1D samp1D; +uniform isampler2D isamp2D; +uniform usampler3D usamp3D; +uniform samplerCube sampCube; +uniform isampler1DArray isamp1DA; +uniform usampler2DArray usamp2DA; +uniform isamplerCubeArray isampCubeA; + +uniform sampler1DShadow samp1Ds; +uniform sampler2DShadow samp2Ds; +uniform samplerCubeShadow sampCubes; +uniform sampler1DArrayShadow samp1DAs; +uniform sampler2DArrayShadow samp2DAs; +uniform samplerCubeArrayShadow sampCubeAs; + +uniform samplerBuffer sampBuf; +uniform sampler2DRect sampRect; + +void qlod() +{ + vec2 lod; + float pf; + vec2 pf2; + vec3 pf3; + + lod = textureQueryLod(samp1D, pf); + lod = textureQueryLod(isamp2D, pf2); + lod = textureQueryLod(usamp3D, pf3); + lod = textureQueryLod(sampCube, pf3); + lod = textureQueryLod(isamp1DA, pf); + lod = textureQueryLod(usamp2DA, pf2); + lod = textureQueryLod(isampCubeA, pf3); + + lod = textureQueryLod(samp1Ds, pf); + lod = textureQueryLod(samp2Ds, pf2); + lod = textureQueryLod(sampCubes, pf3); + lod = textureQueryLod(samp1DAs, pf); + lod = textureQueryLod(samp2DAs, pf2); + lod = textureQueryLod(sampCubeAs, pf3); + + lod = textureQueryLod(sampBuf, pf); // ERROR + lod = textureQueryLod(sampRect, pf2); // ERROR +} diff --git a/Test/400.geom b/Test/400.geom index 7fe9fc1c..e2ca9b91 100644 --- a/Test/400.geom +++ b/Test/400.geom @@ -101,3 +101,17 @@ void bits() } layout(location = 7, index = 1) out vec4 indexedOut; + +uniform sampler1D samp1D; +uniform sampler2DShadow samp2Ds; + +void qlod() +{ + vec2 lod; + float pf; + vec2 pf2; + vec3 pf3; + + lod = textureQueryLod(samp1D, pf); // ERROR, only in fragment + lod = textureQueryLod(samp2Ds, pf2); // ERROR, only in fragment +} diff --git a/Test/420.vert b/Test/420.vert index 5007e20c..49035ea4 100644 --- a/Test/420.vert +++ b/Test/420.vert @@ -146,3 +146,14 @@ layout(r8ui) uniform iimage2D i6bad; // ERROR, type mismatch uniform offcheck { layout(offset = 16) int foo; // ERROR } offcheckI; + +uniform sampler1D samp1D; +uniform sampler1DShadow samp1Ds; + +void qlod() +{ + int levels; + + levels = textureQueryLevels(samp1D); // ERROR, not until 430 + levels = textureQueryLevels(samp1Ds); // ERROR, not until 430 +} \ No newline at end of file diff --git a/Test/430.vert b/Test/430.vert index 64dd42f2..84c32208 100644 --- a/Test/430.vert +++ b/Test/430.vert @@ -180,3 +180,44 @@ void fooq2() s += imageSamples(ii2dms); s += imageSamples(i2dmsa); } + +uniform sampler1D samp1D; +uniform usampler2D usamp2D; +uniform isampler3D isamp3D; +uniform isamplerCube isampCube; +uniform isampler1DArray isamp1DA; +uniform sampler2DArray samp2DA; +uniform usamplerCubeArray usampCubeA; + +uniform sampler1DShadow samp1Ds; +uniform sampler2DShadow samp2Ds; +uniform samplerCubeShadow sampCubes; +uniform sampler1DArrayShadow samp1DAs; +uniform sampler2DArrayShadow samp2DAs; +uniform samplerCubeArrayShadow sampCubeAs; + +uniform samplerBuffer sampBuf; +uniform sampler2DRect sampRect; + +void qlod() +{ + int levels; + + levels = textureQueryLevels(samp1D); + levels = textureQueryLevels(usamp2D); + levels = textureQueryLevels(isamp3D); + levels = textureQueryLevels(isampCube); + levels = textureQueryLevels(isamp1DA); + levels = textureQueryLevels(samp2DA); + levels = textureQueryLevels(usampCubeA); + + levels = textureQueryLevels(samp1Ds); + levels = textureQueryLevels(samp2Ds); + levels = textureQueryLevels(sampCubes); + levels = textureQueryLevels(samp1DAs); + levels = textureQueryLevels(samp2DAs); + levels = textureQueryLevels(sampCubeAs); + + levels = textureQueryLevels(sampBuf); // ERROR + levels = textureQueryLevels(sampRect); // ERROR +} diff --git a/Test/baseResults/330.frag.out b/Test/baseResults/330.frag.out index c3bb92c5..2def6c7b 100644 --- a/Test/baseResults/330.frag.out +++ b/Test/baseResults/330.frag.out @@ -33,7 +33,11 @@ ERROR: 0:126: 'index' : can only be used on an output ERROR: 0:126: 'location/component/index' : cannot declare a default, use a full declaration ERROR: 0:127: 'location/component/index' : cannot declare a default, use a full declaration ERROR: 0:128: 'output block' : not supported in this stage: fragment -ERROR: 34 compilation errors. No code generated. +ERROR: 0:140: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:140: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float' +ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:141: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float' +ERROR: 38 compilation errors. No code generated. Shader version: 330 @@ -70,6 +74,11 @@ ERROR: node is still EOpNull! 0:24 move second child to first child (temp 4-component vector of float) 0:24 'outVar' (layout(location=0 index=0 ) out 4-component vector of float) 0:24 'inVar' (smooth in 4-component vector of float) +0:133 Function Definition: qlod( (global void) +0:133 Function Parameters: +0:? Sequence +0:140 'lod' (temp 2-component vector of float) +0:141 'lod' (temp 2-component vector of float) 0:? Linker Objects 0:? 'inVar' (smooth in 4-component vector of float) 0:? 'outVar' (layout(location=0 index=0 ) out 4-component vector of float) @@ -97,11 +106,13 @@ ERROR: node is still EOpNull! 0:? 'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2}) 0:? 's' (layout(location=33 ) smooth in structure{global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A}) 0:? 'anon@2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k}) -0:? 'outVar2' (layout(location=63 index=0 ) out 4-component vector of float) +0:? 'outVar2' (layout(location=4095 index=0 ) out 4-component vector of float) 0:? 'outVar3' (layout(location=0 index=1 ) out 4-component vector of float) 0:? 'outVar4' (layout(location=0 index=1 ) out 4-component vector of float) 0:? 'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float) 0:? 'indexBlockI' (layout(location=26 index=0 ) out block{out int a}) +0:? 'samp1D' (uniform sampler1D) +0:? 'samp2Ds' (uniform sampler2DShadow) Linked fragment stage: @@ -143,6 +154,11 @@ ERROR: node is still EOpNull! 0:24 move second child to first child (temp 4-component vector of float) 0:24 'outVar' (layout(location=0 index=0 ) out 4-component vector of float) 0:24 'inVar' (smooth in 4-component vector of float) +0:133 Function Definition: qlod( (global void) +0:133 Function Parameters: +0:? Sequence +0:140 'lod' (temp 2-component vector of float) +0:141 'lod' (temp 2-component vector of float) 0:? Linker Objects 0:? 'inVar' (smooth in 4-component vector of float) 0:? 'outVar' (layout(location=0 index=0 ) out 4-component vector of float) @@ -170,9 +186,11 @@ ERROR: node is still EOpNull! 0:? 'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2}) 0:? 's' (layout(location=33 ) smooth in structure{global 3-component vector of float a, global 2X2 matrix of float b, global 2-element array of 4-component vector of float c, temp 2-component vector of float A}) 0:? 'anon@2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k}) -0:? 'outVar2' (layout(location=63 index=0 ) out 4-component vector of float) +0:? 'outVar2' (layout(location=4095 index=0 ) out 4-component vector of float) 0:? 'outVar3' (layout(location=0 index=1 ) out 4-component vector of float) 0:? 'outVar4' (layout(location=0 index=1 ) out 4-component vector of float) 0:? 'indexIn' (layout(location=27 index=0 ) smooth in 4-component vector of float) 0:? 'indexBlockI' (layout(location=26 index=0 ) out block{out int a}) +0:? 'samp1D' (uniform sampler1D) +0:? 'samp2Ds' (uniform sampler2DShadow) diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out index 5ecb9082..7e09e8af 100644 --- a/Test/baseResults/400.frag.out +++ b/Test/baseResults/400.frag.out @@ -30,7 +30,11 @@ ERROR: 0:135: 'interpolateAtOffset' : first argument must be an interpolant, or ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element ERROR: 0:139: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element ERROR: 0:140: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element -ERROR: 30 compilation errors. No code generated. +ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:183: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float' +ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:184: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float' +ERROR: 34 compilation errors. No code generated. Shader version: 400 @@ -402,6 +406,76 @@ ERROR: node is still EOpNull! 0:140 'outp' (out 4-component vector of float) 0:140 Constant: 0:140 0 (const int) +0:161 Function Definition: qlod( (global void) +0:161 Function Parameters: +0:? Sequence +0:168 move second child to first child (temp 2-component vector of float) +0:168 'lod' (temp 2-component vector of float) +0:168 textureQueryLod (global 2-component vector of float) +0:168 'samp1D' (uniform sampler1D) +0:168 'pf' (temp float) +0:169 move second child to first child (temp 2-component vector of float) +0:169 'lod' (temp 2-component vector of float) +0:169 textureQueryLod (global 2-component vector of float) +0:169 'isamp2D' (uniform isampler2D) +0:169 'pf2' (temp 2-component vector of float) +0:170 move second child to first child (temp 2-component vector of float) +0:170 'lod' (temp 2-component vector of float) +0:170 textureQueryLod (global 2-component vector of float) +0:170 'usamp3D' (uniform usampler3D) +0:170 'pf3' (temp 3-component vector of float) +0:171 move second child to first child (temp 2-component vector of float) +0:171 'lod' (temp 2-component vector of float) +0:171 textureQueryLod (global 2-component vector of float) +0:171 'sampCube' (uniform samplerCube) +0:171 'pf3' (temp 3-component vector of float) +0:172 move second child to first child (temp 2-component vector of float) +0:172 'lod' (temp 2-component vector of float) +0:172 textureQueryLod (global 2-component vector of float) +0:172 'isamp1DA' (uniform isampler1DArray) +0:172 'pf' (temp float) +0:173 move second child to first child (temp 2-component vector of float) +0:173 'lod' (temp 2-component vector of float) +0:173 textureQueryLod (global 2-component vector of float) +0:173 'usamp2DA' (uniform usampler2DArray) +0:173 'pf2' (temp 2-component vector of float) +0:174 move second child to first child (temp 2-component vector of float) +0:174 'lod' (temp 2-component vector of float) +0:174 textureQueryLod (global 2-component vector of float) +0:174 'isampCubeA' (uniform isamplerCubeArray) +0:174 'pf3' (temp 3-component vector of float) +0:176 move second child to first child (temp 2-component vector of float) +0:176 'lod' (temp 2-component vector of float) +0:176 textureQueryLod (global 2-component vector of float) +0:176 'samp1Ds' (uniform sampler1DShadow) +0:176 'pf' (temp float) +0:177 move second child to first child (temp 2-component vector of float) +0:177 'lod' (temp 2-component vector of float) +0:177 textureQueryLod (global 2-component vector of float) +0:177 'samp2Ds' (uniform sampler2DShadow) +0:177 'pf2' (temp 2-component vector of float) +0:178 move second child to first child (temp 2-component vector of float) +0:178 'lod' (temp 2-component vector of float) +0:178 textureQueryLod (global 2-component vector of float) +0:178 'sampCubes' (uniform samplerCubeShadow) +0:178 'pf3' (temp 3-component vector of float) +0:179 move second child to first child (temp 2-component vector of float) +0:179 'lod' (temp 2-component vector of float) +0:179 textureQueryLod (global 2-component vector of float) +0:179 'samp1DAs' (uniform sampler1DArrayShadow) +0:179 'pf' (temp float) +0:180 move second child to first child (temp 2-component vector of float) +0:180 'lod' (temp 2-component vector of float) +0:180 textureQueryLod (global 2-component vector of float) +0:180 'samp2DAs' (uniform sampler2DArrayShadow) +0:180 'pf2' (temp 2-component vector of float) +0:181 move second child to first child (temp 2-component vector of float) +0:181 'lod' (temp 2-component vector of float) +0:181 textureQueryLod (global 2-component vector of float) +0:181 'sampCubeAs' (uniform samplerCubeArrayShadow) +0:181 'pf3' (temp 3-component vector of float) +0:183 'lod' (temp 2-component vector of float) +0:184 'lod' (temp 2-component vector of float) 0:? Linker Objects 0:? 'c2D' (smooth in 2-component vector of float) 0:? 'i' (flat in int) @@ -432,6 +506,21 @@ ERROR: node is still EOpNull! 0:? 'colorfc' (centroid flat in 2-component vector of float) 0:? 's1' (smooth in structure{global float x}) 0:? 's2' (sample temp structure{global float x}) +0:? 'samp1D' (uniform sampler1D) +0:? 'isamp2D' (uniform isampler2D) +0:? 'usamp3D' (uniform usampler3D) +0:? 'sampCube' (uniform samplerCube) +0:? 'isamp1DA' (uniform isampler1DArray) +0:? 'usamp2DA' (uniform usampler2DArray) +0:? 'isampCubeA' (uniform isamplerCubeArray) +0:? 'samp1Ds' (uniform sampler1DShadow) +0:? 'samp2Ds' (uniform sampler2DShadow) +0:? 'sampCubes' (uniform samplerCubeShadow) +0:? 'samp1DAs' (uniform sampler1DArrayShadow) +0:? 'samp2DAs' (uniform sampler2DArrayShadow) +0:? 'sampCubeAs' (uniform samplerCubeArrayShadow) +0:? 'sampBuf' (uniform samplerBuffer) +0:? 'sampRect' (uniform sampler2DRect) Linked fragment stage: @@ -806,6 +895,76 @@ ERROR: node is still EOpNull! 0:140 'outp' (out 4-component vector of float) 0:140 Constant: 0:140 0 (const int) +0:161 Function Definition: qlod( (global void) +0:161 Function Parameters: +0:? Sequence +0:168 move second child to first child (temp 2-component vector of float) +0:168 'lod' (temp 2-component vector of float) +0:168 textureQueryLod (global 2-component vector of float) +0:168 'samp1D' (uniform sampler1D) +0:168 'pf' (temp float) +0:169 move second child to first child (temp 2-component vector of float) +0:169 'lod' (temp 2-component vector of float) +0:169 textureQueryLod (global 2-component vector of float) +0:169 'isamp2D' (uniform isampler2D) +0:169 'pf2' (temp 2-component vector of float) +0:170 move second child to first child (temp 2-component vector of float) +0:170 'lod' (temp 2-component vector of float) +0:170 textureQueryLod (global 2-component vector of float) +0:170 'usamp3D' (uniform usampler3D) +0:170 'pf3' (temp 3-component vector of float) +0:171 move second child to first child (temp 2-component vector of float) +0:171 'lod' (temp 2-component vector of float) +0:171 textureQueryLod (global 2-component vector of float) +0:171 'sampCube' (uniform samplerCube) +0:171 'pf3' (temp 3-component vector of float) +0:172 move second child to first child (temp 2-component vector of float) +0:172 'lod' (temp 2-component vector of float) +0:172 textureQueryLod (global 2-component vector of float) +0:172 'isamp1DA' (uniform isampler1DArray) +0:172 'pf' (temp float) +0:173 move second child to first child (temp 2-component vector of float) +0:173 'lod' (temp 2-component vector of float) +0:173 textureQueryLod (global 2-component vector of float) +0:173 'usamp2DA' (uniform usampler2DArray) +0:173 'pf2' (temp 2-component vector of float) +0:174 move second child to first child (temp 2-component vector of float) +0:174 'lod' (temp 2-component vector of float) +0:174 textureQueryLod (global 2-component vector of float) +0:174 'isampCubeA' (uniform isamplerCubeArray) +0:174 'pf3' (temp 3-component vector of float) +0:176 move second child to first child (temp 2-component vector of float) +0:176 'lod' (temp 2-component vector of float) +0:176 textureQueryLod (global 2-component vector of float) +0:176 'samp1Ds' (uniform sampler1DShadow) +0:176 'pf' (temp float) +0:177 move second child to first child (temp 2-component vector of float) +0:177 'lod' (temp 2-component vector of float) +0:177 textureQueryLod (global 2-component vector of float) +0:177 'samp2Ds' (uniform sampler2DShadow) +0:177 'pf2' (temp 2-component vector of float) +0:178 move second child to first child (temp 2-component vector of float) +0:178 'lod' (temp 2-component vector of float) +0:178 textureQueryLod (global 2-component vector of float) +0:178 'sampCubes' (uniform samplerCubeShadow) +0:178 'pf3' (temp 3-component vector of float) +0:179 move second child to first child (temp 2-component vector of float) +0:179 'lod' (temp 2-component vector of float) +0:179 textureQueryLod (global 2-component vector of float) +0:179 'samp1DAs' (uniform sampler1DArrayShadow) +0:179 'pf' (temp float) +0:180 move second child to first child (temp 2-component vector of float) +0:180 'lod' (temp 2-component vector of float) +0:180 textureQueryLod (global 2-component vector of float) +0:180 'samp2DAs' (uniform sampler2DArrayShadow) +0:180 'pf2' (temp 2-component vector of float) +0:181 move second child to first child (temp 2-component vector of float) +0:181 'lod' (temp 2-component vector of float) +0:181 textureQueryLod (global 2-component vector of float) +0:181 'sampCubeAs' (uniform samplerCubeArrayShadow) +0:181 'pf3' (temp 3-component vector of float) +0:183 'lod' (temp 2-component vector of float) +0:184 'lod' (temp 2-component vector of float) 0:? Linker Objects 0:? 'c2D' (smooth in 2-component vector of float) 0:? 'i' (flat in int) @@ -836,4 +995,19 @@ ERROR: node is still EOpNull! 0:? 'colorfc' (centroid flat in 2-component vector of float) 0:? 's1' (smooth in structure{global float x}) 0:? 's2' (sample temp structure{global float x}) +0:? 'samp1D' (uniform sampler1D) +0:? 'isamp2D' (uniform isampler2D) +0:? 'usamp3D' (uniform usampler3D) +0:? 'sampCube' (uniform samplerCube) +0:? 'isamp1DA' (uniform isampler1DArray) +0:? 'usamp2DA' (uniform usampler2DArray) +0:? 'isampCubeA' (uniform isamplerCubeArray) +0:? 'samp1Ds' (uniform sampler1DShadow) +0:? 'samp2Ds' (uniform sampler2DShadow) +0:? 'sampCubes' (uniform samplerCubeShadow) +0:? 'samp1DAs' (uniform sampler1DArrayShadow) +0:? 'samp2DAs' (uniform sampler2DArrayShadow) +0:? 'sampCubeAs' (uniform samplerCubeArrayShadow) +0:? 'sampBuf' (uniform samplerBuffer) +0:? 'sampRect' (uniform sampler2DRect) diff --git a/Test/baseResults/400.geom.out b/Test/baseResults/400.geom.out index 09e0b66b..856bf7f1 100644 --- a/Test/baseResults/400.geom.out +++ b/Test/baseResults/400.geom.out @@ -19,7 +19,11 @@ ERROR: 0:65: 'invocations' : can only apply to 'in' ERROR: 0:67: 'in' : type must be an array: inbls ERROR: 0:71: 'triangles' : inconsistent input primitive for array size of inbla ERROR: 0:103: 'index' : there is no such layout identifier for this stage taking an assigned value -ERROR: 19 compilation errors. No code generated. +ERROR: 0:115: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:115: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float' +ERROR: 0:116: 'textureQueryLod' : no matching overloaded function found +ERROR: 0:116: 'assign' : cannot convert from 'const float' to 'temp 2-component vector of float' +ERROR: 23 compilation errors. No code generated. Shader version: 400 @@ -165,6 +169,11 @@ ERROR: node is still EOpNull! 0:100 'i2' (temp 2-component vector of int) 0:100 findMSB (global 2-component vector of int) 0:100 'u2' (temp 2-component vector of uint) +0:108 Function Definition: qlod( (global void) +0:108 Function Parameters: +0:? Sequence +0:115 'lod' (temp 2-component vector of float) +0:116 'lod' (temp 2-component vector of float) 0:? Linker Objects 0:? 'bn' (in 3-element array of block{in int a}) 0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) @@ -182,6 +191,8 @@ ERROR: node is still EOpNull! 0:? 'inbls' (in block{in int a}) 0:? 'inbla' (in 17-element array of block{in int a}) 0:? 'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float) +0:? 'samp1D' (uniform sampler1D) +0:? 'samp2Ds' (uniform sampler2DShadow) Linked geometry stage: @@ -331,6 +342,11 @@ ERROR: node is still EOpNull! 0:100 'i2' (temp 2-component vector of int) 0:100 findMSB (global 2-component vector of int) 0:100 'u2' (temp 2-component vector of uint) +0:108 Function Definition: qlod( (global void) +0:108 Function Parameters: +0:? Sequence +0:115 'lod' (temp 2-component vector of float) +0:116 'lod' (temp 2-component vector of float) 0:? Linker Objects 0:? 'bn' (in 3-element array of block{in int a}) 0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) @@ -348,4 +364,6 @@ ERROR: node is still EOpNull! 0:? 'inbls' (in block{in int a}) 0:? 'inbla' (in 17-element array of block{in int a}) 0:? 'indexedOut' (layout(location=7 stream=0 ) out 4-component vector of float) +0:? 'samp1D' (uniform sampler1D) +0:? 'samp2Ds' (uniform sampler2DShadow) diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out index 13c61eb9..2901c396 100644 --- a/Test/baseResults/420.vert.out +++ b/Test/baseResults/420.vert.out @@ -49,7 +49,11 @@ ERROR: 0:142: 'r8_snorm' : does not apply to signed integer images ERROR: 0:143: 'rgba32ui' : does not apply to signed integer images ERROR: 0:144: 'r8ui' : does not apply to signed integer images ERROR: 0:147: 'offset on block member' : not supported for this version or the enabled extensions -ERROR: 48 compilation errors. No code generated. +ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found +ERROR: 0:157: 'assign' : cannot convert from 'const float' to 'temp int' +ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found +ERROR: 0:158: 'assign' : cannot convert from 'const float' to 'temp int' +ERROR: 52 compilation errors. No code generated. Shader version: 420 @@ -239,6 +243,11 @@ ERROR: node is still EOpNull! 0:135 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D) 0:136 Function Call: passr(iI21; (global void) 0:136 'iimg2D' (layout(r32i ) uniform iimage2D) +0:153 Function Definition: qlod( (global void) +0:153 Function Parameters: +0:? Sequence +0:157 'levels' (temp int) +0:158 'levels' (temp int) 0:? Linker Objects 0:? 'v2' (smooth out 2-component vector of float) 0:? 'bad' (in 10-element array of 4-component vector of float) @@ -290,6 +299,8 @@ ERROR: node is still EOpNull! 0:? 'i5bad' (layout(rgba32ui ) uniform iimage2D) 0:? 'i6bad' (layout(r8ui ) uniform iimage2D) 0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo}) +0:? 'samp1D' (uniform sampler1D) +0:? 'samp1Ds' (uniform sampler1DShadow) 0:? 'gl_VertexID' (gl_VertexId int VertexId) 0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) @@ -484,6 +495,11 @@ ERROR: node is still EOpNull! 0:135 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D) 0:136 Function Call: passr(iI21; (global void) 0:136 'iimg2D' (layout(r32i ) uniform iimage2D) +0:153 Function Definition: qlod( (global void) +0:153 Function Parameters: +0:? Sequence +0:157 'levels' (temp int) +0:158 'levels' (temp int) 0:? Linker Objects 0:? 'v2' (smooth out 2-component vector of float) 0:? 'bad' (in 10-element array of 4-component vector of float) @@ -535,6 +551,8 @@ ERROR: node is still EOpNull! 0:? 'i5bad' (layout(rgba32ui ) uniform iimage2D) 0:? 'i6bad' (layout(r8ui ) uniform iimage2D) 0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo}) +0:? 'samp1D' (uniform sampler1D) +0:? 'samp1Ds' (uniform sampler1DShadow) 0:? 'gl_VertexID' (gl_VertexId int VertexId) 0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out index 02cd5124..5242983c 100644 --- a/Test/baseResults/430.vert.out +++ b/Test/baseResults/430.vert.out @@ -59,7 +59,11 @@ ERROR: 0:168: 'textureSamples and imageSamples' : not supported for this version ERROR: 0:169: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions ERROR: 0:170: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions ERROR: 0:171: 'textureSamples and imageSamples' : not supported for this version or the enabled extensions -ERROR: 59 compilation errors. No code generated. +ERROR: 0:221: 'textureQueryLevels' : no matching overloaded function found +ERROR: 0:221: 'assign' : cannot convert from 'const float' to 'temp int' +ERROR: 0:222: 'textureQueryLevels' : no matching overloaded function found +ERROR: 0:222: 'assign' : cannot convert from 'const float' to 'temp int' +ERROR: 63 compilation errors. No code generated. Shader version: 430 @@ -139,6 +143,63 @@ ERROR: node is still EOpNull! 0:181 's' (temp int) 0:181 imageQuerySamples (global int) 0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray) +0:202 Function Definition: qlod( (global void) +0:202 Function Parameters: +0:? Sequence +0:206 move second child to first child (temp int) +0:206 'levels' (temp int) +0:206 textureQueryLevels (global int) +0:206 'samp1D' (uniform sampler1D) +0:207 move second child to first child (temp int) +0:207 'levels' (temp int) +0:207 textureQueryLevels (global int) +0:207 'usamp2D' (uniform usampler2D) +0:208 move second child to first child (temp int) +0:208 'levels' (temp int) +0:208 textureQueryLevels (global int) +0:208 'isamp3D' (uniform isampler3D) +0:209 move second child to first child (temp int) +0:209 'levels' (temp int) +0:209 textureQueryLevels (global int) +0:209 'isampCube' (uniform isamplerCube) +0:210 move second child to first child (temp int) +0:210 'levels' (temp int) +0:210 textureQueryLevels (global int) +0:210 'isamp1DA' (uniform isampler1DArray) +0:211 move second child to first child (temp int) +0:211 'levels' (temp int) +0:211 textureQueryLevels (global int) +0:211 'samp2DA' (uniform sampler2DArray) +0:212 move second child to first child (temp int) +0:212 'levels' (temp int) +0:212 textureQueryLevels (global int) +0:212 'usampCubeA' (uniform usamplerCubeArray) +0:214 move second child to first child (temp int) +0:214 'levels' (temp int) +0:214 textureQueryLevels (global int) +0:214 'samp1Ds' (uniform sampler1DShadow) +0:215 move second child to first child (temp int) +0:215 'levels' (temp int) +0:215 textureQueryLevels (global int) +0:215 'samp2Ds' (uniform sampler2DShadow) +0:216 move second child to first child (temp int) +0:216 'levels' (temp int) +0:216 textureQueryLevels (global int) +0:216 'sampCubes' (uniform samplerCubeShadow) +0:217 move second child to first child (temp int) +0:217 'levels' (temp int) +0:217 textureQueryLevels (global int) +0:217 'samp1DAs' (uniform sampler1DArrayShadow) +0:218 move second child to first child (temp int) +0:218 'levels' (temp int) +0:218 textureQueryLevels (global int) +0:218 'samp2DAs' (uniform sampler2DArrayShadow) +0:219 move second child to first child (temp int) +0:219 'levels' (temp int) +0:219 textureQueryLevels (global int) +0:219 'sampCubeAs' (uniform samplerCubeArrayShadow) +0:221 'levels' (temp int) +0:222 'levels' (temp int) 0:? Linker Objects 0:? 'v4' (layout(location=3 ) temp 4-component vector of float) 0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float) @@ -184,6 +245,21 @@ ERROR: node is still EOpNull! 0:? 'us2dmsa' (uniform usampler2DMSArray) 0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS) 0:? 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray) +0:? 'samp1D' (uniform sampler1D) +0:? 'usamp2D' (uniform usampler2D) +0:? 'isamp3D' (uniform isampler3D) +0:? 'isampCube' (uniform isamplerCube) +0:? 'isamp1DA' (uniform isampler1DArray) +0:? 'samp2DA' (uniform sampler2DArray) +0:? 'usampCubeA' (uniform usamplerCubeArray) +0:? 'samp1Ds' (uniform sampler1DShadow) +0:? 'samp2Ds' (uniform sampler2DShadow) +0:? 'sampCubes' (uniform samplerCubeShadow) +0:? 'samp1DAs' (uniform sampler1DArrayShadow) +0:? 'samp2DAs' (uniform sampler2DArrayShadow) +0:? 'sampCubeAs' (uniform samplerCubeArrayShadow) +0:? 'sampBuf' (uniform samplerBuffer) +0:? 'sampRect' (uniform sampler2DRect) 0:? 'gl_VertexID' (gl_VertexId int VertexId) 0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) @@ -271,6 +347,63 @@ ERROR: node is still EOpNull! 0:181 's' (temp int) 0:181 imageQuerySamples (global int) 0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray) +0:202 Function Definition: qlod( (global void) +0:202 Function Parameters: +0:? Sequence +0:206 move second child to first child (temp int) +0:206 'levels' (temp int) +0:206 textureQueryLevels (global int) +0:206 'samp1D' (uniform sampler1D) +0:207 move second child to first child (temp int) +0:207 'levels' (temp int) +0:207 textureQueryLevels (global int) +0:207 'usamp2D' (uniform usampler2D) +0:208 move second child to first child (temp int) +0:208 'levels' (temp int) +0:208 textureQueryLevels (global int) +0:208 'isamp3D' (uniform isampler3D) +0:209 move second child to first child (temp int) +0:209 'levels' (temp int) +0:209 textureQueryLevels (global int) +0:209 'isampCube' (uniform isamplerCube) +0:210 move second child to first child (temp int) +0:210 'levels' (temp int) +0:210 textureQueryLevels (global int) +0:210 'isamp1DA' (uniform isampler1DArray) +0:211 move second child to first child (temp int) +0:211 'levels' (temp int) +0:211 textureQueryLevels (global int) +0:211 'samp2DA' (uniform sampler2DArray) +0:212 move second child to first child (temp int) +0:212 'levels' (temp int) +0:212 textureQueryLevels (global int) +0:212 'usampCubeA' (uniform usamplerCubeArray) +0:214 move second child to first child (temp int) +0:214 'levels' (temp int) +0:214 textureQueryLevels (global int) +0:214 'samp1Ds' (uniform sampler1DShadow) +0:215 move second child to first child (temp int) +0:215 'levels' (temp int) +0:215 textureQueryLevels (global int) +0:215 'samp2Ds' (uniform sampler2DShadow) +0:216 move second child to first child (temp int) +0:216 'levels' (temp int) +0:216 textureQueryLevels (global int) +0:216 'sampCubes' (uniform samplerCubeShadow) +0:217 move second child to first child (temp int) +0:217 'levels' (temp int) +0:217 textureQueryLevels (global int) +0:217 'samp1DAs' (uniform sampler1DArrayShadow) +0:218 move second child to first child (temp int) +0:218 'levels' (temp int) +0:218 textureQueryLevels (global int) +0:218 'samp2DAs' (uniform sampler2DArrayShadow) +0:219 move second child to first child (temp int) +0:219 'levels' (temp int) +0:219 textureQueryLevels (global int) +0:219 'sampCubeAs' (uniform samplerCubeArrayShadow) +0:221 'levels' (temp int) +0:222 'levels' (temp int) 0:? Linker Objects 0:? 'v4' (layout(location=3 ) temp 4-component vector of float) 0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float) @@ -316,6 +449,21 @@ ERROR: node is still EOpNull! 0:? 'us2dmsa' (uniform usampler2DMSArray) 0:? 'ii2dms' (layout(rgba32i ) uniform iimage2DMS) 0:? 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray) +0:? 'samp1D' (uniform sampler1D) +0:? 'usamp2D' (uniform usampler2D) +0:? 'isamp3D' (uniform isampler3D) +0:? 'isampCube' (uniform isamplerCube) +0:? 'isamp1DA' (uniform isampler1DArray) +0:? 'samp2DA' (uniform sampler2DArray) +0:? 'usampCubeA' (uniform usamplerCubeArray) +0:? 'samp1Ds' (uniform sampler1DShadow) +0:? 'samp2Ds' (uniform sampler2DShadow) +0:? 'sampCubes' (uniform samplerCubeShadow) +0:? 'samp1DAs' (uniform sampler1DArrayShadow) +0:? 'samp2DAs' (uniform sampler2DArrayShadow) +0:? 'sampCubeAs' (uniform samplerCubeArrayShadow) +0:? 'sampBuf' (uniform samplerBuffer) +0:? 'sampRect' (uniform sampler2DRect) 0:? 'gl_VertexID' (gl_VertexId int VertexId) 0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out index b4d85b1b..0dfecada 100644 --- a/Test/baseResults/440.vert.out +++ b/Test/baseResults/440.vert.out @@ -76,7 +76,7 @@ ERROR: node is still EOpNull! 0:? 'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float) 0:? 'Ss' (layout(location=33 component=1 ) smooth out structure{global int a}) 0:? 'bb' (layout(location=34 component=1 ) out block{out int a}) -0:? 'bc' (layout(location=63 component=1 ) smooth out float) +0:? 'bc' (layout(location=4095 component=1 ) smooth out float) 0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss}) 0:? 'be' (layout(location=50 component=3 ) smooth out int) 0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float) @@ -144,7 +144,7 @@ ERROR: node is still EOpNull! 0:? 'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float) 0:? 'Ss' (layout(location=33 component=1 ) smooth out structure{global int a}) 0:? 'bb' (layout(location=34 component=1 ) out block{out int a}) -0:? 'bc' (layout(location=63 component=1 ) smooth out float) +0:? 'bc' (layout(location=4095 component=1 ) smooth out float) 0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss}) 0:? 'be' (layout(location=50 component=3 ) smooth out int) 0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float) diff --git a/Test/baseResults/spv.100ops.frag.out b/Test/baseResults/spv.100ops.frag.out index 45e733c8..241c6ce3 100755 --- a/Test/baseResults/spv.100ops.frag.out +++ b/Test/baseResults/spv.100ops.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 48 +// Id's are bound by 47 Source ESSL 100 Capability Shader @@ -14,75 +14,73 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "foo(" - Name 12 "face1" - Name 14 "face2" - Name 18 "z" - Name 22 "low" - Name 27 "high" - Name 37 "gl_FragColor" - Decorate 12(face1) RelaxedPrecision - Decorate 14(face2) RelaxedPrecision - Decorate 18(z) RelaxedPrecision - Decorate 22(low) RelaxedPrecision - Decorate 27(high) RelaxedPrecision - Decorate 37(gl_FragColor) RelaxedPrecision - Decorate 37(gl_FragColor) BuiltIn FragColor + Name 8 "foo(" + Name 11 "face1" + Name 13 "face2" + Name 17 "z" + Name 21 "low" + Name 26 "high" + Name 36 "gl_FragColor" + Decorate 11(face1) RelaxedPrecision + Decorate 13(face2) RelaxedPrecision + Decorate 17(z) RelaxedPrecision + Decorate 21(low) RelaxedPrecision + Decorate 26(high) RelaxedPrecision + Decorate 36(gl_FragColor) RelaxedPrecision + Decorate 36(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeFunction 7(float) - 11: TypePointer PrivateGlobal 7(float) - 12(face1): 11(ptr) Variable PrivateGlobal - 13: 7(float) Constant 1093664768 - 14(face2): 11(ptr) Variable PrivateGlobal - 15: 7(float) Constant 3221225472 - 16: TypeInt 32 1 - 17: TypePointer Function 16(int) - 19: 16(int) Constant 3 - 20: 16(int) Constant 2 - 21: TypePointer UniformConstant 16(int) - 22(low): 21(ptr) Variable UniformConstant - 25: 16(int) Constant 1 - 27(high): 21(ptr) Variable UniformConstant - 29: TypeBool - 35: TypeVector 7(float) 4 - 36: TypePointer Output 35(fvec4) -37(gl_FragColor): 36(ptr) Variable Output + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypePointer PrivateGlobal 6(float) + 11(face1): 10(ptr) Variable PrivateGlobal + 12: 6(float) Constant 1093664768 + 13(face2): 10(ptr) Variable PrivateGlobal + 14: 6(float) Constant 3221225472 + 15: TypeInt 32 1 + 16: TypePointer Function 15(int) + 18: 15(int) Constant 3 + 19: 15(int) Constant 2 + 20: TypePointer UniformConstant 15(int) + 21(low): 20(ptr) Variable UniformConstant + 24: 15(int) Constant 1 + 26(high): 20(ptr) Variable UniformConstant + 28: TypeBool + 34: TypeVector 6(float) 4 + 35: TypePointer Output 34(fvec4) +36(gl_FragColor): 35(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 18(z): 17(ptr) Variable Function - Store 12(face1) 13 - Store 14(face2) 15 - Store 18(z) 19 - 23: 16(int) Load 22(low) - 24: 16(int) IMul 20 23 - 26: 16(int) IAdd 24 25 - 28: 16(int) Load 27(high) - 30: 29(bool) SLessThan 26 28 - SelectionMerge 32 None - BranchConditional 30 31 32 - 31: Label - 33: 16(int) Load 18(z) - 34: 16(int) IAdd 33 25 - Store 18(z) 34 - Branch 32 - 32: Label - 38: 7(float) Load 12(face1) - 39: 16(int) Load 18(z) - 40: 7(float) ConvertSToF 39 - 41: 35(fvec4) CompositeConstruct 40 40 40 40 - 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 + 17(z): 16(ptr) Variable Function + Store 11(face1) 12 + Store 13(face2) 14 + Store 17(z) 18 + 22: 15(int) Load 21(low) + 23: 15(int) IMul 19 22 + 25: 15(int) IAdd 23 24 + 27: 15(int) Load 26(high) + 29: 28(bool) SLessThan 25 27 + SelectionMerge 31 None + 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 + 37: 6(float) Load 11(face1) + 38: 15(int) Load 17(z) + 39: 6(float) ConvertSToF 38 + 40: 34(fvec4) CompositeConstruct 39 39 39 39 + 41: 34(fvec4) VectorTimesScalar 40 37 + 42: 6(float) FunctionCall 8(foo() + 43: 34(fvec4) CompositeConstruct 42 42 42 42 + 44: 34(fvec4) FAdd 41 43 + Store 36(gl_FragColor) 44 Return FunctionEnd - 9(foo(): 7(float) Function None 8 - 10: Label - 46: 7(float) Load 14(face2) - ReturnValue 46 + 8(foo(): 6(float) Function None 7 + 9: Label + 45: 6(float) Load 13(face2) + ReturnValue 45 FunctionEnd diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out index fae44fd9..8b67908f 100755 --- a/Test/baseResults/spv.140.frag.out +++ b/Test/baseResults/spv.140.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 93 +// Id's are bound by 92 Source GLSL 140 Capability Shader @@ -14,151 +14,149 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "foo(" - Name 12 "i1" - Name 17 "gl_FrontFacing" - Name 25 "i2" - Name 29 "o" - Name 34 "gl_ClipDistance" - Name 43 "k" - Name 55 "sampR" - Name 62 "sampB" - Name 86 "samp2Da" - Name 90 "bn" - MemberName 90(bn) 0 "matra" - MemberName 90(bn) 1 "matca" - MemberName 90(bn) 2 "matr" - MemberName 90(bn) 3 "matc" - MemberName 90(bn) 4 "matrdef" - Name 92 "" - Decorate 17(gl_FrontFacing) BuiltIn FrontFacing - Decorate 34(gl_ClipDistance) Smooth - Decorate 34(gl_ClipDistance) BuiltIn ClipDistance - Decorate 43(k) Smooth - Decorate 86(samp2Da) NoStaticUse - Decorate 89 ArrayStride 64 - Decorate 89 ArrayStride 64 - MemberDecorate 90(bn) 0 RowMajor - MemberDecorate 90(bn) 0 Offset 0 - MemberDecorate 90(bn) 0 MatrixStride 16 - MemberDecorate 90(bn) 1 ColMajor - MemberDecorate 90(bn) 1 Offset 256 - MemberDecorate 90(bn) 1 MatrixStride 16 - MemberDecorate 90(bn) 2 RowMajor - MemberDecorate 90(bn) 2 Offset 512 - MemberDecorate 90(bn) 2 MatrixStride 16 - MemberDecorate 90(bn) 3 ColMajor - MemberDecorate 90(bn) 3 Offset 576 - MemberDecorate 90(bn) 3 MatrixStride 16 - MemberDecorate 90(bn) 4 RowMajor - MemberDecorate 90(bn) 4 Offset 640 - MemberDecorate 90(bn) 4 MatrixStride 16 - Decorate 90(bn) Block - Decorate 92 NoStaticUse + Name 8 "foo(" + Name 11 "i1" + Name 16 "gl_FrontFacing" + Name 24 "i2" + Name 28 "o" + Name 33 "gl_ClipDistance" + Name 42 "k" + Name 54 "sampR" + Name 61 "sampB" + Name 85 "samp2Da" + Name 89 "bn" + MemberName 89(bn) 0 "matra" + MemberName 89(bn) 1 "matca" + MemberName 89(bn) 2 "matr" + MemberName 89(bn) 3 "matc" + MemberName 89(bn) 4 "matrdef" + Name 91 "" + Decorate 16(gl_FrontFacing) BuiltIn FrontFacing + Decorate 33(gl_ClipDistance) Smooth + Decorate 33(gl_ClipDistance) BuiltIn ClipDistance + Decorate 42(k) Smooth + Decorate 85(samp2Da) NoStaticUse + Decorate 88 ArrayStride 64 + Decorate 88 ArrayStride 64 + MemberDecorate 89(bn) 0 RowMajor + MemberDecorate 89(bn) 0 Offset 0 + MemberDecorate 89(bn) 0 MatrixStride 16 + MemberDecorate 89(bn) 1 ColMajor + MemberDecorate 89(bn) 1 Offset 256 + MemberDecorate 89(bn) 1 MatrixStride 16 + MemberDecorate 89(bn) 2 RowMajor + MemberDecorate 89(bn) 2 Offset 512 + MemberDecorate 89(bn) 2 MatrixStride 16 + MemberDecorate 89(bn) 3 ColMajor + MemberDecorate 89(bn) 3 Offset 576 + MemberDecorate 89(bn) 3 MatrixStride 16 + MemberDecorate 89(bn) 4 RowMajor + MemberDecorate 89(bn) 4 Offset 640 + MemberDecorate 89(bn) 4 MatrixStride 16 + Decorate 89(bn) Block + Decorate 91 NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeFunction 7(float) - 11: TypePointer PrivateGlobal 7(float) - 12(i1): 11(ptr) Variable PrivateGlobal - 13: TypePointer Function 7(float) - 15: TypeBool - 16: TypePointer Input 15(bool) -17(gl_FrontFacing): 16(ptr) Variable Input - 21: 7(float) Constant 3221225472 - 23: 7(float) Constant 1073741824 - 25(i2): 11(ptr) Variable PrivateGlobal - 26: 7(float) Constant 1120665600 - 27: TypeVector 7(float) 4 - 28: TypePointer Output 27(fvec4) - 29(o): 28(ptr) Variable Output - 30: TypeInt 32 0 - 31: 30(int) Constant 5 - 32: TypeArray 7(float) 31 - 33: TypePointer Input 32 -34(gl_ClipDistance): 33(ptr) Variable Input - 35: TypeInt 32 1 - 36: 35(int) Constant 2 - 37: TypePointer Input 7(float) - 42: TypePointer Input 27(fvec4) - 43(k): 42(ptr) Variable Input - 45: TypeVector 35(int) 4 - 52: TypeImage 7(float) Rect sampled format:Unknown - 53: TypeSampledImage 52 - 54: TypePointer UniformConstant 53 - 55(sampR): 54(ptr) Variable UniformConstant - 57: TypeVector 35(int) 2 - 59: TypeImage 35(int) Buffer sampled format:Unknown - 60: TypeSampledImage 59 - 61: TypePointer UniformConstant 60 - 62(sampB): 61(ptr) Variable UniformConstant - 67: TypeVector 7(float) 2 - 70: 7(float) Constant 1120403456 - 81: TypeImage 7(float) 2D sampled format:Unknown - 82: TypeSampledImage 81 - 83: 30(int) Constant 3 - 84: TypeArray 82 83 - 85: TypePointer UniformConstant 84 - 86(samp2Da): 85(ptr) Variable UniformConstant - 87: TypeMatrix 27(fvec4) 4 - 88: 30(int) Constant 4 - 89: TypeArray 87 88 - 90(bn): TypeStruct 89 89 87 87 87 - 91: TypePointer Uniform 90(bn) - 92: 91(ptr) Variable Uniform + 6: TypeFloat 32 + 7: TypeFunction 6(float) + 10: TypePointer PrivateGlobal 6(float) + 11(i1): 10(ptr) Variable PrivateGlobal + 12: TypePointer Function 6(float) + 14: TypeBool + 15: TypePointer Input 14(bool) +16(gl_FrontFacing): 15(ptr) Variable Input + 20: 6(float) Constant 3221225472 + 22: 6(float) Constant 1073741824 + 24(i2): 10(ptr) Variable PrivateGlobal + 25: 6(float) Constant 1120665600 + 26: TypeVector 6(float) 4 + 27: TypePointer Output 26(fvec4) + 28(o): 27(ptr) Variable Output + 29: TypeInt 32 0 + 30: 29(int) Constant 5 + 31: TypeArray 6(float) 30 + 32: TypePointer Input 31 +33(gl_ClipDistance): 32(ptr) Variable Input + 34: TypeInt 32 1 + 35: 34(int) Constant 2 + 36: TypePointer Input 6(float) + 41: TypePointer Input 26(fvec4) + 42(k): 41(ptr) Variable Input + 44: TypeVector 34(int) 4 + 51: TypeImage 6(float) Rect sampled format:Unknown + 52: TypeSampledImage 51 + 53: TypePointer UniformConstant 52 + 54(sampR): 53(ptr) Variable UniformConstant + 56: TypeVector 34(int) 2 + 58: TypeImage 34(int) Buffer sampled format:Unknown + 59: TypeSampledImage 58 + 60: TypePointer UniformConstant 59 + 61(sampB): 60(ptr) Variable UniformConstant + 66: TypeVector 6(float) 2 + 69: 6(float) Constant 1120403456 + 80: TypeImage 6(float) 2D sampled format:Unknown + 81: TypeSampledImage 80 + 82: 29(int) Constant 3 + 83: TypeArray 81 82 + 84: TypePointer UniformConstant 83 + 85(samp2Da): 84(ptr) Variable UniformConstant + 86: TypeMatrix 26(fvec4) 4 + 87: 29(int) Constant 4 + 88: TypeArray 86 87 + 89(bn): TypeStruct 88 88 86 86 86 + 90: TypePointer Uniform 89(bn) + 91: 90(ptr) Variable Uniform 4(main): 2 Function None 3 5: Label - 14: 13(ptr) Variable Function - 18: 15(bool) Load 17(gl_FrontFacing) - SelectionMerge 20 None - BranchConditional 18 19 22 - 19: Label - Store 14 21 - Branch 20 - 22: Label - Store 14 23 - Branch 20 - 20: Label - 24: 7(float) Load 14 - Store 12(i1) 24 - Store 25(i2) 26 - 38: 37(ptr) AccessChain 34(gl_ClipDistance) 36 - 39: 7(float) Load 38 - 40: 27(fvec4) Load 29(o) - 41: 27(fvec4) CompositeInsert 39 40 1 - Store 29(o) 41 - 44: 27(fvec4) Load 43(k) - 46: 45(ivec4) ConvertFToS 44 - 47: 35(int) CompositeExtract 46 0 - 48: 37(ptr) AccessChain 34(gl_ClipDistance) 47 - 49: 7(float) Load 48 - 50: 27(fvec4) Load 29(o) - 51: 27(fvec4) CompositeInsert 49 50 2 - Store 29(o) 51 - 56: 53 Load 55(sampR) - 58: 57(ivec2) ImageQuerySize 56 - 63: 60 Load 62(sampB) - 64: 35(int) ImageQuerySize 63 - 65: 57(ivec2) CompositeConstruct 64 64 - 66: 57(ivec2) IAdd 58 65 - 68: 67(fvec2) ConvertSToF 66 - 69: 7(float) CompositeExtract 68 0 - 71: 7(float) FDiv 69 70 - 72: 27(fvec4) Load 29(o) - 73: 27(fvec4) CompositeInsert 71 72 3 - Store 29(o) 73 - 74: 7(float) FunctionCall 9(foo() - 75: 27(fvec4) Load 29(o) - 76: 27(fvec4) CompositeInsert 74 75 2 - Store 29(o) 76 - Branch 6 - 6: Label + 13: 12(ptr) Variable Function + 17: 14(bool) Load 16(gl_FrontFacing) + SelectionMerge 19 None + BranchConditional 17 18 21 + 18: Label + Store 13 20 + Branch 19 + 21: Label + Store 13 22 + Branch 19 + 19: Label + 23: 6(float) Load 13 + Store 11(i1) 23 + Store 24(i2) 25 + 37: 36(ptr) AccessChain 33(gl_ClipDistance) 35 + 38: 6(float) Load 37 + 39: 26(fvec4) Load 28(o) + 40: 26(fvec4) CompositeInsert 38 39 1 + Store 28(o) 40 + 43: 26(fvec4) Load 42(k) + 45: 44(ivec4) ConvertFToS 43 + 46: 34(int) CompositeExtract 45 0 + 47: 36(ptr) AccessChain 33(gl_ClipDistance) 46 + 48: 6(float) Load 47 + 49: 26(fvec4) Load 28(o) + 50: 26(fvec4) CompositeInsert 48 49 2 + Store 28(o) 50 + 55: 52 Load 54(sampR) + 57: 56(ivec2) ImageQuerySize 55 + 62: 59 Load 61(sampB) + 63: 34(int) ImageQuerySize 62 + 64: 56(ivec2) CompositeConstruct 63 63 + 65: 56(ivec2) IAdd 57 64 + 67: 66(fvec2) ConvertSToF 65 + 68: 6(float) CompositeExtract 67 0 + 70: 6(float) FDiv 68 69 + 71: 26(fvec4) Load 28(o) + 72: 26(fvec4) CompositeInsert 70 71 3 + Store 28(o) 72 + 73: 6(float) FunctionCall 8(foo() + 74: 26(fvec4) Load 28(o) + 75: 26(fvec4) CompositeInsert 73 74 2 + Store 28(o) 75 Return FunctionEnd - 9(foo(): 7(float) Function None 8 - 10: Label - 77: 7(float) Load 12(i1) - 78: 7(float) Load 25(i2) - 79: 7(float) FAdd 77 78 - ReturnValue 79 + 8(foo(): 6(float) Function None 7 + 9: Label + 76: 6(float) Load 11(i1) + 77: 6(float) Load 24(i2) + 78: 6(float) FAdd 76 77 + ReturnValue 78 FunctionEnd diff --git a/Test/baseResults/spv.150.geom.out b/Test/baseResults/spv.150.geom.out index dcd1feba..7133df96 100755 --- a/Test/baseResults/spv.150.geom.out +++ b/Test/baseResults/spv.150.geom.out @@ -5,7 +5,7 @@ Linked geometry stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 72 +// Id's are bound by 71 Source GLSL 150 Capability Geometry @@ -17,134 +17,132 @@ Linked geometry stage: ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputVertices 30 Name 4 "main" - Name 9 "fromVertex" - MemberName 9(fromVertex) 0 "color" - Name 11 "" - Name 14 "fromVertex" - MemberName 14(fromVertex) 0 "color" - Name 19 "fromV" - Name 28 "gl_PerVertex" - MemberName 28(gl_PerVertex) 0 "gl_Position" - MemberName 28(gl_PerVertex) 1 "gl_PointSize" - MemberName 28(gl_PerVertex) 2 "gl_ClipDistance" - Name 30 "" - Name 31 "gl_PerVertex" - MemberName 31(gl_PerVertex) 0 "gl_Position" - MemberName 31(gl_PerVertex) 1 "gl_PointSize" - MemberName 31(gl_PerVertex) 2 "gl_ClipDistance" - Name 34 "gl_in" - Name 48 "gl_PrimitiveID" - Name 50 "gl_PrimitiveIDIn" - Name 52 "gl_Layer" - Name 69 "toFragment" - MemberName 69(toFragment) 0 "color" - Name 71 "toF" - Decorate 9(fromVertex) Block - Decorate 9(fromVertex) Stream 3 - Decorate 11 Stream 3 - Decorate 14(fromVertex) Block - MemberDecorate 28(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 28(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 28(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 28(gl_PerVertex) Block - Decorate 28(gl_PerVertex) Stream 0 - Decorate 30 Stream 0 - MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 31(gl_PerVertex) Block - Decorate 48(gl_PrimitiveID) Stream 0 - Decorate 48(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 50(gl_PrimitiveIDIn) BuiltIn PrimitiveId - Decorate 52(gl_Layer) Stream 0 - Decorate 52(gl_Layer) BuiltIn Layer - Decorate 69(toFragment) Block - Decorate 69(toFragment) Stream 3 - Decorate 71(toF) Stream 3 - Decorate 71(toF) NoStaticUse + Name 8 "fromVertex" + MemberName 8(fromVertex) 0 "color" + Name 10 "" + Name 13 "fromVertex" + MemberName 13(fromVertex) 0 "color" + Name 18 "fromV" + Name 27 "gl_PerVertex" + MemberName 27(gl_PerVertex) 0 "gl_Position" + MemberName 27(gl_PerVertex) 1 "gl_PointSize" + MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" + Name 29 "" + Name 30 "gl_PerVertex" + MemberName 30(gl_PerVertex) 0 "gl_Position" + MemberName 30(gl_PerVertex) 1 "gl_PointSize" + MemberName 30(gl_PerVertex) 2 "gl_ClipDistance" + Name 33 "gl_in" + Name 47 "gl_PrimitiveID" + Name 49 "gl_PrimitiveIDIn" + Name 51 "gl_Layer" + Name 68 "toFragment" + MemberName 68(toFragment) 0 "color" + Name 70 "toF" + Decorate 8(fromVertex) Block + Decorate 8(fromVertex) Stream 3 + Decorate 10 Stream 3 + Decorate 13(fromVertex) Block + MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 27(gl_PerVertex) Block + Decorate 27(gl_PerVertex) Stream 0 + Decorate 29 Stream 0 + MemberDecorate 30(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 30(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 30(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 30(gl_PerVertex) Block + Decorate 47(gl_PrimitiveID) Stream 0 + Decorate 47(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 49(gl_PrimitiveIDIn) BuiltIn PrimitiveId + Decorate 51(gl_Layer) Stream 0 + Decorate 51(gl_Layer) BuiltIn Layer + Decorate 68(toFragment) Block + Decorate 68(toFragment) Stream 3 + Decorate 70(toF) Stream 3 + Decorate 70(toF) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 3 - 9(fromVertex): TypeStruct 8(fvec3) - 10: TypePointer Output 9(fromVertex) - 11: 10(ptr) Variable Output - 12: TypeInt 32 1 - 13: 12(int) Constant 0 - 14(fromVertex): TypeStruct 8(fvec3) - 15: TypeInt 32 0 - 16: 15(int) Constant 6 - 17: TypeArray 14(fromVertex) 16 - 18: TypePointer Input 17 - 19(fromV): 18(ptr) Variable Input - 20: TypePointer Input 8(fvec3) - 23: TypePointer Output 8(fvec3) - 25: TypeVector 7(float) 4 - 26: 15(int) Constant 1 - 27: TypeArray 7(float) 26 -28(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27 - 29: TypePointer Output 28(gl_PerVertex) - 30: 29(ptr) Variable Output -31(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27 - 32: TypeArray 31(gl_PerVertex) 16 - 33: TypePointer Input 32 - 34(gl_in): 33(ptr) Variable Input - 35: TypePointer Input 25(fvec4) - 38: TypePointer Output 25(fvec4) - 40: 12(int) Constant 1 - 41: 12(int) Constant 3 - 42: TypePointer Input 7(float) - 45: TypePointer Output 7(float) - 47: TypePointer Output 12(int) -48(gl_PrimitiveID): 47(ptr) Variable Output - 49: TypePointer Input 12(int) -50(gl_PrimitiveIDIn): 49(ptr) Variable Input - 52(gl_Layer): 47(ptr) Variable Output - 53: 12(int) Constant 2 - 54: 7(float) Constant 1073741824 - 69(toFragment): TypeStruct 8(fvec3) - 70: TypePointer Output 69(toFragment) - 71(toF): 70(ptr) Variable Output + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(fromVertex): TypeStruct 7(fvec3) + 9: TypePointer Output 8(fromVertex) + 10: 9(ptr) Variable Output + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13(fromVertex): TypeStruct 7(fvec3) + 14: TypeInt 32 0 + 15: 14(int) Constant 6 + 16: TypeArray 13(fromVertex) 15 + 17: TypePointer Input 16 + 18(fromV): 17(ptr) Variable Input + 19: TypePointer Input 7(fvec3) + 22: TypePointer Output 7(fvec3) + 24: TypeVector 6(float) 4 + 25: 14(int) Constant 1 + 26: TypeArray 6(float) 25 +27(gl_PerVertex): TypeStruct 24(fvec4) 6(float) 26 + 28: TypePointer Output 27(gl_PerVertex) + 29: 28(ptr) Variable Output +30(gl_PerVertex): TypeStruct 24(fvec4) 6(float) 26 + 31: TypeArray 30(gl_PerVertex) 15 + 32: TypePointer Input 31 + 33(gl_in): 32(ptr) Variable Input + 34: TypePointer Input 24(fvec4) + 37: TypePointer Output 24(fvec4) + 39: 11(int) Constant 1 + 40: 11(int) Constant 3 + 41: TypePointer Input 6(float) + 44: TypePointer Output 6(float) + 46: TypePointer Output 11(int) +47(gl_PrimitiveID): 46(ptr) Variable Output + 48: TypePointer Input 11(int) +49(gl_PrimitiveIDIn): 48(ptr) Variable Input + 51(gl_Layer): 46(ptr) Variable Output + 52: 11(int) Constant 2 + 53: 6(float) Constant 1073741824 + 68(toFragment): TypeStruct 7(fvec3) + 69: TypePointer Output 68(toFragment) + 70(toF): 69(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 21: 20(ptr) AccessChain 19(fromV) 13 13 - 22: 8(fvec3) Load 21 - 24: 23(ptr) AccessChain 11 13 - Store 24 22 - 36: 35(ptr) AccessChain 34(gl_in) 13 13 - 37: 25(fvec4) Load 36 - 39: 38(ptr) AccessChain 30 13 - Store 39 37 - 43: 42(ptr) AccessChain 34(gl_in) 41 40 - 44: 7(float) Load 43 - 46: 45(ptr) AccessChain 30 40 - Store 46 44 - 51: 12(int) Load 50(gl_PrimitiveIDIn) - Store 48(gl_PrimitiveID) 51 - Store 52(gl_Layer) 53 + 20: 19(ptr) AccessChain 18(fromV) 12 12 + 21: 7(fvec3) Load 20 + 23: 22(ptr) AccessChain 10 12 + Store 23 21 + 35: 34(ptr) AccessChain 33(gl_in) 12 12 + 36: 24(fvec4) Load 35 + 38: 37(ptr) AccessChain 29 12 + Store 38 36 + 42: 41(ptr) AccessChain 33(gl_in) 40 39 + 43: 6(float) Load 42 + 45: 44(ptr) AccessChain 29 39 + Store 45 43 + 50: 11(int) Load 49(gl_PrimitiveIDIn) + Store 47(gl_PrimitiveID) 50 + Store 51(gl_Layer) 52 EmitVertex - 55: 20(ptr) AccessChain 19(fromV) 13 13 - 56: 8(fvec3) Load 55 - 57: 8(fvec3) VectorTimesScalar 56 54 - 58: 23(ptr) AccessChain 11 13 - Store 58 57 - 59: 35(ptr) AccessChain 34(gl_in) 13 13 - 60: 25(fvec4) Load 59 - 61: 25(fvec4) VectorTimesScalar 60 54 - 62: 38(ptr) AccessChain 30 13 - Store 62 61 - 63: 42(ptr) AccessChain 34(gl_in) 41 40 - 64: 7(float) Load 63 - 65: 7(float) FMul 54 64 - 66: 45(ptr) AccessChain 30 40 - Store 66 65 - 67: 12(int) Load 50(gl_PrimitiveIDIn) - 68: 12(int) IAdd 67 40 - Store 48(gl_PrimitiveID) 68 - Store 52(gl_Layer) 41 + 54: 19(ptr) AccessChain 18(fromV) 12 12 + 55: 7(fvec3) Load 54 + 56: 7(fvec3) VectorTimesScalar 55 53 + 57: 22(ptr) AccessChain 10 12 + Store 57 56 + 58: 34(ptr) AccessChain 33(gl_in) 12 12 + 59: 24(fvec4) Load 58 + 60: 24(fvec4) VectorTimesScalar 59 53 + 61: 37(ptr) AccessChain 29 12 + Store 61 60 + 62: 41(ptr) AccessChain 33(gl_in) 40 39 + 63: 6(float) Load 62 + 64: 6(float) FMul 53 63 + 65: 44(ptr) AccessChain 29 39 + Store 65 64 + 66: 11(int) Load 49(gl_PrimitiveIDIn) + 67: 11(int) IAdd 66 39 + Store 47(gl_PrimitiveID) 67 + Store 51(gl_Layer) 40 EmitVertex EndPrimitive - Branch 6 - 6: Label Return FunctionEnd diff --git a/Test/baseResults/spv.150.vert.out b/Test/baseResults/spv.150.vert.out index f55399fe..f0291a8c 100755 --- a/Test/baseResults/spv.150.vert.out +++ b/Test/baseResults/spv.150.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 53 +// Id's are bound by 52 Source GLSL 150 Capability Shader @@ -13,97 +13,95 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 14 "gl_PerVertex" - MemberName 14(gl_PerVertex) 0 "gl_Position" - MemberName 14(gl_PerVertex) 1 "gl_PointSize" - MemberName 14(gl_PerVertex) 2 "gl_ClipDistance" - MemberName 14(gl_PerVertex) 3 "gl_ClipVertex" - MemberName 14(gl_PerVertex) 4 "gl_FrontColor" - MemberName 14(gl_PerVertex) 5 "gl_BackColor" - MemberName 14(gl_PerVertex) 6 "gl_FrontSecondaryColor" - MemberName 14(gl_PerVertex) 7 "gl_BackSecondaryColor" - MemberName 14(gl_PerVertex) 8 "gl_TexCoord" - MemberName 14(gl_PerVertex) 9 "gl_FogFragCoord" - Name 16 "" - Name 20 "iv4" - Name 26 "ps" - Name 36 "s1" - MemberName 36(s1) 0 "a" - MemberName 36(s1) 1 "a2" - MemberName 36(s1) 2 "b" - Name 38 "s2" - MemberName 38(s2) 0 "c" - MemberName 38(s2) 1 "d" - Name 40 "s2out" - Name 42 "i" - Name 49 "ui" - Name 51 "gl_VertexID" - Name 52 "gl_InstanceID" - MemberDecorate 14(gl_PerVertex) 0 Invariant - MemberDecorate 14(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 14(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 14(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 14(gl_PerVertex) Block - Decorate 49(ui) NoStaticUse - Decorate 51(gl_VertexID) BuiltIn VertexId - Decorate 51(gl_VertexID) NoStaticUse - Decorate 52(gl_InstanceID) BuiltIn InstanceId - Decorate 52(gl_InstanceID) NoStaticUse + Name 13 "gl_PerVertex" + MemberName 13(gl_PerVertex) 0 "gl_Position" + MemberName 13(gl_PerVertex) 1 "gl_PointSize" + MemberName 13(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 13(gl_PerVertex) 3 "gl_ClipVertex" + MemberName 13(gl_PerVertex) 4 "gl_FrontColor" + MemberName 13(gl_PerVertex) 5 "gl_BackColor" + MemberName 13(gl_PerVertex) 6 "gl_FrontSecondaryColor" + MemberName 13(gl_PerVertex) 7 "gl_BackSecondaryColor" + MemberName 13(gl_PerVertex) 8 "gl_TexCoord" + MemberName 13(gl_PerVertex) 9 "gl_FogFragCoord" + Name 15 "" + Name 19 "iv4" + Name 25 "ps" + Name 35 "s1" + MemberName 35(s1) 0 "a" + MemberName 35(s1) 1 "a2" + MemberName 35(s1) 2 "b" + Name 37 "s2" + MemberName 37(s2) 0 "c" + MemberName 37(s2) 1 "d" + Name 39 "s2out" + Name 41 "i" + Name 48 "ui" + Name 50 "gl_VertexID" + Name 51 "gl_InstanceID" + MemberDecorate 13(gl_PerVertex) 0 Invariant + MemberDecorate 13(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 13(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 13(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 13(gl_PerVertex) Block + Decorate 48(ui) NoStaticUse + Decorate 50(gl_VertexID) BuiltIn VertexId + Decorate 50(gl_VertexID) NoStaticUse + Decorate 51(gl_InstanceID) BuiltIn InstanceId + Decorate 51(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypeInt 32 0 - 10: 9(int) Constant 4 - 11: TypeArray 7(float) 10 - 12: 9(int) Constant 1 - 13: TypeArray 8(fvec4) 12 -14(gl_PerVertex): TypeStruct 8(fvec4) 7(float) 11 8(fvec4) 8(fvec4) 8(fvec4) 8(fvec4) 8(fvec4) 13 7(float) - 15: TypePointer Output 14(gl_PerVertex) - 16: 15(ptr) Variable Output - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer Input 8(fvec4) - 20(iv4): 19(ptr) Variable Input - 22: TypePointer Output 8(fvec4) - 24: 17(int) Constant 1 - 25: TypePointer UniformConstant 7(float) - 26(ps): 25(ptr) Variable UniformConstant - 28: TypePointer Output 7(float) - 30: 17(int) Constant 2 - 34: 9(int) Constant 3 - 35: TypeArray 8(fvec4) 34 - 36(s1): TypeStruct 17(int) 17(int) 35 - 37: TypeArray 36(s1) 10 - 38(s2): TypeStruct 17(int) 37 - 39: TypePointer Output 38(s2) - 40(s2out): 39(ptr) Variable Output - 41: TypePointer Function 17(int) - 48: TypePointer UniformConstant 17(int) - 49(ui): 48(ptr) Variable UniformConstant - 50: TypePointer Input 17(int) - 51(gl_VertexID): 50(ptr) Variable Input -52(gl_InstanceID): 50(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 4 + 10: TypeArray 6(float) 9 + 11: 8(int) Constant 1 + 12: TypeArray 7(fvec4) 11 +13(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 12 6(float) + 14: TypePointer Output 13(gl_PerVertex) + 15: 14(ptr) Variable Output + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Input 7(fvec4) + 19(iv4): 18(ptr) Variable Input + 21: TypePointer Output 7(fvec4) + 23: 16(int) Constant 1 + 24: TypePointer UniformConstant 6(float) + 25(ps): 24(ptr) Variable UniformConstant + 27: TypePointer Output 6(float) + 29: 16(int) Constant 2 + 33: 8(int) Constant 3 + 34: TypeArray 7(fvec4) 33 + 35(s1): TypeStruct 16(int) 16(int) 34 + 36: TypeArray 35(s1) 9 + 37(s2): TypeStruct 16(int) 36 + 38: TypePointer Output 37(s2) + 39(s2out): 38(ptr) Variable Output + 40: TypePointer Function 16(int) + 47: TypePointer UniformConstant 16(int) + 48(ui): 47(ptr) Variable UniformConstant + 49: TypePointer Input 16(int) + 50(gl_VertexID): 49(ptr) Variable Input +51(gl_InstanceID): 49(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 42(i): 41(ptr) Variable Function - 21: 8(fvec4) Load 20(iv4) - 23: 22(ptr) AccessChain 16 18 - Store 23 21 - 27: 7(float) Load 26(ps) - 29: 28(ptr) AccessChain 16 24 - Store 29 27 - 31: 8(fvec4) Load 20(iv4) - 32: 7(float) CompositeExtract 31 0 - 33: 28(ptr) AccessChain 16 30 30 - Store 33 32 - 43: 17(int) Load 42(i) - 44: 7(float) Load 26(ps) - 45: 22(ptr) AccessChain 40(s2out) 24 43 30 30 - 46: 8(fvec4) Load 45 - 47: 8(fvec4) CompositeInsert 44 46 3 - Store 45 47 - Branch 6 - 6: Label + 41(i): 40(ptr) Variable Function + 20: 7(fvec4) Load 19(iv4) + 22: 21(ptr) AccessChain 15 17 + Store 22 20 + 26: 6(float) Load 25(ps) + 28: 27(ptr) AccessChain 15 23 + Store 28 26 + 30: 7(fvec4) Load 19(iv4) + 31: 6(float) CompositeExtract 30 0 + 32: 27(ptr) AccessChain 15 29 29 + Store 32 31 + 42: 16(int) Load 41(i) + 43: 6(float) Load 25(ps) + 44: 21(ptr) AccessChain 39(s2out) 23 42 29 29 + 45: 7(fvec4) Load 44 + 46: 7(fvec4) CompositeInsert 43 45 3 + Store 44 46 Return FunctionEnd diff --git a/Test/baseResults/spv.300BuiltIns.vert.out b/Test/baseResults/spv.300BuiltIns.vert.out index 916a5a94..c867e1cf 100755 --- a/Test/baseResults/spv.300BuiltIns.vert.out +++ b/Test/baseResults/spv.300BuiltIns.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 41 +// Id's are bound by 40 Source ESSL 300 Capability Shader @@ -13,67 +13,65 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "i" - Name 12 "gl_VertexID" - Name 17 "j" - Name 24 "gl_Position" - Name 26 "ps" - Name 34 "gl_PointSize" - Name 40 "gl_InstanceID" - Decorate 9(i) RelaxedPrecision - Decorate 12(gl_VertexID) BuiltIn VertexId - Decorate 17(j) RelaxedPrecision - Decorate 24(gl_Position) Invariant - Decorate 24(gl_Position) BuiltIn Position - Decorate 26(ps) RelaxedPrecision - Decorate 34(gl_PointSize) BuiltIn PointSize - Decorate 40(gl_InstanceID) BuiltIn InstanceId - Decorate 40(gl_InstanceID) NoStaticUse + Name 8 "i" + Name 11 "gl_VertexID" + Name 16 "j" + Name 23 "gl_Position" + Name 25 "ps" + Name 33 "gl_PointSize" + Name 39 "gl_InstanceID" + Decorate 8(i) RelaxedPrecision + Decorate 11(gl_VertexID) BuiltIn VertexId + Decorate 16(j) RelaxedPrecision + Decorate 23(gl_Position) Invariant + Decorate 23(gl_Position) BuiltIn Position + Decorate 25(ps) RelaxedPrecision + Decorate 33(gl_PointSize) BuiltIn PointSize + Decorate 39(gl_InstanceID) BuiltIn InstanceId + Decorate 39(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 4 - 11: TypePointer Input 7(int) - 12(gl_VertexID): 11(ptr) Variable Input - 15: 7(int) Constant 10 - 21: TypeFloat 32 - 22: TypeVector 21(float) 4 - 23: TypePointer Output 22(fvec4) - 24(gl_Position): 23(ptr) Variable Output - 25: TypePointer Input 21(float) - 26(ps): 25(ptr) Variable Input - 33: TypePointer Output 21(float) -34(gl_PointSize): 33(ptr) Variable Output -40(gl_InstanceID): 11(ptr) Variable Input + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 4 + 10: TypePointer Input 6(int) + 11(gl_VertexID): 10(ptr) Variable Input + 14: 6(int) Constant 10 + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Output 21(fvec4) + 23(gl_Position): 22(ptr) Variable Output + 24: TypePointer Input 20(float) + 25(ps): 24(ptr) Variable Input + 32: TypePointer Output 20(float) +33(gl_PointSize): 32(ptr) Variable Output +39(gl_InstanceID): 10(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(i): 8(ptr) Variable Function - 17(j): 8(ptr) Variable Function - 13: 7(int) Load 12(gl_VertexID) - 14: 7(int) IMul 10 13 - 16: 7(int) ISub 14 15 - Store 9(i) 16 - 18: 7(int) Load 12(gl_VertexID) - 19: 7(int) IMul 10 18 - 20: 7(int) ISub 19 15 - Store 17(j) 20 - 27: 21(float) Load 26(ps) - 28: 22(fvec4) CompositeConstruct 27 27 27 27 - Store 24(gl_Position) 28 - 29: 7(int) Load 9(i) - 30: 21(float) ConvertSToF 29 - 31: 22(fvec4) Load 24(gl_Position) - 32: 22(fvec4) VectorTimesScalar 31 30 - Store 24(gl_Position) 32 - 35: 21(float) Load 26(ps) - Store 34(gl_PointSize) 35 - 36: 7(int) Load 17(j) - 37: 21(float) ConvertSToF 36 - 38: 21(float) Load 34(gl_PointSize) - 39: 21(float) FMul 38 37 - Store 34(gl_PointSize) 39 - Branch 6 - 6: Label + 8(i): 7(ptr) Variable Function + 16(j): 7(ptr) Variable Function + 12: 6(int) Load 11(gl_VertexID) + 13: 6(int) IMul 9 12 + 15: 6(int) ISub 13 14 + Store 8(i) 15 + 17: 6(int) Load 11(gl_VertexID) + 18: 6(int) IMul 9 17 + 19: 6(int) ISub 18 14 + Store 16(j) 19 + 26: 20(float) Load 25(ps) + 27: 21(fvec4) CompositeConstruct 26 26 26 26 + Store 23(gl_Position) 27 + 28: 6(int) Load 8(i) + 29: 20(float) ConvertSToF 28 + 30: 21(fvec4) Load 23(gl_Position) + 31: 21(fvec4) VectorTimesScalar 30 29 + Store 23(gl_Position) 31 + 34: 20(float) Load 25(ps) + Store 33(gl_PointSize) 34 + 35: 6(int) Load 16(j) + 36: 20(float) ConvertSToF 35 + 37: 20(float) Load 33(gl_PointSize) + 38: 20(float) FMul 37 36 + Store 33(gl_PointSize) 38 Return FunctionEnd diff --git a/Test/baseResults/spv.300layout.frag.out b/Test/baseResults/spv.300layout.frag.out index 9845acfc..3700efe1 100755 --- a/Test/baseResults/spv.300layout.frag.out +++ b/Test/baseResults/spv.300layout.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 38 +// Id's are bound by 37 Source ESSL 300 Capability Shader @@ -14,62 +14,60 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "c" - Name 12 "color" - Name 14 "S" - MemberName 14(S) 0 "c" - MemberName 14(S) 1 "f" - Name 16 "s" - Name 27 "p" - Name 30 "pos" - Decorate 10(c) RelaxedPrecision - Decorate 10(c) Location 7 - Decorate 12(color) RelaxedPrecision - Decorate 12(color) Smooth - MemberDecorate 14(S) 0 RelaxedPrecision - MemberDecorate 14(S) 1 RelaxedPrecision - Decorate 27(p) RelaxedPrecision - Decorate 27(p) Location 3 - Decorate 30(pos) RelaxedPrecision - Decorate 30(pos) Smooth + Name 9 "c" + Name 11 "color" + Name 13 "S" + MemberName 13(S) 0 "c" + MemberName 13(S) 1 "f" + Name 15 "s" + Name 26 "p" + Name 29 "pos" + Decorate 9(c) RelaxedPrecision + Decorate 9(c) Location 7 + Decorate 11(color) RelaxedPrecision + Decorate 11(color) Smooth + MemberDecorate 13(S) 0 RelaxedPrecision + MemberDecorate 13(S) 1 RelaxedPrecision + Decorate 26(p) RelaxedPrecision + Decorate 26(p) Location 3 + Decorate 29(pos) RelaxedPrecision + Decorate 29(pos) Smooth 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 3 - 9: TypePointer Output 8(fvec3) - 10(c): 9(ptr) Variable Output - 11: TypePointer Input 8(fvec3) - 12(color): 11(ptr) Variable Input - 14(S): TypeStruct 8(fvec3) 7(float) - 15: TypePointer Input 14(S) - 16(s): 15(ptr) Variable Input - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 22: TypeVector 7(float) 4 - 23: TypeInt 32 0 - 24: 23(int) Constant 2 - 25: TypeArray 22(fvec4) 24 - 26: TypePointer Output 25 - 27(p): 26(ptr) Variable Output - 28: 17(int) Constant 1 - 29: TypePointer Input 22(fvec4) - 30(pos): 29(ptr) Variable Input - 32: TypePointer Input 7(float) - 36: TypePointer Output 22(fvec4) + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Output 7(fvec3) + 9(c): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec3) + 11(color): 10(ptr) Variable Input + 13(S): TypeStruct 7(fvec3) 6(float) + 14: TypePointer Input 13(S) + 15(s): 14(ptr) Variable Input + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 21: TypeVector 6(float) 4 + 22: TypeInt 32 0 + 23: 22(int) Constant 2 + 24: TypeArray 21(fvec4) 23 + 25: TypePointer Output 24 + 26(p): 25(ptr) Variable Output + 27: 16(int) Constant 1 + 28: TypePointer Input 21(fvec4) + 29(pos): 28(ptr) Variable Input + 31: TypePointer Input 6(float) + 35: TypePointer Output 21(fvec4) 4(main): 2 Function None 3 5: Label - 13: 8(fvec3) Load 12(color) - 19: 11(ptr) AccessChain 16(s) 18 - 20: 8(fvec3) Load 19 - 21: 8(fvec3) FAdd 13 20 - Store 10(c) 21 - 31: 22(fvec4) Load 30(pos) - 33: 32(ptr) AccessChain 16(s) 28 - 34: 7(float) Load 33 - 35: 22(fvec4) VectorTimesScalar 31 34 - 37: 36(ptr) AccessChain 27(p) 28 - Store 37 35 - Branch 6 - 6: Label + 12: 7(fvec3) Load 11(color) + 18: 10(ptr) AccessChain 15(s) 17 + 19: 7(fvec3) Load 18 + 20: 7(fvec3) FAdd 12 19 + Store 9(c) 20 + 30: 21(fvec4) Load 29(pos) + 32: 31(ptr) AccessChain 15(s) 27 + 33: 6(float) Load 32 + 34: 21(fvec4) VectorTimesScalar 30 33 + 36: 35(ptr) AccessChain 26(p) 27 + Store 36 34 Return FunctionEnd diff --git a/Test/baseResults/spv.300layoutp.vert.out b/Test/baseResults/spv.300layoutp.vert.out index 2f4104a8..3a8d03f0 100755 --- a/Test/baseResults/spv.300layoutp.vert.out +++ b/Test/baseResults/spv.300layoutp.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 112 +// Id's are bound by 111 Source ESSL 300 Capability Shader @@ -13,183 +13,181 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 10 "pos" - Name 12 "p" - Name 18 "Transform" - MemberName 18(Transform) 0 "M1" - MemberName 18(Transform) 1 "M2" - MemberName 18(Transform) 2 "N1" - MemberName 18(Transform) 3 "iuin" - Name 20 "tblock" - Name 34 "T3" - MemberName 34(T3) 0 "M3" - MemberName 34(T3) 1 "M4" - MemberName 34(T3) 2 "N2" - MemberName 34(T3) 3 "uv3a" - Name 36 "" - Name 44 "T2" - MemberName 44(T2) 0 "b" - MemberName 44(T2) 1 "t2m" - Name 46 "" - Name 52 "color" - Name 54 "c" - Name 62 "iout" - Name 68 "uiuin" - Name 74 "aiv2" - Name 78 "S" - MemberName 78(S) 0 "c" - MemberName 78(S) 1 "f" - Name 80 "s" - Name 110 "gl_VertexID" - Name 111 "gl_InstanceID" - Decorate 10(pos) Smooth - Decorate 12(p) Location 3 - MemberDecorate 18(Transform) 0 RowMajor - MemberDecorate 18(Transform) 0 Offset 0 - MemberDecorate 18(Transform) 0 MatrixStride 16 - MemberDecorate 18(Transform) 1 ColMajor - MemberDecorate 18(Transform) 1 Offset 64 - MemberDecorate 18(Transform) 1 MatrixStride 16 - MemberDecorate 18(Transform) 2 RowMajor - MemberDecorate 18(Transform) 2 Offset 128 - MemberDecorate 18(Transform) 2 MatrixStride 16 - MemberDecorate 18(Transform) 3 Offset 176 - Decorate 18(Transform) Block - MemberDecorate 34(T3) 0 ColMajor - MemberDecorate 34(T3) 1 RowMajor - MemberDecorate 34(T3) 2 ColMajor - Decorate 34(T3) GLSLShared - Decorate 34(T3) Block - MemberDecorate 44(T2) 1 RowMajor - Decorate 44(T2) GLSLShared - Decorate 44(T2) Block - Decorate 52(color) Smooth - Decorate 54(c) Location 7 - Decorate 62(iout) Flat - Decorate 74(aiv2) Location 9 - Decorate 110(gl_VertexID) BuiltIn VertexId - Decorate 110(gl_VertexID) NoStaticUse - Decorate 111(gl_InstanceID) BuiltIn InstanceId - Decorate 111(gl_InstanceID) NoStaticUse + Name 9 "pos" + Name 11 "p" + Name 17 "Transform" + MemberName 17(Transform) 0 "M1" + MemberName 17(Transform) 1 "M2" + MemberName 17(Transform) 2 "N1" + MemberName 17(Transform) 3 "iuin" + Name 19 "tblock" + Name 33 "T3" + MemberName 33(T3) 0 "M3" + MemberName 33(T3) 1 "M4" + MemberName 33(T3) 2 "N2" + MemberName 33(T3) 3 "uv3a" + Name 35 "" + Name 43 "T2" + MemberName 43(T2) 0 "b" + MemberName 43(T2) 1 "t2m" + Name 45 "" + Name 51 "color" + Name 53 "c" + Name 61 "iout" + Name 67 "uiuin" + Name 73 "aiv2" + Name 77 "S" + MemberName 77(S) 0 "c" + MemberName 77(S) 1 "f" + Name 79 "s" + Name 109 "gl_VertexID" + Name 110 "gl_InstanceID" + Decorate 9(pos) Smooth + Decorate 11(p) Location 3 + MemberDecorate 17(Transform) 0 RowMajor + MemberDecorate 17(Transform) 0 Offset 0 + MemberDecorate 17(Transform) 0 MatrixStride 16 + MemberDecorate 17(Transform) 1 ColMajor + MemberDecorate 17(Transform) 1 Offset 64 + MemberDecorate 17(Transform) 1 MatrixStride 16 + MemberDecorate 17(Transform) 2 RowMajor + MemberDecorate 17(Transform) 2 Offset 128 + MemberDecorate 17(Transform) 2 MatrixStride 16 + MemberDecorate 17(Transform) 3 Offset 176 + Decorate 17(Transform) Block + MemberDecorate 33(T3) 0 ColMajor + MemberDecorate 33(T3) 1 RowMajor + MemberDecorate 33(T3) 2 ColMajor + Decorate 33(T3) GLSLShared + Decorate 33(T3) Block + MemberDecorate 43(T2) 1 RowMajor + Decorate 43(T2) GLSLShared + Decorate 43(T2) Block + Decorate 51(color) Smooth + Decorate 53(c) Location 7 + Decorate 61(iout) Flat + Decorate 73(aiv2) Location 9 + Decorate 109(gl_VertexID) BuiltIn VertexId + Decorate 109(gl_VertexID) NoStaticUse + Decorate 110(gl_InstanceID) BuiltIn InstanceId + Decorate 110(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Output 8(fvec4) - 10(pos): 9(ptr) Variable Output - 11: TypePointer Input 8(fvec4) - 12(p): 11(ptr) Variable Input - 14: TypeMatrix 8(fvec4) 4 - 15: TypeVector 7(float) 3 - 16: TypeMatrix 15(fvec3) 3 - 17: TypeInt 32 1 - 18(Transform): TypeStruct 14 14 16 17(int) - 19: TypePointer Uniform 18(Transform) - 20(tblock): 19(ptr) Variable Uniform - 21: 17(int) Constant 0 - 22: TypePointer Uniform 14 - 25: 17(int) Constant 1 - 29: TypeMatrix 15(fvec3) 2 - 30: TypeInt 32 0 - 31: TypeVector 30(int) 3 - 32: 30(int) Constant 4 - 33: TypeArray 31(ivec3) 32 - 34(T3): TypeStruct 14 14 29 33 - 35: TypePointer Uniform 34(T3) - 36: 35(ptr) Variable Uniform - 43: TypeBool - 44(T2): TypeStruct 43(bool) 14 - 45: TypePointer Uniform 44(T2) - 46: 45(ptr) Variable Uniform - 51: TypePointer Output 15(fvec3) - 52(color): 51(ptr) Variable Output - 53: TypePointer Input 15(fvec3) - 54(c): 53(ptr) Variable Input - 56: 17(int) Constant 2 - 57: TypePointer Uniform 16 - 61: TypePointer Output 17(int) - 62(iout): 61(ptr) Variable Output - 63: 17(int) Constant 3 - 64: TypePointer Uniform 17(int) - 67: TypePointer UniformConstant 30(int) - 68(uiuin): 67(ptr) Variable UniformConstant - 72: TypeVector 17(int) 2 - 73: TypePointer Input 72(ivec2) - 74(aiv2): 73(ptr) Variable Input - 78(S): TypeStruct 15(fvec3) 7(float) - 79: TypePointer Output 78(S) - 80(s): 79(ptr) Variable Output - 85: TypePointer Output 7(float) - 87: TypePointer Uniform 15(fvec3) - 90: 7(float) Constant 1065353216 - 91: 15(fvec3) ConstantComposite 90 90 90 - 92: TypeVector 43(bool) 3 - 95: TypePointer Uniform 31(ivec3) - 98: 30(int) Constant 5 - 99: 31(ivec3) ConstantComposite 98 98 98 - 109: TypePointer Input 17(int) -110(gl_VertexID): 109(ptr) Variable Input -111(gl_InstanceID): 109(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(pos): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(p): 10(ptr) Variable Input + 13: TypeMatrix 7(fvec4) 4 + 14: TypeVector 6(float) 3 + 15: TypeMatrix 14(fvec3) 3 + 16: TypeInt 32 1 + 17(Transform): TypeStruct 13 13 15 16(int) + 18: TypePointer Uniform 17(Transform) + 19(tblock): 18(ptr) Variable Uniform + 20: 16(int) Constant 0 + 21: TypePointer Uniform 13 + 24: 16(int) Constant 1 + 28: TypeMatrix 14(fvec3) 2 + 29: TypeInt 32 0 + 30: TypeVector 29(int) 3 + 31: 29(int) Constant 4 + 32: TypeArray 30(ivec3) 31 + 33(T3): TypeStruct 13 13 28 32 + 34: TypePointer Uniform 33(T3) + 35: 34(ptr) Variable Uniform + 42: TypeBool + 43(T2): TypeStruct 42(bool) 13 + 44: TypePointer Uniform 43(T2) + 45: 44(ptr) Variable Uniform + 50: TypePointer Output 14(fvec3) + 51(color): 50(ptr) Variable Output + 52: TypePointer Input 14(fvec3) + 53(c): 52(ptr) Variable Input + 55: 16(int) Constant 2 + 56: TypePointer Uniform 15 + 60: TypePointer Output 16(int) + 61(iout): 60(ptr) Variable Output + 62: 16(int) Constant 3 + 63: TypePointer Uniform 16(int) + 66: TypePointer UniformConstant 29(int) + 67(uiuin): 66(ptr) Variable UniformConstant + 71: TypeVector 16(int) 2 + 72: TypePointer Input 71(ivec2) + 73(aiv2): 72(ptr) Variable Input + 77(S): TypeStruct 14(fvec3) 6(float) + 78: TypePointer Output 77(S) + 79(s): 78(ptr) Variable Output + 84: TypePointer Output 6(float) + 86: TypePointer Uniform 14(fvec3) + 89: 6(float) Constant 1065353216 + 90: 14(fvec3) ConstantComposite 89 89 89 + 91: TypeVector 42(bool) 3 + 94: TypePointer Uniform 30(ivec3) + 97: 29(int) Constant 5 + 98: 30(ivec3) ConstantComposite 97 97 97 + 108: TypePointer Input 16(int) +109(gl_VertexID): 108(ptr) Variable Input +110(gl_InstanceID): 108(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 13: 8(fvec4) Load 12(p) - 23: 22(ptr) AccessChain 20(tblock) 21 - 24: 14 Load 23 - 26: 22(ptr) AccessChain 20(tblock) 25 - 27: 14 Load 26 - 28: 14 MatrixTimesMatrix 24 27 - 37: 22(ptr) AccessChain 36 25 - 38: 14 Load 37 - 39: 14 MatrixTimesMatrix 28 38 - 40: 22(ptr) AccessChain 36 21 - 41: 14 Load 40 - 42: 14 MatrixTimesMatrix 39 41 - 47: 22(ptr) AccessChain 46 25 - 48: 14 Load 47 - 49: 14 MatrixTimesMatrix 42 48 - 50: 8(fvec4) VectorTimesMatrix 13 49 - Store 10(pos) 50 - 55: 15(fvec3) Load 54(c) - 58: 57(ptr) AccessChain 20(tblock) 56 - 59: 16 Load 58 - 60: 15(fvec3) VectorTimesMatrix 55 59 - Store 52(color) 60 - 65: 64(ptr) AccessChain 20(tblock) 63 - 66: 17(int) Load 65 - 69: 30(int) Load 68(uiuin) - 70: 17(int) Bitcast 69 - 71: 17(int) IAdd 66 70 - 75: 72(ivec2) Load 74(aiv2) - 76: 17(int) CompositeExtract 75 1 - 77: 17(int) IAdd 71 76 - Store 62(iout) 77 - 81: 15(fvec3) Load 54(c) - 82: 51(ptr) AccessChain 80(s) 21 - Store 82 81 - 83: 8(fvec4) Load 12(p) - 84: 7(float) CompositeExtract 83 0 - 86: 85(ptr) AccessChain 80(s) 25 - Store 86 84 - 88: 87(ptr) AccessChain 36 56 25 - 89: 15(fvec3) Load 88 - 93: 92(bvec3) FOrdNotEqual 89 91 - 94: 43(bool) Any 93 - 96: 95(ptr) AccessChain 36 63 56 - 97: 31(ivec3) Load 96 - 100: 92(bvec3) INotEqual 97 99 - 101: 43(bool) Any 100 - 102: 43(bool) LogicalOr 94 101 - SelectionMerge 104 None - BranchConditional 102 103 104 - 103: Label - 105: 51(ptr) AccessChain 80(s) 21 - 106: 15(fvec3) Load 105 - 107: 15(fvec3) CompositeConstruct 90 90 90 - 108: 15(fvec3) FAdd 106 107 - Store 105 108 - Branch 104 - 104: Label - Branch 6 - 6: Label + 12: 7(fvec4) Load 11(p) + 22: 21(ptr) AccessChain 19(tblock) 20 + 23: 13 Load 22 + 25: 21(ptr) AccessChain 19(tblock) 24 + 26: 13 Load 25 + 27: 13 MatrixTimesMatrix 23 26 + 36: 21(ptr) AccessChain 35 24 + 37: 13 Load 36 + 38: 13 MatrixTimesMatrix 27 37 + 39: 21(ptr) AccessChain 35 20 + 40: 13 Load 39 + 41: 13 MatrixTimesMatrix 38 40 + 46: 21(ptr) AccessChain 45 24 + 47: 13 Load 46 + 48: 13 MatrixTimesMatrix 41 47 + 49: 7(fvec4) VectorTimesMatrix 12 48 + Store 9(pos) 49 + 54: 14(fvec3) Load 53(c) + 57: 56(ptr) AccessChain 19(tblock) 55 + 58: 15 Load 57 + 59: 14(fvec3) VectorTimesMatrix 54 58 + Store 51(color) 59 + 64: 63(ptr) AccessChain 19(tblock) 62 + 65: 16(int) Load 64 + 68: 29(int) Load 67(uiuin) + 69: 16(int) Bitcast 68 + 70: 16(int) IAdd 65 69 + 74: 71(ivec2) Load 73(aiv2) + 75: 16(int) CompositeExtract 74 1 + 76: 16(int) IAdd 70 75 + Store 61(iout) 76 + 80: 14(fvec3) Load 53(c) + 81: 50(ptr) AccessChain 79(s) 20 + Store 81 80 + 82: 7(fvec4) Load 11(p) + 83: 6(float) CompositeExtract 82 0 + 85: 84(ptr) AccessChain 79(s) 24 + Store 85 83 + 87: 86(ptr) AccessChain 35 55 24 + 88: 14(fvec3) Load 87 + 92: 91(bvec3) FOrdNotEqual 88 90 + 93: 42(bool) Any 92 + 95: 94(ptr) AccessChain 35 62 55 + 96: 30(ivec3) Load 95 + 99: 91(bvec3) INotEqual 96 98 + 100: 42(bool) Any 99 + 101: 42(bool) LogicalOr 93 100 + SelectionMerge 103 None + BranchConditional 101 102 103 + 102: Label + 104: 50(ptr) AccessChain 79(s) 20 + 105: 14(fvec3) Load 104 + 106: 14(fvec3) CompositeConstruct 89 89 89 + 107: 14(fvec3) FAdd 105 106 + Store 104 107 + Branch 103 + 103: Label Return FunctionEnd diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out index b8c7b884..d6a53ac7 100644 --- a/Test/baseResults/spv.310.comp.out +++ b/Test/baseResults/spv.310.comp.out @@ -7,7 +7,7 @@ Linked compute stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 68 +// Id's are bound by 67 Source ESSL 310 Capability Shader @@ -15,107 +15,105 @@ Linked compute stage: MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" Name 4 "main" - Name 14 "outb" - MemberName 14(outb) 0 "f" - MemberName 14(outb) 1 "g" - MemberName 14(outb) 2 "h" - MemberName 14(outb) 3 "uns" - Name 16 "outbname" - Name 20 "s" - Name 25 "outbna" - MemberName 25(outbna) 0 "k" - MemberName 25(outbna) 1 "na" - Name 27 "outbnamena" - Name 44 "i" - Name 50 "outs" - MemberName 50(outs) 0 "s" - MemberName 50(outs) 1 "va" - Name 52 "outnames" - Name 55 "gl_LocalInvocationID" - Decorate 14(outb) GLSLShared - Decorate 14(outb) BufferBlock - Decorate 25(outbna) GLSLShared - Decorate 25(outbna) BufferBlock - Decorate 50(outs) GLSLShared - Decorate 50(outs) BufferBlock - Decorate 55(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 67 BuiltIn WorkgroupSize - Decorate 67 NoStaticUse + Name 13 "outb" + MemberName 13(outb) 0 "f" + MemberName 13(outb) 1 "g" + MemberName 13(outb) 2 "h" + MemberName 13(outb) 3 "uns" + Name 15 "outbname" + Name 19 "s" + Name 24 "outbna" + MemberName 24(outbna) 0 "k" + MemberName 24(outbna) 1 "na" + Name 26 "outbnamena" + Name 43 "i" + Name 49 "outs" + MemberName 49(outs) 0 "s" + MemberName 49(outs) 1 "va" + Name 51 "outnames" + Name 54 "gl_LocalInvocationID" + Decorate 13(outb) GLSLShared + Decorate 13(outb) BufferBlock + Decorate 24(outbna) GLSLShared + Decorate 24(outbna) BufferBlock + Decorate 49(outs) GLSLShared + Decorate 49(outs) BufferBlock + Decorate 54(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 66 BuiltIn WorkgroupSize + Decorate 66 NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 0 - 8: 7(int) Constant 1 - 9: 7(int) Constant 1023 - 10: 7(int) Constant 0 - 11: TypeFloat 32 - 12: TypeVector 11(float) 3 - 13: TypeRuntimeArray 12(fvec3) - 14(outb): TypeStruct 11(float) 11(float) 11(float) 13 - 15: TypePointer Uniform 14(outb) - 16(outbname): 15(ptr) Variable Uniform - 17: TypeInt 32 1 - 18: 17(int) Constant 0 - 19: TypePointer WorkgroupLocal 11(float) - 20(s): 19(ptr) Variable WorkgroupLocal - 22: TypePointer Uniform 11(float) - 24: TypeVector 11(float) 4 - 25(outbna): TypeStruct 17(int) 24(fvec4) - 26: TypePointer Uniform 25(outbna) - 27(outbnamena): 26(ptr) Variable Uniform - 28: 17(int) Constant 1 - 31: TypePointer Uniform 24(fvec4) - 33: 17(int) Constant 3 - 34: 17(int) Constant 18 - 35: TypePointer Uniform 12(fvec3) - 39: 17(int) Constant 17 - 40: 11(float) Constant 1077936128 - 41: 12(fvec3) ConstantComposite 40 40 40 - 43: TypePointer WorkgroupLocal 17(int) - 44(i): 43(ptr) Variable WorkgroupLocal - 49: TypeRuntimeArray 24(fvec4) - 50(outs): TypeStruct 17(int) 49 - 51: TypePointer Uniform 50(outs) - 52(outnames): 51(ptr) Variable Uniform - 53: TypeVector 7(int) 3 - 54: TypePointer Input 53(ivec3) -55(gl_LocalInvocationID): 54(ptr) Variable Input - 62: TypePointer Uniform 17(int) - 64: 7(int) Constant 16 - 65: 7(int) Constant 32 - 66: 7(int) Constant 4 - 67: 53(ivec3) ConstantComposite 64 65 66 + 6: TypeInt 32 0 + 7: 6(int) Constant 1 + 8: 6(int) Constant 1023 + 9: 6(int) Constant 0 + 10: TypeFloat 32 + 11: TypeVector 10(float) 3 + 12: TypeRuntimeArray 11(fvec3) + 13(outb): TypeStruct 10(float) 10(float) 10(float) 12 + 14: TypePointer Uniform 13(outb) + 15(outbname): 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer WorkgroupLocal 10(float) + 19(s): 18(ptr) Variable WorkgroupLocal + 21: TypePointer Uniform 10(float) + 23: TypeVector 10(float) 4 + 24(outbna): TypeStruct 16(int) 23(fvec4) + 25: TypePointer Uniform 24(outbna) + 26(outbnamena): 25(ptr) Variable Uniform + 27: 16(int) Constant 1 + 30: TypePointer Uniform 23(fvec4) + 32: 16(int) Constant 3 + 33: 16(int) Constant 18 + 34: TypePointer Uniform 11(fvec3) + 38: 16(int) Constant 17 + 39: 10(float) Constant 1077936128 + 40: 11(fvec3) ConstantComposite 39 39 39 + 42: TypePointer WorkgroupLocal 16(int) + 43(i): 42(ptr) Variable WorkgroupLocal + 48: TypeRuntimeArray 23(fvec4) + 49(outs): TypeStruct 16(int) 48 + 50: TypePointer Uniform 49(outs) + 51(outnames): 50(ptr) Variable Uniform + 52: TypeVector 6(int) 3 + 53: TypePointer Input 52(ivec3) +54(gl_LocalInvocationID): 53(ptr) Variable Input + 61: TypePointer Uniform 16(int) + 63: 6(int) Constant 16 + 64: 6(int) Constant 32 + 65: 6(int) Constant 4 + 66: 52(ivec3) ConstantComposite 63 64 65 4(main): 2 Function None 3 5: Label - MemoryBarrier 8 9 - ControlBarrier 8 8 10 - 21: 11(float) Load 20(s) - 23: 22(ptr) AccessChain 16(outbname) 18 - Store 23 21 - 29: 11(float) Load 20(s) - 30: 24(fvec4) CompositeConstruct 29 29 29 29 - 32: 31(ptr) AccessChain 27(outbnamena) 28 - Store 32 30 - 36: 35(ptr) AccessChain 16(outbname) 33 34 - 37: 12(fvec3) Load 36 - 38: 11(float) CompositeExtract 37 0 - Store 20(s) 38 - 42: 35(ptr) AccessChain 16(outbname) 33 39 - Store 42 41 - 45: 17(int) Load 44(i) - 46: 11(float) Load 20(s) - 47: 12(fvec3) CompositeConstruct 46 46 46 - 48: 35(ptr) AccessChain 16(outbname) 33 45 - Store 48 47 - 56: 53(ivec3) Load 55(gl_LocalInvocationID) - 57: 7(int) CompositeExtract 56 0 - 58: 11(float) Load 20(s) - 59: 24(fvec4) CompositeConstruct 58 58 58 58 - 60: 31(ptr) AccessChain 52(outnames) 28 57 - Store 60 59 - 61: 17(int) ArrayLength 16(outbname) - 63: 62(ptr) AccessChain 52(outnames) 18 - Store 63 61 - Branch 6 - 6: Label + MemoryBarrier 7 8 + ControlBarrier 7 7 9 + 20: 10(float) Load 19(s) + 22: 21(ptr) AccessChain 15(outbname) 17 + Store 22 20 + 28: 10(float) Load 19(s) + 29: 23(fvec4) CompositeConstruct 28 28 28 28 + 31: 30(ptr) AccessChain 26(outbnamena) 27 + Store 31 29 + 35: 34(ptr) AccessChain 15(outbname) 32 33 + 36: 11(fvec3) Load 35 + 37: 10(float) CompositeExtract 36 0 + Store 19(s) 37 + 41: 34(ptr) AccessChain 15(outbname) 32 38 + Store 41 40 + 44: 16(int) Load 43(i) + 45: 10(float) Load 19(s) + 46: 11(fvec3) CompositeConstruct 45 45 45 + 47: 34(ptr) AccessChain 15(outbname) 32 44 + Store 47 46 + 55: 52(ivec3) Load 54(gl_LocalInvocationID) + 56: 6(int) CompositeExtract 55 0 + 57: 10(float) Load 19(s) + 58: 23(fvec4) CompositeConstruct 57 57 57 57 + 59: 30(ptr) AccessChain 51(outnames) 27 56 + Store 59 58 + 60: 16(int) ArrayLength 15(outbname) + 62: 61(ptr) AccessChain 51(outnames) 17 + Store 62 60 Return FunctionEnd diff --git a/Test/baseResults/spv.330.geom.out b/Test/baseResults/spv.330.geom.out index 7ce0eb4f..1a779876 100755 --- a/Test/baseResults/spv.330.geom.out +++ b/Test/baseResults/spv.330.geom.out @@ -5,7 +5,7 @@ Linked geometry stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 33 +// Id's are bound by 32 Source GLSL 330 SourceExtension "GL_ARB_separate_shader_objects" @@ -18,57 +18,55 @@ Linked geometry stage: ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputVertices 3 Name 4 "main" - Name 12 "gl_PerVertex" - MemberName 12(gl_PerVertex) 0 "gl_Position" - MemberName 12(gl_PerVertex) 1 "gl_ClipDistance" - Name 14 "" - Name 17 "gl_PerVertex" - MemberName 17(gl_PerVertex) 0 "gl_Position" - MemberName 17(gl_PerVertex) 1 "gl_ClipDistance" - Name 21 "gl_in" - MemberDecorate 12(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 12(gl_PerVertex) 1 BuiltIn ClipDistance - Decorate 12(gl_PerVertex) Block - Decorate 12(gl_PerVertex) Stream 0 - Decorate 14 Stream 0 - MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 17(gl_PerVertex) 1 BuiltIn ClipDistance - Decorate 17(gl_PerVertex) Block + Name 11 "gl_PerVertex" + MemberName 11(gl_PerVertex) 0 "gl_Position" + MemberName 11(gl_PerVertex) 1 "gl_ClipDistance" + Name 13 "" + Name 16 "gl_PerVertex" + MemberName 16(gl_PerVertex) 0 "gl_Position" + MemberName 16(gl_PerVertex) 1 "gl_ClipDistance" + Name 20 "gl_in" + MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance + Decorate 11(gl_PerVertex) Block + Decorate 11(gl_PerVertex) Stream 0 + Decorate 13 Stream 0 + MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance + Decorate 16(gl_PerVertex) Block 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypeInt 32 0 - 10: 9(int) Constant 1 - 11: TypeArray 7(float) 10 -12(gl_PerVertex): TypeStruct 8(fvec4) 11 - 13: TypePointer Output 12(gl_PerVertex) - 14: 13(ptr) Variable Output - 15: TypeInt 32 1 - 16: 15(int) Constant 0 -17(gl_PerVertex): TypeStruct 8(fvec4) 11 - 18: 9(int) Constant 3 - 19: TypeArray 17(gl_PerVertex) 18 - 20: TypePointer Input 19 - 21(gl_in): 20(ptr) Variable Input - 22: 15(int) Constant 1 - 23: TypePointer Input 8(fvec4) - 26: TypePointer Output 8(fvec4) - 28: TypePointer Input 7(float) - 31: TypePointer Output 7(float) + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 1 + 10: TypeArray 6(float) 9 +11(gl_PerVertex): TypeStruct 7(fvec4) 10 + 12: TypePointer Output 11(gl_PerVertex) + 13: 12(ptr) Variable Output + 14: TypeInt 32 1 + 15: 14(int) Constant 0 +16(gl_PerVertex): TypeStruct 7(fvec4) 10 + 17: 8(int) Constant 3 + 18: TypeArray 16(gl_PerVertex) 17 + 19: TypePointer Input 18 + 20(gl_in): 19(ptr) Variable Input + 21: 14(int) Constant 1 + 22: TypePointer Input 7(fvec4) + 25: TypePointer Output 7(fvec4) + 27: TypePointer Input 6(float) + 30: TypePointer Output 6(float) 4(main): 2 Function None 3 5: Label - 24: 23(ptr) AccessChain 21(gl_in) 22 16 - 25: 8(fvec4) Load 24 - 27: 26(ptr) AccessChain 14 16 - Store 27 25 - 29: 28(ptr) AccessChain 21(gl_in) 22 22 16 - 30: 7(float) Load 29 - 32: 31(ptr) AccessChain 14 22 16 - Store 32 30 + 23: 22(ptr) AccessChain 20(gl_in) 21 15 + 24: 7(fvec4) Load 23 + 26: 25(ptr) AccessChain 13 15 + Store 26 24 + 28: 27(ptr) AccessChain 20(gl_in) 21 21 15 + 29: 6(float) Load 28 + 31: 30(ptr) AccessChain 13 21 15 + Store 31 29 EmitVertex EndPrimitive - Branch 6 - 6: Label Return FunctionEnd diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out index 49ff1b85..076bf6f1 100755 --- a/Test/baseResults/spv.400.tesc.out +++ b/Test/baseResults/spv.400.tesc.out @@ -7,7 +7,7 @@ Linked tessellation control stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 91 +// Id's are bound by 90 Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" @@ -17,164 +17,162 @@ Linked tessellation control stage: EntryPoint TessellationControl 4 "main" ExecutionMode 4 OutputVertices 4 Name 4 "main" - Name 13 "a" - Name 18 "p" - Name 20 "gl_PerVertex" - MemberName 20(gl_PerVertex) 0 "gl_Position" - MemberName 20(gl_PerVertex) 1 "gl_PointSize" - MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" - Name 24 "gl_in" - Name 31 "ps" - Name 35 "cd" - Name 39 "pvi" - Name 41 "gl_PatchVerticesIn" - Name 43 "pid" - Name 44 "gl_PrimitiveID" - Name 46 "iid" - Name 47 "gl_InvocationID" - Name 49 "gl_PerVertex" - MemberName 49(gl_PerVertex) 0 "gl_Position" - MemberName 49(gl_PerVertex) 1 "gl_PointSize" - MemberName 49(gl_PerVertex) 2 "gl_ClipDistance" - Name 53 "gl_out" - Name 64 "gl_TessLevelOuter" - Name 71 "gl_TessLevelInner" - Name 76 "outa" - Name 77 "patchOut" - Name 81 "inb" - Name 82 "ind" - Name 85 "ivla" - Name 86 "ivlb" - Name 89 "ovla" - Name 90 "ovlb" - Decorate 20(gl_PerVertex) Block - Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices - Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 47(gl_InvocationID) BuiltIn InvocationId - MemberDecorate 49(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 49(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 49(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 49(gl_PerVertex) Block - Decorate 64(gl_TessLevelOuter) Patch - Decorate 64(gl_TessLevelOuter) BuiltIn TessLevelOuter - Decorate 71(gl_TessLevelInner) Patch - Decorate 71(gl_TessLevelInner) BuiltIn TessLevelInner - Decorate 76(outa) NoStaticUse - Decorate 77(patchOut) Patch - Decorate 77(patchOut) NoStaticUse - Decorate 81(inb) NoStaticUse - Decorate 82(ind) NoStaticUse - Decorate 85(ivla) Location 3 - Decorate 85(ivla) NoStaticUse - Decorate 86(ivlb) Location 4 - Decorate 86(ivlb) NoStaticUse - Decorate 89(ovla) Location 3 - Decorate 89(ovla) NoStaticUse - Decorate 90(ovlb) Location 4 - Decorate 90(ovlb) NoStaticUse + Name 12 "a" + Name 17 "p" + Name 19 "gl_PerVertex" + MemberName 19(gl_PerVertex) 0 "gl_Position" + MemberName 19(gl_PerVertex) 1 "gl_PointSize" + MemberName 19(gl_PerVertex) 2 "gl_ClipDistance" + Name 23 "gl_in" + Name 30 "ps" + Name 34 "cd" + Name 38 "pvi" + Name 40 "gl_PatchVerticesIn" + Name 42 "pid" + Name 43 "gl_PrimitiveID" + Name 45 "iid" + Name 46 "gl_InvocationID" + Name 48 "gl_PerVertex" + MemberName 48(gl_PerVertex) 0 "gl_Position" + MemberName 48(gl_PerVertex) 1 "gl_PointSize" + MemberName 48(gl_PerVertex) 2 "gl_ClipDistance" + Name 52 "gl_out" + Name 63 "gl_TessLevelOuter" + Name 70 "gl_TessLevelInner" + Name 75 "outa" + Name 76 "patchOut" + Name 80 "inb" + Name 81 "ind" + Name 84 "ivla" + Name 85 "ivlb" + Name 88 "ovla" + Name 89 "ovlb" + Decorate 19(gl_PerVertex) Block + Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices + Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 46(gl_InvocationID) BuiltIn InvocationId + MemberDecorate 48(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 48(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 48(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 48(gl_PerVertex) Block + Decorate 63(gl_TessLevelOuter) Patch + Decorate 63(gl_TessLevelOuter) BuiltIn TessLevelOuter + Decorate 70(gl_TessLevelInner) Patch + Decorate 70(gl_TessLevelInner) BuiltIn TessLevelInner + Decorate 75(outa) NoStaticUse + Decorate 76(patchOut) Patch + Decorate 76(patchOut) NoStaticUse + Decorate 80(inb) NoStaticUse + Decorate 81(ind) NoStaticUse + Decorate 84(ivla) Location 3 + Decorate 84(ivla) NoStaticUse + Decorate 85(ivlb) Location 4 + Decorate 85(ivlb) NoStaticUse + Decorate 88(ovla) Location 3 + Decorate 88(ovla) NoStaticUse + Decorate 89(ovlb) Location 4 + Decorate 89(ovlb) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 0 - 8: 7(int) Constant 1 - 9: 7(int) Constant 1023 - 10: 7(int) Constant 0 - 11: TypeInt 32 1 - 12: TypePointer Function 11(int) - 14: 11(int) Constant 5392 - 15: TypeFloat 32 - 16: TypeVector 15(float) 4 - 17: TypePointer Function 16(fvec4) - 19: TypeArray 15(float) 8 -20(gl_PerVertex): TypeStruct 16(fvec4) 15(float) 19 - 21: 7(int) Constant 32 - 22: TypeArray 20(gl_PerVertex) 21 - 23: TypePointer Input 22 - 24(gl_in): 23(ptr) Variable Input - 25: 11(int) Constant 1 - 26: 11(int) Constant 0 - 27: TypePointer Input 16(fvec4) - 30: TypePointer Function 15(float) - 32: TypePointer Input 15(float) - 36: 11(int) Constant 2 - 40: TypePointer Input 11(int) -41(gl_PatchVerticesIn): 40(ptr) Variable Input -44(gl_PrimitiveID): 40(ptr) Variable Input -47(gl_InvocationID): 40(ptr) Variable Input -49(gl_PerVertex): TypeStruct 16(fvec4) 15(float) 19 - 50: 7(int) Constant 4 - 51: TypeArray 49(gl_PerVertex) 50 - 52: TypePointer Output 51 - 53(gl_out): 52(ptr) Variable Output - 55: TypePointer Output 16(fvec4) - 58: TypePointer Output 15(float) - 62: TypeArray 15(float) 50 - 63: TypePointer Output 62 -64(gl_TessLevelOuter): 63(ptr) Variable Output - 65: 11(int) Constant 3 - 66: 15(float) Constant 1078774989 - 68: 7(int) Constant 2 - 69: TypeArray 15(float) 68 - 70: TypePointer Output 69 -71(gl_TessLevelInner): 70(ptr) Variable Output - 72: 15(float) Constant 1067869798 - 74: TypeArray 11(int) 50 - 75: TypePointer PrivateGlobal 74 - 76(outa): 75(ptr) Variable PrivateGlobal - 77(patchOut): 55(ptr) Variable Output - 78: TypeVector 15(float) 2 - 79: TypeArray 78(fvec2) 21 - 80: TypePointer Input 79 - 81(inb): 80(ptr) Variable Input - 82(ind): 80(ptr) Variable Input - 83: TypeArray 16(fvec4) 21 - 84: TypePointer Input 83 - 85(ivla): 84(ptr) Variable Input - 86(ivlb): 84(ptr) Variable Input - 87: TypeArray 16(fvec4) 50 - 88: TypePointer Output 87 - 89(ovla): 88(ptr) Variable Output - 90(ovlb): 88(ptr) Variable Output + 6: TypeInt 32 0 + 7: 6(int) Constant 1 + 8: 6(int) Constant 1023 + 9: 6(int) Constant 0 + 10: TypeInt 32 1 + 11: TypePointer Function 10(int) + 13: 10(int) Constant 5392 + 14: TypeFloat 32 + 15: TypeVector 14(float) 4 + 16: TypePointer Function 15(fvec4) + 18: TypeArray 14(float) 7 +19(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 18 + 20: 6(int) Constant 32 + 21: TypeArray 19(gl_PerVertex) 20 + 22: TypePointer Input 21 + 23(gl_in): 22(ptr) Variable Input + 24: 10(int) Constant 1 + 25: 10(int) Constant 0 + 26: TypePointer Input 15(fvec4) + 29: TypePointer Function 14(float) + 31: TypePointer Input 14(float) + 35: 10(int) Constant 2 + 39: TypePointer Input 10(int) +40(gl_PatchVerticesIn): 39(ptr) Variable Input +43(gl_PrimitiveID): 39(ptr) Variable Input +46(gl_InvocationID): 39(ptr) Variable Input +48(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 18 + 49: 6(int) Constant 4 + 50: TypeArray 48(gl_PerVertex) 49 + 51: TypePointer Output 50 + 52(gl_out): 51(ptr) Variable Output + 54: TypePointer Output 15(fvec4) + 57: TypePointer Output 14(float) + 61: TypeArray 14(float) 49 + 62: TypePointer Output 61 +63(gl_TessLevelOuter): 62(ptr) Variable Output + 64: 10(int) Constant 3 + 65: 14(float) Constant 1078774989 + 67: 6(int) Constant 2 + 68: TypeArray 14(float) 67 + 69: TypePointer Output 68 +70(gl_TessLevelInner): 69(ptr) Variable Output + 71: 14(float) Constant 1067869798 + 73: TypeArray 10(int) 49 + 74: TypePointer PrivateGlobal 73 + 75(outa): 74(ptr) Variable PrivateGlobal + 76(patchOut): 54(ptr) Variable Output + 77: TypeVector 14(float) 2 + 78: TypeArray 77(fvec2) 20 + 79: TypePointer Input 78 + 80(inb): 79(ptr) Variable Input + 81(ind): 79(ptr) Variable Input + 82: TypeArray 15(fvec4) 20 + 83: TypePointer Input 82 + 84(ivla): 83(ptr) Variable Input + 85(ivlb): 83(ptr) Variable Input + 86: TypeArray 15(fvec4) 49 + 87: TypePointer Output 86 + 88(ovla): 87(ptr) Variable Output + 89(ovlb): 87(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 13(a): 12(ptr) Variable Function - 18(p): 17(ptr) Variable Function - 31(ps): 30(ptr) Variable Function - 35(cd): 30(ptr) Variable Function - 39(pvi): 12(ptr) Variable Function - 43(pid): 12(ptr) Variable Function - 46(iid): 12(ptr) Variable Function - MemoryBarrier 8 9 - ControlBarrier 8 8 10 - Store 13(a) 14 - 28: 27(ptr) AccessChain 24(gl_in) 25 26 - 29: 16(fvec4) Load 28 - Store 18(p) 29 - 33: 32(ptr) AccessChain 24(gl_in) 25 25 - 34: 15(float) Load 33 - Store 31(ps) 34 - 37: 32(ptr) AccessChain 24(gl_in) 25 36 36 - 38: 15(float) Load 37 - Store 35(cd) 38 - 42: 11(int) Load 41(gl_PatchVerticesIn) - Store 39(pvi) 42 - 45: 11(int) Load 44(gl_PrimitiveID) - Store 43(pid) 45 - 48: 11(int) Load 47(gl_InvocationID) - Store 46(iid) 48 - 54: 16(fvec4) Load 18(p) - 56: 55(ptr) AccessChain 53(gl_out) 25 26 - Store 56 54 - 57: 15(float) Load 31(ps) - 59: 58(ptr) AccessChain 53(gl_out) 25 25 - Store 59 57 - 60: 15(float) Load 35(cd) - 61: 58(ptr) AccessChain 53(gl_out) 25 36 25 - Store 61 60 - 67: 58(ptr) AccessChain 64(gl_TessLevelOuter) 65 - Store 67 66 - 73: 58(ptr) AccessChain 71(gl_TessLevelInner) 25 - Store 73 72 - Branch 6 - 6: Label + 12(a): 11(ptr) Variable Function + 17(p): 16(ptr) Variable Function + 30(ps): 29(ptr) Variable Function + 34(cd): 29(ptr) Variable Function + 38(pvi): 11(ptr) Variable Function + 42(pid): 11(ptr) Variable Function + 45(iid): 11(ptr) Variable Function + MemoryBarrier 7 8 + ControlBarrier 7 7 9 + Store 12(a) 13 + 27: 26(ptr) AccessChain 23(gl_in) 24 25 + 28: 15(fvec4) Load 27 + Store 17(p) 28 + 32: 31(ptr) AccessChain 23(gl_in) 24 24 + 33: 14(float) Load 32 + Store 30(ps) 33 + 36: 31(ptr) AccessChain 23(gl_in) 24 35 35 + 37: 14(float) Load 36 + Store 34(cd) 37 + 41: 10(int) Load 40(gl_PatchVerticesIn) + Store 38(pvi) 41 + 44: 10(int) Load 43(gl_PrimitiveID) + Store 42(pid) 44 + 47: 10(int) Load 46(gl_InvocationID) + Store 45(iid) 47 + 53: 15(fvec4) Load 17(p) + 55: 54(ptr) AccessChain 52(gl_out) 24 25 + Store 55 53 + 56: 14(float) Load 30(ps) + 58: 57(ptr) AccessChain 52(gl_out) 24 24 + Store 58 56 + 59: 14(float) Load 34(cd) + 60: 57(ptr) AccessChain 52(gl_out) 24 35 24 + Store 60 59 + 66: 57(ptr) AccessChain 63(gl_TessLevelOuter) 64 + Store 66 65 + 72: 57(ptr) AccessChain 70(gl_TessLevelInner) 24 + Store 72 71 Return FunctionEnd diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out index fab82350..9a63b165 100755 --- a/Test/baseResults/spv.400.tese.out +++ b/Test/baseResults/spv.400.tese.out @@ -7,7 +7,7 @@ Linked tessellation evaluation stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 99 +// Id's are bound by 98 Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" @@ -17,177 +17,175 @@ Linked tessellation evaluation stage: EntryPoint TessellationEvaluation 4 "main" ExecutionMode 4 InputTriangles Name 4 "main" - Name 9 "a" - Name 14 "p" - Name 18 "gl_PerVertex" - MemberName 18(gl_PerVertex) 0 "gl_Position" - MemberName 18(gl_PerVertex) 1 "gl_PointSize" - MemberName 18(gl_PerVertex) 2 "gl_ClipDistance" - Name 22 "gl_in" - Name 29 "ps" - Name 33 "cd" - Name 37 "pvi" - Name 39 "gl_PatchVerticesIn" - Name 41 "pid" - Name 42 "gl_PrimitiveID" - Name 46 "tc" - Name 48 "gl_TessCoord" - Name 50 "tlo" - Name 54 "gl_TessLevelOuter" - Name 58 "tli" - Name 62 "gl_TessLevelInner" - Name 67 "gl_PerVertex" - MemberName 67(gl_PerVertex) 0 "gl_Position" - MemberName 67(gl_PerVertex) 1 "gl_PointSize" - MemberName 67(gl_PerVertex) 2 "gl_ClipDistance" - Name 69 "" - Name 78 "patchIn" - Name 82 "inb" - Name 83 "ind" - Name 84 "testblb" - MemberName 84(testblb) 0 "f" - Name 87 "blb" - Name 88 "testbld" - MemberName 88(testbld) 0 "f" - Name 91 "bld" - Name 94 "ivla" - Name 95 "ivlb" - Name 98 "ovla" - Decorate 18(gl_PerVertex) Block - Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices - Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 48(gl_TessCoord) BuiltIn TessCoord - Decorate 54(gl_TessLevelOuter) Patch - Decorate 54(gl_TessLevelOuter) BuiltIn TessLevelOuter - Decorate 62(gl_TessLevelInner) Patch - Decorate 62(gl_TessLevelInner) BuiltIn TessLevelInner - MemberDecorate 67(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 67(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 67(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 67(gl_PerVertex) Block - Decorate 78(patchIn) Patch - Decorate 78(patchIn) NoStaticUse - Decorate 82(inb) NoStaticUse - Decorate 83(ind) NoStaticUse - Decorate 84(testblb) Block - Decorate 87(blb) NoStaticUse - Decorate 88(testbld) Block - Decorate 91(bld) NoStaticUse - Decorate 94(ivla) Location 23 - Decorate 94(ivla) NoStaticUse - Decorate 95(ivlb) Location 24 - Decorate 95(ivlb) NoStaticUse - Decorate 98(ovla) Location 23 - Decorate 98(ovla) NoStaticUse + Name 8 "a" + Name 13 "p" + Name 17 "gl_PerVertex" + MemberName 17(gl_PerVertex) 0 "gl_Position" + MemberName 17(gl_PerVertex) 1 "gl_PointSize" + MemberName 17(gl_PerVertex) 2 "gl_ClipDistance" + Name 21 "gl_in" + Name 28 "ps" + Name 32 "cd" + Name 36 "pvi" + Name 38 "gl_PatchVerticesIn" + Name 40 "pid" + Name 41 "gl_PrimitiveID" + Name 45 "tc" + Name 47 "gl_TessCoord" + Name 49 "tlo" + Name 53 "gl_TessLevelOuter" + Name 57 "tli" + Name 61 "gl_TessLevelInner" + Name 66 "gl_PerVertex" + MemberName 66(gl_PerVertex) 0 "gl_Position" + MemberName 66(gl_PerVertex) 1 "gl_PointSize" + MemberName 66(gl_PerVertex) 2 "gl_ClipDistance" + Name 68 "" + Name 77 "patchIn" + Name 81 "inb" + Name 82 "ind" + Name 83 "testblb" + MemberName 83(testblb) 0 "f" + Name 86 "blb" + Name 87 "testbld" + MemberName 87(testbld) 0 "f" + Name 90 "bld" + Name 93 "ivla" + Name 94 "ivlb" + Name 97 "ovla" + Decorate 17(gl_PerVertex) Block + Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices + Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 47(gl_TessCoord) BuiltIn TessCoord + Decorate 53(gl_TessLevelOuter) Patch + Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter + Decorate 61(gl_TessLevelInner) Patch + Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner + MemberDecorate 66(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 66(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 66(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 66(gl_PerVertex) Block + Decorate 77(patchIn) Patch + Decorate 77(patchIn) NoStaticUse + Decorate 81(inb) NoStaticUse + Decorate 82(ind) NoStaticUse + Decorate 83(testblb) Block + Decorate 86(blb) NoStaticUse + Decorate 87(testbld) Block + Decorate 90(bld) NoStaticUse + Decorate 93(ivla) Location 23 + Decorate 93(ivla) NoStaticUse + Decorate 94(ivlb) Location 24 + Decorate 94(ivlb) NoStaticUse + Decorate 97(ovla) Location 23 + Decorate 97(ovla) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 1512 - 11: TypeFloat 32 - 12: TypeVector 11(float) 4 - 13: TypePointer Function 12(fvec4) - 15: TypeInt 32 0 - 16: 15(int) Constant 1 - 17: TypeArray 11(float) 16 -18(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 17 - 19: 15(int) Constant 32 - 20: TypeArray 18(gl_PerVertex) 19 - 21: TypePointer Input 20 - 22(gl_in): 21(ptr) Variable Input - 23: 7(int) Constant 1 - 24: 7(int) Constant 0 - 25: TypePointer Input 12(fvec4) - 28: TypePointer Function 11(float) - 30: TypePointer Input 11(float) - 34: 7(int) Constant 2 - 38: TypePointer Input 7(int) -39(gl_PatchVerticesIn): 38(ptr) Variable Input -42(gl_PrimitiveID): 38(ptr) Variable Input - 44: TypeVector 11(float) 3 - 45: TypePointer Function 44(fvec3) - 47: TypePointer Input 44(fvec3) -48(gl_TessCoord): 47(ptr) Variable Input - 51: 15(int) Constant 4 - 52: TypeArray 11(float) 51 - 53: TypePointer Input 52 -54(gl_TessLevelOuter): 53(ptr) Variable Input - 55: 7(int) Constant 3 - 59: 15(int) Constant 2 - 60: TypeArray 11(float) 59 - 61: TypePointer Input 60 -62(gl_TessLevelInner): 61(ptr) Variable Input - 65: 15(int) Constant 3 - 66: TypeArray 11(float) 65 -67(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 66 - 68: TypePointer Output 67(gl_PerVertex) - 69: 68(ptr) Variable Output - 71: TypePointer Output 12(fvec4) - 74: TypePointer Output 11(float) - 78(patchIn): 25(ptr) Variable Input - 79: TypeVector 11(float) 2 - 80: TypeArray 79(fvec2) 19 - 81: TypePointer Input 80 - 82(inb): 81(ptr) Variable Input - 83(ind): 81(ptr) Variable Input - 84(testblb): TypeStruct 7(int) - 85: TypeArray 84(testblb) 19 - 86: TypePointer Input 85 - 87(blb): 86(ptr) Variable Input - 88(testbld): TypeStruct 7(int) - 89: TypeArray 88(testbld) 19 - 90: TypePointer Input 89 - 91(bld): 90(ptr) Variable Input - 92: TypeArray 12(fvec4) 19 - 93: TypePointer Input 92 - 94(ivla): 93(ptr) Variable Input - 95(ivlb): 93(ptr) Variable Input - 96: TypeArray 12(fvec4) 59 - 97: TypePointer Output 96 - 98(ovla): 97(ptr) Variable Output + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 1512 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Function 11(fvec4) + 14: TypeInt 32 0 + 15: 14(int) Constant 1 + 16: TypeArray 10(float) 15 +17(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 16 + 18: 14(int) Constant 32 + 19: TypeArray 17(gl_PerVertex) 18 + 20: TypePointer Input 19 + 21(gl_in): 20(ptr) Variable Input + 22: 6(int) Constant 1 + 23: 6(int) Constant 0 + 24: TypePointer Input 11(fvec4) + 27: TypePointer Function 10(float) + 29: TypePointer Input 10(float) + 33: 6(int) Constant 2 + 37: TypePointer Input 6(int) +38(gl_PatchVerticesIn): 37(ptr) Variable Input +41(gl_PrimitiveID): 37(ptr) Variable Input + 43: TypeVector 10(float) 3 + 44: TypePointer Function 43(fvec3) + 46: TypePointer Input 43(fvec3) +47(gl_TessCoord): 46(ptr) Variable Input + 50: 14(int) Constant 4 + 51: TypeArray 10(float) 50 + 52: TypePointer Input 51 +53(gl_TessLevelOuter): 52(ptr) Variable Input + 54: 6(int) Constant 3 + 58: 14(int) Constant 2 + 59: TypeArray 10(float) 58 + 60: TypePointer Input 59 +61(gl_TessLevelInner): 60(ptr) Variable Input + 64: 14(int) Constant 3 + 65: TypeArray 10(float) 64 +66(gl_PerVertex): TypeStruct 11(fvec4) 10(float) 65 + 67: TypePointer Output 66(gl_PerVertex) + 68: 67(ptr) Variable Output + 70: TypePointer Output 11(fvec4) + 73: TypePointer Output 10(float) + 77(patchIn): 24(ptr) Variable Input + 78: TypeVector 10(float) 2 + 79: TypeArray 78(fvec2) 18 + 80: TypePointer Input 79 + 81(inb): 80(ptr) Variable Input + 82(ind): 80(ptr) Variable Input + 83(testblb): TypeStruct 6(int) + 84: TypeArray 83(testblb) 18 + 85: TypePointer Input 84 + 86(blb): 85(ptr) Variable Input + 87(testbld): TypeStruct 6(int) + 88: TypeArray 87(testbld) 18 + 89: TypePointer Input 88 + 90(bld): 89(ptr) Variable Input + 91: TypeArray 11(fvec4) 18 + 92: TypePointer Input 91 + 93(ivla): 92(ptr) Variable Input + 94(ivlb): 92(ptr) Variable Input + 95: TypeArray 11(fvec4) 58 + 96: TypePointer Output 95 + 97(ovla): 96(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 9(a): 8(ptr) Variable Function - 14(p): 13(ptr) Variable Function - 29(ps): 28(ptr) Variable Function - 33(cd): 28(ptr) Variable Function - 37(pvi): 8(ptr) Variable Function - 41(pid): 8(ptr) Variable Function - 46(tc): 45(ptr) Variable Function - 50(tlo): 28(ptr) Variable Function - 58(tli): 28(ptr) Variable Function - Store 9(a) 10 - 26: 25(ptr) AccessChain 22(gl_in) 23 24 - 27: 12(fvec4) Load 26 - Store 14(p) 27 - 31: 30(ptr) AccessChain 22(gl_in) 23 23 - 32: 11(float) Load 31 - Store 29(ps) 32 - 35: 30(ptr) AccessChain 22(gl_in) 23 34 34 - 36: 11(float) Load 35 - Store 33(cd) 36 - 40: 7(int) Load 39(gl_PatchVerticesIn) - Store 37(pvi) 40 - 43: 7(int) Load 42(gl_PrimitiveID) - Store 41(pid) 43 - 49: 44(fvec3) Load 48(gl_TessCoord) - Store 46(tc) 49 - 56: 30(ptr) AccessChain 54(gl_TessLevelOuter) 55 - 57: 11(float) Load 56 - Store 50(tlo) 57 - 63: 30(ptr) AccessChain 62(gl_TessLevelInner) 23 - 64: 11(float) Load 63 - Store 58(tli) 64 - 70: 12(fvec4) Load 14(p) - 72: 71(ptr) AccessChain 69 24 - Store 72 70 - 73: 11(float) Load 29(ps) - 75: 74(ptr) AccessChain 69 23 - Store 75 73 - 76: 11(float) Load 33(cd) - 77: 74(ptr) AccessChain 69 34 34 - Store 77 76 - Branch 6 - 6: Label + 8(a): 7(ptr) Variable Function + 13(p): 12(ptr) Variable Function + 28(ps): 27(ptr) Variable Function + 32(cd): 27(ptr) Variable Function + 36(pvi): 7(ptr) Variable Function + 40(pid): 7(ptr) Variable Function + 45(tc): 44(ptr) Variable Function + 49(tlo): 27(ptr) Variable Function + 57(tli): 27(ptr) Variable Function + Store 8(a) 9 + 25: 24(ptr) AccessChain 21(gl_in) 22 23 + 26: 11(fvec4) Load 25 + Store 13(p) 26 + 30: 29(ptr) AccessChain 21(gl_in) 22 22 + 31: 10(float) Load 30 + Store 28(ps) 31 + 34: 29(ptr) AccessChain 21(gl_in) 22 33 33 + 35: 10(float) Load 34 + Store 32(cd) 35 + 39: 6(int) Load 38(gl_PatchVerticesIn) + Store 36(pvi) 39 + 42: 6(int) Load 41(gl_PrimitiveID) + Store 40(pid) 42 + 48: 43(fvec3) Load 47(gl_TessCoord) + Store 45(tc) 48 + 55: 29(ptr) AccessChain 53(gl_TessLevelOuter) 54 + 56: 10(float) Load 55 + Store 49(tlo) 56 + 62: 29(ptr) AccessChain 61(gl_TessLevelInner) 22 + 63: 10(float) Load 62 + Store 57(tli) 63 + 69: 11(fvec4) Load 13(p) + 71: 70(ptr) AccessChain 68 23 + Store 71 69 + 72: 10(float) Load 28(ps) + 74: 73(ptr) AccessChain 68 22 + Store 74 72 + 75: 10(float) Load 32(cd) + 76: 73(ptr) AccessChain 68 33 33 + Store 76 75 Return FunctionEnd diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out index 082ae0a0..15485c2e 100755 --- a/Test/baseResults/spv.430.vert.out +++ b/Test/baseResults/spv.430.vert.out @@ -7,7 +7,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 63 +// Id's are bound by 62 Source GLSL 430 Capability Shader @@ -15,122 +15,120 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 11 "gl_PerVertex" - MemberName 11(gl_PerVertex) 0 "gl_ClipDistance" - Name 13 "" - Name 24 "bad" - Name 35 "badorder3" - Name 39 "f" - Name 43 "uv4" - Name 44 "badorder" - Name 45 "badorder2" - Name 46 "boundblock" - MemberName 46(boundblock) 0 "aoeu" - Name 48 "boundInst" - Name 49 "anonblock" - MemberName 49(anonblock) 0 "aoeu" - Name 51 "" - Name 55 "sampb1" - Name 58 "sampb2" - Name 59 "sampb4" - Name 61 "gl_VertexID" - Name 62 "gl_InstanceID" - MemberDecorate 11(gl_PerVertex) 0 BuiltIn ClipDistance - Decorate 11(gl_PerVertex) Block - Decorate 35(badorder3) Flat - Decorate 43(uv4) Location 4 - Decorate 43(uv4) NoStaticUse - Decorate 29 NoStaticUse - Decorate 29 NoStaticUse - Decorate 44(badorder) NoStaticUse - Decorate 45(badorder2) Smooth - Decorate 45(badorder2) Invariant - Decorate 45(badorder2) NoStaticUse - Decorate 46(boundblock) GLSLShared - Decorate 46(boundblock) Block - Decorate 48(boundInst) Binding 3 - Decorate 48(boundInst) NoStaticUse - Decorate 49(anonblock) GLSLShared - Decorate 49(anonblock) Block - Decorate 51 Binding 7 - Decorate 51 NoStaticUse - Decorate 55(sampb1) Binding 4 - Decorate 55(sampb1) NoStaticUse - Decorate 58(sampb2) Binding 5 - Decorate 58(sampb2) NoStaticUse - Decorate 59(sampb4) Binding 31 - Decorate 59(sampb4) NoStaticUse - Decorate 61(gl_VertexID) BuiltIn VertexId - Decorate 61(gl_VertexID) NoStaticUse - Decorate 62(gl_InstanceID) BuiltIn InstanceId - Decorate 62(gl_InstanceID) NoStaticUse + Name 10 "gl_PerVertex" + MemberName 10(gl_PerVertex) 0 "gl_ClipDistance" + Name 12 "" + Name 23 "bad" + Name 34 "badorder3" + Name 38 "f" + Name 42 "uv4" + Name 43 "badorder" + Name 44 "badorder2" + Name 45 "boundblock" + MemberName 45(boundblock) 0 "aoeu" + Name 47 "boundInst" + Name 48 "anonblock" + MemberName 48(anonblock) 0 "aoeu" + Name 50 "" + Name 54 "sampb1" + Name 57 "sampb2" + Name 58 "sampb4" + Name 60 "gl_VertexID" + Name 61 "gl_InstanceID" + MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance + Decorate 10(gl_PerVertex) Block + Decorate 34(badorder3) Flat + Decorate 42(uv4) Location 4 + Decorate 42(uv4) NoStaticUse + Decorate 28 NoStaticUse + Decorate 28 NoStaticUse + Decorate 43(badorder) NoStaticUse + Decorate 44(badorder2) Smooth + Decorate 44(badorder2) Invariant + Decorate 44(badorder2) NoStaticUse + Decorate 45(boundblock) GLSLShared + Decorate 45(boundblock) Block + Decorate 47(boundInst) Binding 3 + Decorate 47(boundInst) NoStaticUse + Decorate 48(anonblock) GLSLShared + Decorate 48(anonblock) Block + Decorate 50 Binding 7 + Decorate 50 NoStaticUse + Decorate 54(sampb1) Binding 4 + Decorate 54(sampb1) NoStaticUse + Decorate 57(sampb2) Binding 5 + Decorate 57(sampb2) NoStaticUse + Decorate 58(sampb4) Binding 31 + Decorate 58(sampb4) NoStaticUse + Decorate 60(gl_VertexID) BuiltIn VertexId + Decorate 60(gl_VertexID) NoStaticUse + Decorate 61(gl_InstanceID) BuiltIn InstanceId + Decorate 61(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeInt 32 0 - 9: 8(int) Constant 3 - 10: TypeArray 7(float) 9 -11(gl_PerVertex): TypeStruct 10 - 12: TypePointer Output 11(gl_PerVertex) - 13: 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: 14(int) Constant 2 - 17: 7(float) Constant 1080872141 - 18: TypePointer Output 7(float) - 20: TypeVector 7(float) 4 - 21: 8(int) Constant 10 - 22: TypeArray 20(fvec4) 21 - 23: TypePointer Input 22 - 24(bad): 23(ptr) Variable Input - 25: TypePointer Input 20(fvec4) - 29: 7(float) Constant 1082549862 - 30: TypeBool - 34: TypePointer Output 20(fvec4) - 35(badorder3): 34(ptr) Variable Output - 38: TypePointer UniformConstant 7(float) - 39(f): 38(ptr) Variable UniformConstant - 42: TypePointer UniformConstant 20(fvec4) - 43(uv4): 42(ptr) Variable UniformConstant - 44(badorder): 25(ptr) Variable Input - 45(badorder2): 34(ptr) Variable Output - 46(boundblock): TypeStruct 14(int) - 47: TypePointer Uniform 46(boundblock) - 48(boundInst): 47(ptr) Variable Uniform - 49(anonblock): TypeStruct 14(int) - 50: TypePointer Uniform 49(anonblock) - 51: 50(ptr) Variable Uniform - 52: TypeImage 7(float) 2D sampled format:Unknown - 53: TypeSampledImage 52 - 54: TypePointer UniformConstant 53 - 55(sampb1): 54(ptr) Variable UniformConstant - 56: TypeArray 53 21 - 57: TypePointer UniformConstant 56 - 58(sampb2): 57(ptr) Variable UniformConstant - 59(sampb4): 54(ptr) Variable UniformConstant - 60: TypePointer Input 14(int) - 61(gl_VertexID): 60(ptr) Variable Input -62(gl_InstanceID): 60(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8: 7(int) Constant 3 + 9: TypeArray 6(float) 8 +10(gl_PerVertex): TypeStruct 9 + 11: TypePointer Output 10(gl_PerVertex) + 12: 11(ptr) Variable Output + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 15: 13(int) Constant 2 + 16: 6(float) Constant 1080872141 + 17: TypePointer Output 6(float) + 19: TypeVector 6(float) 4 + 20: 7(int) Constant 10 + 21: TypeArray 19(fvec4) 20 + 22: TypePointer Input 21 + 23(bad): 22(ptr) Variable Input + 24: TypePointer Input 19(fvec4) + 28: 6(float) Constant 1082549862 + 29: TypeBool + 33: TypePointer Output 19(fvec4) + 34(badorder3): 33(ptr) Variable Output + 37: TypePointer UniformConstant 6(float) + 38(f): 37(ptr) Variable UniformConstant + 41: TypePointer UniformConstant 19(fvec4) + 42(uv4): 41(ptr) Variable UniformConstant + 43(badorder): 24(ptr) Variable Input + 44(badorder2): 33(ptr) Variable Output + 45(boundblock): TypeStruct 13(int) + 46: TypePointer Uniform 45(boundblock) + 47(boundInst): 46(ptr) Variable Uniform + 48(anonblock): TypeStruct 13(int) + 49: TypePointer Uniform 48(anonblock) + 50: 49(ptr) Variable Uniform + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypeSampledImage 51 + 53: TypePointer UniformConstant 52 + 54(sampb1): 53(ptr) Variable UniformConstant + 55: TypeArray 52 20 + 56: TypePointer UniformConstant 55 + 57(sampb2): 56(ptr) Variable UniformConstant + 58(sampb4): 53(ptr) Variable UniformConstant + 59: TypePointer Input 13(int) + 60(gl_VertexID): 59(ptr) Variable Input +61(gl_InstanceID): 59(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 19: 18(ptr) AccessChain 13 15 16 - Store 19 17 - 26: 25(ptr) AccessChain 24(bad) 15 - 27: 20(fvec4) Load 26 - 28: 7(float) CompositeExtract 27 0 - 31: 30(bool) FOrdEqual 28 29 - SelectionMerge 33 None - BranchConditional 31 32 33 - 32: Label - 36: 25(ptr) AccessChain 24(bad) 15 - 37: 20(fvec4) Load 36 - Store 35(badorder3) 37 - Branch 33 - 33: Label - 40: 7(float) Load 39(f) - 41: 18(ptr) AccessChain 13 15 15 - Store 41 40 - Branch 6 - 6: Label + 18: 17(ptr) AccessChain 12 14 15 + Store 18 16 + 25: 24(ptr) AccessChain 23(bad) 14 + 26: 19(fvec4) Load 25 + 27: 6(float) CompositeExtract 26 0 + 30: 29(bool) FOrdEqual 27 28 + SelectionMerge 32 None + BranchConditional 30 31 32 + 31: Label + 35: 24(ptr) AccessChain 23(bad) 14 + 36: 19(fvec4) Load 35 + Store 34(badorder3) 36 + Branch 32 + 32: Label + 39: 6(float) Load 38(f) + 40: 17(ptr) AccessChain 12 14 14 + Store 40 39 Return FunctionEnd diff --git a/Test/baseResults/spv.AofA.frag.out b/Test/baseResults/spv.AofA.frag.out index bda0df34..d24355f3 100644 --- a/Test/baseResults/spv.AofA.frag.out +++ b/Test/baseResults/spv.AofA.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 104 +// Id's are bound by 103 Source GLSL 430 Capability Shader @@ -16,139 +16,137 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 18 "foo(f1[5][7];" - Name 17 "a" - Name 21 "r" - Name 39 "outfloat" - Name 42 "g4" - Name 44 "g5" - Name 45 "param" - Name 48 "u" - Name 52 "param" - Name 66 "many" - Name 68 "i" - Name 70 "j" - Name 72 "k" - Name 78 "infloat" - Name 94 "uAofA" - MemberName 94(uAofA) 0 "f" - Name 98 "nameAofA" - Decorate 44(g5) Smooth - Decorate 78(infloat) Smooth - Decorate 94(uAofA) GLSLShared - Decorate 94(uAofA) Block + Name 17 "foo(f1[5][7];" + Name 16 "a" + Name 20 "r" + Name 38 "outfloat" + Name 41 "g4" + Name 43 "g5" + Name 44 "param" + Name 47 "u" + Name 51 "param" + Name 65 "many" + Name 67 "i" + Name 69 "j" + Name 71 "k" + Name 77 "infloat" + Name 93 "uAofA" + MemberName 93(uAofA) 0 "f" + Name 97 "nameAofA" + Decorate 43(g5) Smooth + Decorate 77(infloat) Smooth + Decorate 93(uAofA) GLSLShared + Decorate 93(uAofA) Block 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeInt 32 0 - 9: 8(int) Constant 7 - 10: TypeArray 7(float) 9 - 11: 8(int) Constant 5 - 12: TypeArray 10 11 - 13: TypePointer Function 12 - 14: 8(int) Constant 4 - 15: TypeArray 10 14 - 16: TypeFunction 15 13(ptr) - 20: TypePointer Function 10 - 22: TypeInt 32 1 - 23: 22(int) Constant 2 - 26: 22(int) Constant 0 - 29: 22(int) Constant 1 - 33: 22(int) Constant 3 - 38: TypePointer Output 7(float) - 39(outfloat): 38(ptr) Variable Output - 40: 7(float) Constant 0 - 41: TypePointer PrivateGlobal 15 - 42(g4): 41(ptr) Variable PrivateGlobal - 43: TypePointer Input 12 - 44(g5): 43(ptr) Variable Input - 49: 7(float) Constant 1077936128 - 50: TypePointer Function 7(float) - 55: 8(int) Constant 6 - 56: TypeArray 7(float) 55 - 57: TypeArray 56 11 - 58: TypeArray 57 14 - 59: 8(int) Constant 3 - 60: TypeArray 58 59 - 61: 8(int) Constant 2 - 62: TypeArray 60 61 - 63: 8(int) Constant 1 - 64: TypeArray 62 63 - 65: TypePointer PrivateGlobal 64 - 66(many): 65(ptr) Variable PrivateGlobal - 67: TypePointer UniformConstant 22(int) - 68(i): 67(ptr) Variable UniformConstant - 70(j): 67(ptr) Variable UniformConstant - 72(k): 67(ptr) Variable UniformConstant - 77: TypePointer Input 7(float) - 78(infloat): 77(ptr) Variable Input - 80: TypePointer PrivateGlobal 7(float) - 92: TypeArray 7(float) 14 - 93: TypeArray 92 61 - 94(uAofA): TypeStruct 93 - 95: TypeArray 94(uAofA) 11 - 96: TypeArray 95 59 - 97: TypePointer Uniform 96 - 98(nameAofA): 97(ptr) Variable Uniform - 99: TypePointer Uniform 7(float) + 6: TypeFloat 32 + 7: TypeInt 32 0 + 8: 7(int) Constant 7 + 9: TypeArray 6(float) 8 + 10: 7(int) Constant 5 + 11: TypeArray 9 10 + 12: TypePointer Function 11 + 13: 7(int) Constant 4 + 14: TypeArray 9 13 + 15: TypeFunction 14 12(ptr) + 19: TypePointer Function 9 + 21: TypeInt 32 1 + 22: 21(int) Constant 2 + 25: 21(int) Constant 0 + 28: 21(int) Constant 1 + 32: 21(int) Constant 3 + 37: TypePointer Output 6(float) + 38(outfloat): 37(ptr) Variable Output + 39: 6(float) Constant 0 + 40: TypePointer PrivateGlobal 14 + 41(g4): 40(ptr) Variable PrivateGlobal + 42: TypePointer Input 11 + 43(g5): 42(ptr) Variable Input + 48: 6(float) Constant 1077936128 + 49: TypePointer Function 6(float) + 54: 7(int) Constant 6 + 55: TypeArray 6(float) 54 + 56: TypeArray 55 10 + 57: TypeArray 56 13 + 58: 7(int) Constant 3 + 59: TypeArray 57 58 + 60: 7(int) Constant 2 + 61: TypeArray 59 60 + 62: 7(int) Constant 1 + 63: TypeArray 61 62 + 64: TypePointer PrivateGlobal 63 + 65(many): 64(ptr) Variable PrivateGlobal + 66: TypePointer UniformConstant 21(int) + 67(i): 66(ptr) Variable UniformConstant + 69(j): 66(ptr) Variable UniformConstant + 71(k): 66(ptr) Variable UniformConstant + 76: TypePointer Input 6(float) + 77(infloat): 76(ptr) Variable Input + 79: TypePointer PrivateGlobal 6(float) + 91: TypeArray 6(float) 13 + 92: TypeArray 91 60 + 93(uAofA): TypeStruct 92 + 94: TypeArray 93(uAofA) 10 + 95: TypeArray 94 58 + 96: TypePointer Uniform 95 + 97(nameAofA): 96(ptr) Variable Uniform + 98: TypePointer Uniform 6(float) 4(main): 2 Function None 3 5: Label - 45(param): 13(ptr) Variable Function - 48(u): 13(ptr) Variable Function - 52(param): 13(ptr) Variable Function - Store 39(outfloat) 40 - 46: 12 Load 44(g5) - Store 45(param) 46 - 47: 15 FunctionCall 18(foo(f1[5][7];) 45(param) - Store 42(g4) 47 - 51: 50(ptr) AccessChain 48(u) 23 23 - Store 51 49 - 53: 12 Load 48(u) - Store 52(param) 53 - 54: 15 FunctionCall 18(foo(f1[5][7];) 52(param) - 69: 22(int) Load 68(i) - 71: 22(int) Load 70(j) - 73: 22(int) Load 72(k) - 74: 22(int) Load 68(i) - 75: 22(int) Load 70(j) - 76: 22(int) Load 72(k) - 79: 7(float) Load 78(infloat) - 81: 80(ptr) AccessChain 66(many) 69 71 73 74 75 76 - Store 81 79 - 82: 22(int) Load 70(j) - 83: 22(int) Load 70(j) - 84: 22(int) Load 70(j) - 85: 22(int) Load 70(j) - 86: 22(int) Load 70(j) - 87: 22(int) Load 70(j) - 88: 80(ptr) AccessChain 66(many) 82 83 84 85 86 87 - 89: 7(float) Load 88 - 90: 7(float) Load 39(outfloat) - 91: 7(float) FAdd 90 89 - Store 39(outfloat) 91 - 100: 99(ptr) AccessChain 98(nameAofA) 29 23 26 26 33 - 101: 7(float) Load 100 - 102: 7(float) Load 39(outfloat) - 103: 7(float) FAdd 102 101 - Store 39(outfloat) 103 - Branch 6 - 6: Label + 44(param): 12(ptr) Variable Function + 47(u): 12(ptr) Variable Function + 51(param): 12(ptr) Variable Function + Store 38(outfloat) 39 + 45: 11 Load 43(g5) + Store 44(param) 45 + 46: 14 FunctionCall 17(foo(f1[5][7];) 44(param) + Store 41(g4) 46 + 50: 49(ptr) AccessChain 47(u) 22 22 + Store 50 48 + 52: 11 Load 47(u) + Store 51(param) 52 + 53: 14 FunctionCall 17(foo(f1[5][7];) 51(param) + 68: 21(int) Load 67(i) + 70: 21(int) Load 69(j) + 72: 21(int) Load 71(k) + 73: 21(int) Load 67(i) + 74: 21(int) Load 69(j) + 75: 21(int) Load 71(k) + 78: 6(float) Load 77(infloat) + 80: 79(ptr) AccessChain 65(many) 68 70 72 73 74 75 + Store 80 78 + 81: 21(int) Load 69(j) + 82: 21(int) Load 69(j) + 83: 21(int) Load 69(j) + 84: 21(int) Load 69(j) + 85: 21(int) Load 69(j) + 86: 21(int) Load 69(j) + 87: 79(ptr) AccessChain 65(many) 81 82 83 84 85 86 + 88: 6(float) Load 87 + 89: 6(float) Load 38(outfloat) + 90: 6(float) FAdd 89 88 + Store 38(outfloat) 90 + 99: 98(ptr) AccessChain 97(nameAofA) 28 22 25 25 32 + 100: 6(float) Load 99 + 101: 6(float) Load 38(outfloat) + 102: 6(float) FAdd 101 100 + Store 38(outfloat) 102 Return FunctionEnd -18(foo(f1[5][7];): 15 Function None 16 - 17(a): 13(ptr) FunctionParameter - 19: Label - 21(r): 20(ptr) Variable Function - 24: 20(ptr) AccessChain 17(a) 23 - 25: 10 Load 24 - Store 21(r) 25 - 27: 20(ptr) AccessChain 17(a) 26 - 28: 10 Load 27 - 30: 20(ptr) AccessChain 17(a) 29 - 31: 10 Load 30 - 32: 10 Load 21(r) - 34: 20(ptr) AccessChain 17(a) 33 - 35: 10 Load 34 - 36: 15 CompositeConstruct 28 31 32 35 - ReturnValue 36 +17(foo(f1[5][7];): 14 Function None 15 + 16(a): 12(ptr) FunctionParameter + 18: Label + 20(r): 19(ptr) Variable Function + 23: 19(ptr) AccessChain 16(a) 22 + 24: 9 Load 23 + Store 20(r) 24 + 26: 19(ptr) AccessChain 16(a) 25 + 27: 9 Load 26 + 29: 19(ptr) AccessChain 16(a) 28 + 30: 9 Load 29 + 31: 9 Load 20(r) + 33: 19(ptr) AccessChain 16(a) 32 + 34: 9 Load 33 + 35: 14 CompositeConstruct 27 30 31 34 + ReturnValue 35 FunctionEnd diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out index 909bb23d..26960ce0 100755 --- a/Test/baseResults/spv.Operations.frag.out +++ b/Test/baseResults/spv.Operations.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 399 +// Id's are bound by 398 Source GLSL 130 Capability Shader @@ -14,502 +14,500 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "v" - Name 12 "uv4" - Name 21 "i" - Name 23 "ui" - Name 170 "uf" - Name 217 "b" - Name 243 "ub41" - Name 245 "ub42" - Name 302 "f" - Name 378 "gl_FragColor" - Name 396 "uiv4" - Name 398 "ub" - Decorate 378(gl_FragColor) BuiltIn FragColor - Decorate 396(uiv4) NoStaticUse - Decorate 398(ub) NoStaticUse + Name 9 "v" + Name 11 "uv4" + Name 20 "i" + Name 22 "ui" + Name 169 "uf" + Name 216 "b" + Name 242 "ub41" + Name 244 "ub42" + Name 301 "f" + Name 377 "gl_FragColor" + Name 395 "uiv4" + Name 397 "ub" + Decorate 377(gl_FragColor) BuiltIn FragColor + Decorate 395(uiv4) NoStaticUse + Decorate 397(ub) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypePointer UniformConstant 8(fvec4) - 12(uv4): 11(ptr) Variable UniformConstant - 19: TypeInt 32 1 - 20: TypePointer Function 19(int) - 22: TypePointer UniformConstant 19(int) - 23(ui): 22(ptr) Variable UniformConstant - 169: TypePointer UniformConstant 7(float) - 170(uf): 169(ptr) Variable UniformConstant - 215: TypeBool - 216: TypePointer Function 215(bool) - 220: TypeVector 215(bool) 4 - 242: TypePointer UniformConstant 220(bvec4) - 243(ub41): 242(ptr) Variable UniformConstant - 245(ub42): 242(ptr) Variable UniformConstant - 292: 19(int) Constant 2 - 299: 19(int) Constant 1 - 301: TypePointer Function 7(float) - 331: TypeVector 7(float) 3 - 347: 7(float) Constant 1073741824 - 354: 7(float) Constant 1065353216 - 359: 19(int) Constant 66 - 365: 19(int) Constant 17 - 377: TypePointer Output 8(fvec4) -378(gl_FragColor): 377(ptr) Variable Output - 394: TypeVector 19(int) 4 - 395: TypePointer UniformConstant 394(ivec4) - 396(uiv4): 395(ptr) Variable UniformConstant - 397: TypePointer UniformConstant 215(bool) - 398(ub): 397(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer UniformConstant 7(fvec4) + 11(uv4): 10(ptr) Variable UniformConstant + 18: TypeInt 32 1 + 19: TypePointer Function 18(int) + 21: TypePointer UniformConstant 18(int) + 22(ui): 21(ptr) Variable UniformConstant + 168: TypePointer UniformConstant 6(float) + 169(uf): 168(ptr) Variable UniformConstant + 214: TypeBool + 215: TypePointer Function 214(bool) + 219: TypeVector 214(bool) 4 + 241: TypePointer UniformConstant 219(bvec4) + 242(ub41): 241(ptr) Variable UniformConstant + 244(ub42): 241(ptr) Variable UniformConstant + 291: 18(int) Constant 2 + 298: 18(int) Constant 1 + 300: TypePointer Function 6(float) + 330: TypeVector 6(float) 3 + 346: 6(float) Constant 1073741824 + 353: 6(float) Constant 1065353216 + 358: 18(int) Constant 66 + 364: 18(int) Constant 17 + 376: TypePointer Output 7(fvec4) +377(gl_FragColor): 376(ptr) Variable Output + 393: TypeVector 18(int) 4 + 394: TypePointer UniformConstant 393(ivec4) + 395(uiv4): 394(ptr) Variable UniformConstant + 396: TypePointer UniformConstant 214(bool) + 397(ub): 396(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 10(v): 9(ptr) Variable Function - 21(i): 20(ptr) Variable Function - 217(b): 216(ptr) Variable Function - 302(f): 301(ptr) Variable Function - 379: 9(ptr) Variable Function - 13: 8(fvec4) Load 12(uv4) - 14: 8(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 13 - Store 10(v) 14 - 15: 8(fvec4) Load 10(v) - 16: 8(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 15 - 17: 8(fvec4) Load 10(v) - 18: 8(fvec4) FAdd 17 16 - Store 10(v) 18 - 24: 19(int) Load 23(ui) - 25: 19(int) Load 23(ui) - 26: 19(int) IMul 24 25 - Store 21(i) 26 - 27: 8(fvec4) Load 10(v) - 28: 8(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 27 - 29: 8(fvec4) Load 10(v) - 30: 8(fvec4) FAdd 29 28 - Store 10(v) 30 - 31: 8(fvec4) Load 10(v) - 32: 8(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 31 - 33: 8(fvec4) Load 10(v) - 34: 8(fvec4) FAdd 33 32 - Store 10(v) 34 - 35: 8(fvec4) Load 10(v) - 36: 8(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 35 - 37: 8(fvec4) Load 10(v) - 38: 8(fvec4) FAdd 37 36 - Store 10(v) 38 - 39: 8(fvec4) Load 10(v) - 40: 8(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 39 - 41: 8(fvec4) Load 10(v) - 42: 8(fvec4) FAdd 41 40 - Store 10(v) 42 - 43: 8(fvec4) Load 10(v) - 44: 8(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 43 - 45: 8(fvec4) Load 10(v) - 46: 8(fvec4) FAdd 45 44 - Store 10(v) 46 - 47: 8(fvec4) Load 10(v) - 48: 8(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 47 - 49: 8(fvec4) Load 10(v) - 50: 8(fvec4) FAdd 49 48 - Store 10(v) 50 - 51: 8(fvec4) Load 10(v) - 52: 8(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 51 - 53: 8(fvec4) Load 10(v) - 54: 8(fvec4) FAdd 53 52 - Store 10(v) 54 - 55: 8(fvec4) Load 10(v) - 56: 8(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 55 - 57: 8(fvec4) Load 10(v) - 58: 8(fvec4) FAdd 57 56 - Store 10(v) 58 - 59: 8(fvec4) Load 10(v) - 60: 8(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 59 - 61: 8(fvec4) Load 10(v) - 62: 8(fvec4) FAdd 61 60 - Store 10(v) 62 - 63: 8(fvec4) Load 10(v) - 64: 8(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 63 - 65: 8(fvec4) Load 10(v) - 66: 8(fvec4) FAdd 65 64 - Store 10(v) 66 - 67: 8(fvec4) Load 10(v) - 68: 8(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 67 - 69: 8(fvec4) Load 10(v) - 70: 8(fvec4) FAdd 69 68 - Store 10(v) 70 - 71: 8(fvec4) Load 10(v) - 72: 8(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 71 - 73: 8(fvec4) Load 10(v) - 74: 8(fvec4) FAdd 73 72 - Store 10(v) 74 - 75: 8(fvec4) Load 10(v) - 76: 8(fvec4) Load 10(v) - 77: 8(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 75 76 - 78: 8(fvec4) Load 10(v) - 79: 8(fvec4) FAdd 78 77 - Store 10(v) 79 - 80: 8(fvec4) Load 10(v) - 81: 8(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 80 - 82: 8(fvec4) Load 10(v) - 83: 8(fvec4) FAdd 82 81 - Store 10(v) 83 - 84: 8(fvec4) Load 10(v) - 85: 8(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 84 - 86: 8(fvec4) Load 10(v) - 87: 8(fvec4) FAdd 86 85 - Store 10(v) 87 - 88: 8(fvec4) Load 10(v) - 89: 8(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 88 - 90: 8(fvec4) Load 10(v) - 91: 8(fvec4) FAdd 90 89 - Store 10(v) 91 - 92: 8(fvec4) Load 10(v) - 93: 8(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 92 - 94: 8(fvec4) Load 10(v) - 95: 8(fvec4) FAdd 94 93 - Store 10(v) 95 - 96: 8(fvec4) Load 10(v) - 97: 8(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 96 - 98: 8(fvec4) Load 10(v) - 99: 8(fvec4) FAdd 98 97 - Store 10(v) 99 - 100: 8(fvec4) Load 10(v) - 101: 8(fvec4) ExtInst 1(GLSL.std.450) 32(Inversesqrt) 100 - 102: 8(fvec4) Load 10(v) - 103: 8(fvec4) FAdd 102 101 - Store 10(v) 103 - 104: 8(fvec4) Load 10(v) - 105: 8(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 104 - 106: 8(fvec4) Load 10(v) - 107: 8(fvec4) FAdd 106 105 - Store 10(v) 107 - 108: 8(fvec4) Load 10(v) - 109: 8(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 108 - 110: 8(fvec4) Load 10(v) - 111: 8(fvec4) FAdd 110 109 - Store 10(v) 111 - 112: 8(fvec4) Load 10(v) - 113: 8(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 112 - 114: 8(fvec4) Load 10(v) - 115: 8(fvec4) FAdd 114 113 - Store 10(v) 115 - 116: 8(fvec4) Load 10(v) - 117: 8(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 116 - 118: 8(fvec4) Load 10(v) - 119: 8(fvec4) FAdd 118 117 - Store 10(v) 119 - 120: 8(fvec4) Load 10(v) - 121: 8(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 120 - 122: 8(fvec4) Load 10(v) - 123: 8(fvec4) FAdd 122 121 - Store 10(v) 123 - 124: 8(fvec4) Load 10(v) - 125: 8(fvec4) Load 10(v) - 126: 8(fvec4) FMod 124 125 - 127: 8(fvec4) Load 10(v) - 128: 8(fvec4) FAdd 127 126 - Store 10(v) 128 - 129: 8(fvec4) Load 10(v) - 130: 8(fvec4) Load 10(v) - 131: 7(float) CompositeExtract 130 0 - 132: 8(fvec4) CompositeConstruct 131 131 131 131 - 133: 8(fvec4) FMod 129 132 - 134: 8(fvec4) Load 10(v) - 135: 8(fvec4) FAdd 134 133 - Store 10(v) 135 - 136: 8(fvec4) Load 10(v) - 137: 8(fvec4) Load 12(uv4) - 138: 8(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 136 137 - 139: 8(fvec4) Load 10(v) - 140: 8(fvec4) FAdd 139 138 - Store 10(v) 140 - 141: 8(fvec4) Load 10(v) - 142: 8(fvec4) Load 12(uv4) - 143: 8(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 141 142 - 144: 8(fvec4) Load 10(v) - 145: 8(fvec4) FAdd 144 143 - Store 10(v) 145 - 146: 8(fvec4) Load 10(v) - 147: 8(fvec4) Load 12(uv4) - 148: 8(fvec4) Load 12(uv4) - 149: 8(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 146 147 148 - 150: 8(fvec4) Load 10(v) - 151: 8(fvec4) FAdd 150 149 - Store 10(v) 151 - 152: 8(fvec4) Load 10(v) - 153: 8(fvec4) Load 10(v) - 154: 8(fvec4) Load 10(v) - 155: 8(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 152 153 154 - 156: 8(fvec4) Load 10(v) - 157: 8(fvec4) FAdd 156 155 - Store 10(v) 157 - 158: 8(fvec4) Load 10(v) - 159: 8(fvec4) Load 10(v) - 160: 8(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 158 159 - 161: 8(fvec4) Load 10(v) - 162: 8(fvec4) FAdd 161 160 - Store 10(v) 162 - 163: 8(fvec4) Load 10(v) - 164: 8(fvec4) Load 10(v) - 165: 8(fvec4) Load 10(v) - 166: 8(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 163 164 165 - 167: 8(fvec4) Load 10(v) - 168: 8(fvec4) FAdd 167 166 - Store 10(v) 168 - 171: 7(float) Load 170(uf) - 172: 8(fvec4) Load 10(v) - 173: 8(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 171 172 - 174: 8(fvec4) Load 10(v) - 175: 8(fvec4) FAdd 174 173 - Store 10(v) 175 - 176: 7(float) Load 170(uf) - 177: 7(float) Load 170(uf) - 178: 8(fvec4) Load 10(v) - 179: 8(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 176 177 178 - 180: 8(fvec4) Load 10(v) - 181: 8(fvec4) FAdd 180 179 - Store 10(v) 181 - 182: 8(fvec4) Load 10(v) - 183: 8(fvec4) ExtInst 1(GLSL.std.450) 68(Normalize) 182 - 184: 8(fvec4) Load 10(v) - 185: 8(fvec4) FAdd 184 183 - Store 10(v) 185 - 186: 8(fvec4) Load 10(v) - 187: 8(fvec4) Load 10(v) - 188: 8(fvec4) Load 10(v) - 189: 8(fvec4) ExtInst 1(GLSL.std.450) 69(Faceforward) 186 187 188 - 190: 8(fvec4) Load 10(v) - 191: 8(fvec4) FAdd 190 189 - Store 10(v) 191 - 192: 8(fvec4) Load 10(v) - 193: 8(fvec4) Load 10(v) - 194: 8(fvec4) ExtInst 1(GLSL.std.450) 70(Reflect) 192 193 - 195: 8(fvec4) Load 10(v) - 196: 8(fvec4) FAdd 195 194 - Store 10(v) 196 - 197: 8(fvec4) Load 10(v) - 198: 8(fvec4) Load 10(v) - 199: 7(float) Load 170(uf) - 200: 8(fvec4) ExtInst 1(GLSL.std.450) 71(Refract) 197 198 199 - 201: 8(fvec4) Load 10(v) - 202: 8(fvec4) FAdd 201 200 - Store 10(v) 202 - 203: 8(fvec4) Load 10(v) - 204: 8(fvec4) DPdx 203 - 205: 8(fvec4) Load 10(v) - 206: 8(fvec4) FAdd 205 204 - Store 10(v) 206 - 207: 8(fvec4) Load 10(v) - 208: 8(fvec4) DPdy 207 - 209: 8(fvec4) Load 10(v) - 210: 8(fvec4) FAdd 209 208 - Store 10(v) 210 - 211: 8(fvec4) Load 10(v) - 212: 8(fvec4) Fwidth 211 - 213: 8(fvec4) Load 10(v) - 214: 8(fvec4) FAdd 213 212 - Store 10(v) 214 - 218: 8(fvec4) Load 10(v) - 219: 8(fvec4) Load 12(uv4) - 221: 220(bvec4) FOrdLessThan 218 219 - 222: 215(bool) Any 221 - Store 217(b) 222 - 223: 215(bool) Load 217(b) - 224: 8(fvec4) Load 10(v) - 225: 8(fvec4) Load 12(uv4) - 226: 220(bvec4) FOrdLessThanEqual 224 225 - 227: 215(bool) Any 226 - 228: 215(bool) LogicalAnd 223 227 - Store 217(b) 228 - 229: 215(bool) Load 217(b) - 230: 8(fvec4) Load 10(v) - 231: 8(fvec4) Load 12(uv4) - 232: 220(bvec4) FOrdGreaterThan 230 231 - 233: 215(bool) Any 232 - 234: 215(bool) LogicalAnd 229 233 - Store 217(b) 234 - 235: 215(bool) Load 217(b) - 236: 8(fvec4) Load 10(v) - 237: 8(fvec4) Load 12(uv4) - 238: 220(bvec4) FOrdGreaterThanEqual 236 237 - 239: 215(bool) Any 238 - 240: 215(bool) LogicalAnd 235 239 - Store 217(b) 240 - 241: 215(bool) Load 217(b) - 244: 220(bvec4) Load 243(ub41) - 246: 220(bvec4) Load 245(ub42) - 247: 220(bvec4) IEqual 244 246 - 248: 215(bool) Any 247 - 249: 215(bool) LogicalAnd 241 248 - Store 217(b) 249 - 250: 215(bool) Load 217(b) - 251: 220(bvec4) Load 243(ub41) - 252: 220(bvec4) Load 245(ub42) - 253: 220(bvec4) INotEqual 251 252 - 254: 215(bool) Any 253 - 255: 215(bool) LogicalAnd 250 254 - Store 217(b) 255 - 256: 215(bool) Load 217(b) - 257: 220(bvec4) Load 243(ub41) - 258: 215(bool) Any 257 - 259: 215(bool) LogicalAnd 256 258 - Store 217(b) 259 - 260: 215(bool) Load 217(b) - 261: 220(bvec4) Load 243(ub41) - 262: 215(bool) All 261 - 263: 215(bool) LogicalAnd 260 262 - Store 217(b) 263 - 264: 215(bool) Load 217(b) - 265: 220(bvec4) Load 243(ub41) - 266: 220(bvec4) LogicalNot 265 - 267: 215(bool) Any 266 - 268: 215(bool) LogicalAnd 264 267 - Store 217(b) 268 - 269: 19(int) Load 21(i) - 270: 19(int) Load 23(ui) - 271: 19(int) IAdd 269 270 - 272: 19(int) Load 21(i) - 273: 19(int) IMul 271 272 - 274: 19(int) Load 23(ui) - 275: 19(int) ISub 273 274 - 276: 19(int) Load 21(i) - 277: 19(int) SDiv 275 276 - Store 21(i) 277 - 278: 19(int) Load 21(i) - 279: 19(int) Load 23(ui) - 280: 19(int) SMod 278 279 - Store 21(i) 280 - 281: 19(int) Load 21(i) - 282: 19(int) Load 23(ui) - 283: 215(bool) IEqual 281 282 - 284: 19(int) Load 21(i) - 285: 19(int) Load 23(ui) - 286: 215(bool) INotEqual 284 285 - 287: 19(int) Load 21(i) - 288: 19(int) Load 23(ui) - 289: 215(bool) IEqual 287 288 - 290: 215(bool) LogicalAnd 286 289 - 291: 19(int) Load 21(i) - 293: 215(bool) INotEqual 291 292 - 294: 215(bool) LogicalNotEqual 290 293 - 295: 215(bool) LogicalOr 283 294 - SelectionMerge 297 None - BranchConditional 295 296 297 - 296: Label - 298: 19(int) Load 21(i) - 300: 19(int) IAdd 298 299 - Store 21(i) 300 - Branch 297 - 297: Label - 303: 7(float) Load 170(uf) - 304: 7(float) Load 170(uf) - 305: 7(float) FAdd 303 304 - 306: 7(float) Load 170(uf) - 307: 7(float) FMul 305 306 - 308: 7(float) Load 170(uf) - 309: 7(float) FSub 307 308 - 310: 7(float) Load 170(uf) - 311: 7(float) FDiv 309 310 - Store 302(f) 311 - 312: 8(fvec4) Load 10(v) - 313: 7(float) ExtInst 1(GLSL.std.450) 65(Length) 312 - 314: 7(float) Load 302(f) - 315: 7(float) FAdd 314 313 - Store 302(f) 315 - 316: 8(fvec4) Load 10(v) - 317: 8(fvec4) Load 10(v) - 318: 7(float) ExtInst 1(GLSL.std.450) 66(Distance) 316 317 - 319: 7(float) Load 302(f) - 320: 7(float) FAdd 319 318 - Store 302(f) 320 - 321: 8(fvec4) Load 10(v) - 322: 8(fvec4) Load 10(v) - 323: 7(float) Dot 321 322 - 324: 7(float) Load 302(f) - 325: 7(float) FAdd 324 323 - Store 302(f) 325 - 326: 7(float) Load 302(f) - 327: 7(float) Load 170(uf) - 328: 7(float) FMul 326 327 - 329: 7(float) Load 302(f) - 330: 7(float) FAdd 329 328 - Store 302(f) 330 - 332: 8(fvec4) Load 10(v) - 333: 331(fvec3) VectorShuffle 332 332 0 1 2 - 334: 8(fvec4) Load 10(v) - 335: 331(fvec3) VectorShuffle 334 334 0 1 2 - 336: 331(fvec3) ExtInst 1(GLSL.std.450) 67(Cross) 333 335 - 337: 7(float) CompositeExtract 336 0 - 338: 7(float) Load 302(f) - 339: 7(float) FAdd 338 337 - Store 302(f) 339 - 340: 7(float) Load 302(f) - 341: 7(float) Load 170(uf) - 342: 215(bool) FOrdEqual 340 341 - 343: 7(float) Load 302(f) - 344: 7(float) Load 170(uf) - 345: 215(bool) FOrdNotEqual 343 344 - 346: 7(float) Load 302(f) - 348: 215(bool) FOrdNotEqual 346 347 - 349: 215(bool) LogicalAnd 345 348 - 350: 215(bool) LogicalOr 342 349 - SelectionMerge 352 None - BranchConditional 350 351 352 - 351: Label - 353: 7(float) Load 302(f) - 355: 7(float) FAdd 353 354 - Store 302(f) 355 - Branch 352 - 352: Label - 356: 19(int) Load 23(ui) - 357: 19(int) Load 21(i) - 358: 19(int) BitwiseAnd 357 356 - Store 21(i) 358 - 360: 19(int) Load 21(i) - 361: 19(int) BitwiseOr 360 359 - Store 21(i) 361 - 362: 19(int) Load 23(ui) - 363: 19(int) Load 21(i) - 364: 19(int) BitwiseXor 363 362 - Store 21(i) 364 - 366: 19(int) Load 21(i) - 367: 19(int) SMod 366 365 - Store 21(i) 367 - 368: 19(int) Load 21(i) - 369: 19(int) ShiftRightArithmetic 368 292 - Store 21(i) 369 - 370: 19(int) Load 23(ui) - 371: 19(int) Load 21(i) - 372: 19(int) ShiftLeftLogical 371 370 - Store 21(i) 372 - 373: 19(int) Load 21(i) - 374: 19(int) Not 373 - Store 21(i) 374 - 375: 215(bool) Load 217(b) - 376: 215(bool) LogicalNot 375 - Store 217(b) 376 - 380: 215(bool) Load 217(b) - SelectionMerge 382 None - BranchConditional 380 381 391 - 381: Label - 383: 19(int) Load 21(i) - 384: 7(float) ConvertSToF 383 - 385: 8(fvec4) CompositeConstruct 384 384 384 384 - 386: 7(float) Load 302(f) - 387: 8(fvec4) CompositeConstruct 386 386 386 386 - 388: 8(fvec4) FAdd 385 387 - 389: 8(fvec4) Load 10(v) - 390: 8(fvec4) FAdd 388 389 - Store 379 390 - Branch 382 - 391: Label - 392: 8(fvec4) Load 10(v) - Store 379 392 - Branch 382 - 382: Label - 393: 8(fvec4) Load 379 - Store 378(gl_FragColor) 393 - Branch 6 - 6: Label + 9(v): 8(ptr) Variable Function + 20(i): 19(ptr) Variable Function + 216(b): 215(ptr) Variable Function + 301(f): 300(ptr) Variable Function + 378: 8(ptr) Variable Function + 12: 7(fvec4) Load 11(uv4) + 13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12 + Store 9(v) 13 + 14: 7(fvec4) Load 9(v) + 15: 7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14 + 16: 7(fvec4) Load 9(v) + 17: 7(fvec4) FAdd 16 15 + Store 9(v) 17 + 23: 18(int) Load 22(ui) + 24: 18(int) Load 22(ui) + 25: 18(int) IMul 23 24 + Store 20(i) 25 + 26: 7(fvec4) Load 9(v) + 27: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26 + 28: 7(fvec4) Load 9(v) + 29: 7(fvec4) FAdd 28 27 + Store 9(v) 29 + 30: 7(fvec4) Load 9(v) + 31: 7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30 + 32: 7(fvec4) Load 9(v) + 33: 7(fvec4) FAdd 32 31 + Store 9(v) 33 + 34: 7(fvec4) Load 9(v) + 35: 7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34 + 36: 7(fvec4) Load 9(v) + 37: 7(fvec4) FAdd 36 35 + Store 9(v) 37 + 38: 7(fvec4) Load 9(v) + 39: 7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38 + 40: 7(fvec4) Load 9(v) + 41: 7(fvec4) FAdd 40 39 + Store 9(v) 41 + 42: 7(fvec4) Load 9(v) + 43: 7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42 + 44: 7(fvec4) Load 9(v) + 45: 7(fvec4) FAdd 44 43 + Store 9(v) 45 + 46: 7(fvec4) Load 9(v) + 47: 7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46 + 48: 7(fvec4) Load 9(v) + 49: 7(fvec4) FAdd 48 47 + Store 9(v) 49 + 50: 7(fvec4) Load 9(v) + 51: 7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50 + 52: 7(fvec4) Load 9(v) + 53: 7(fvec4) FAdd 52 51 + Store 9(v) 53 + 54: 7(fvec4) Load 9(v) + 55: 7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54 + 56: 7(fvec4) Load 9(v) + 57: 7(fvec4) FAdd 56 55 + Store 9(v) 57 + 58: 7(fvec4) Load 9(v) + 59: 7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58 + 60: 7(fvec4) Load 9(v) + 61: 7(fvec4) FAdd 60 59 + Store 9(v) 61 + 62: 7(fvec4) Load 9(v) + 63: 7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62 + 64: 7(fvec4) Load 9(v) + 65: 7(fvec4) FAdd 64 63 + Store 9(v) 65 + 66: 7(fvec4) Load 9(v) + 67: 7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66 + 68: 7(fvec4) Load 9(v) + 69: 7(fvec4) FAdd 68 67 + Store 9(v) 69 + 70: 7(fvec4) Load 9(v) + 71: 7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70 + 72: 7(fvec4) Load 9(v) + 73: 7(fvec4) FAdd 72 71 + Store 9(v) 73 + 74: 7(fvec4) Load 9(v) + 75: 7(fvec4) Load 9(v) + 76: 7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75 + 77: 7(fvec4) Load 9(v) + 78: 7(fvec4) FAdd 77 76 + Store 9(v) 78 + 79: 7(fvec4) Load 9(v) + 80: 7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79 + 81: 7(fvec4) Load 9(v) + 82: 7(fvec4) FAdd 81 80 + Store 9(v) 82 + 83: 7(fvec4) Load 9(v) + 84: 7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83 + 85: 7(fvec4) Load 9(v) + 86: 7(fvec4) FAdd 85 84 + Store 9(v) 86 + 87: 7(fvec4) Load 9(v) + 88: 7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87 + 89: 7(fvec4) Load 9(v) + 90: 7(fvec4) FAdd 89 88 + Store 9(v) 90 + 91: 7(fvec4) Load 9(v) + 92: 7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91 + 93: 7(fvec4) Load 9(v) + 94: 7(fvec4) FAdd 93 92 + Store 9(v) 94 + 95: 7(fvec4) Load 9(v) + 96: 7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95 + 97: 7(fvec4) Load 9(v) + 98: 7(fvec4) FAdd 97 96 + Store 9(v) 98 + 99: 7(fvec4) Load 9(v) + 100: 7(fvec4) ExtInst 1(GLSL.std.450) 32(Inversesqrt) 99 + 101: 7(fvec4) Load 9(v) + 102: 7(fvec4) FAdd 101 100 + Store 9(v) 102 + 103: 7(fvec4) Load 9(v) + 104: 7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103 + 105: 7(fvec4) Load 9(v) + 106: 7(fvec4) FAdd 105 104 + Store 9(v) 106 + 107: 7(fvec4) Load 9(v) + 108: 7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107 + 109: 7(fvec4) Load 9(v) + 110: 7(fvec4) FAdd 109 108 + Store 9(v) 110 + 111: 7(fvec4) Load 9(v) + 112: 7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111 + 113: 7(fvec4) Load 9(v) + 114: 7(fvec4) FAdd 113 112 + Store 9(v) 114 + 115: 7(fvec4) Load 9(v) + 116: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 115 + 117: 7(fvec4) Load 9(v) + 118: 7(fvec4) FAdd 117 116 + Store 9(v) 118 + 119: 7(fvec4) Load 9(v) + 120: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 119 + 121: 7(fvec4) Load 9(v) + 122: 7(fvec4) FAdd 121 120 + Store 9(v) 122 + 123: 7(fvec4) Load 9(v) + 124: 7(fvec4) Load 9(v) + 125: 7(fvec4) FMod 123 124 + 126: 7(fvec4) Load 9(v) + 127: 7(fvec4) FAdd 126 125 + Store 9(v) 127 + 128: 7(fvec4) Load 9(v) + 129: 7(fvec4) Load 9(v) + 130: 6(float) CompositeExtract 129 0 + 131: 7(fvec4) CompositeConstruct 130 130 130 130 + 132: 7(fvec4) FMod 128 131 + 133: 7(fvec4) Load 9(v) + 134: 7(fvec4) FAdd 133 132 + Store 9(v) 134 + 135: 7(fvec4) Load 9(v) + 136: 7(fvec4) Load 11(uv4) + 137: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 135 136 + 138: 7(fvec4) Load 9(v) + 139: 7(fvec4) FAdd 138 137 + Store 9(v) 139 + 140: 7(fvec4) Load 9(v) + 141: 7(fvec4) Load 11(uv4) + 142: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 140 141 + 143: 7(fvec4) Load 9(v) + 144: 7(fvec4) FAdd 143 142 + Store 9(v) 144 + 145: 7(fvec4) Load 9(v) + 146: 7(fvec4) Load 11(uv4) + 147: 7(fvec4) Load 11(uv4) + 148: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 145 146 147 + 149: 7(fvec4) Load 9(v) + 150: 7(fvec4) FAdd 149 148 + Store 9(v) 150 + 151: 7(fvec4) Load 9(v) + 152: 7(fvec4) Load 9(v) + 153: 7(fvec4) Load 9(v) + 154: 7(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 151 152 153 + 155: 7(fvec4) Load 9(v) + 156: 7(fvec4) FAdd 155 154 + Store 9(v) 156 + 157: 7(fvec4) Load 9(v) + 158: 7(fvec4) Load 9(v) + 159: 7(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 157 158 + 160: 7(fvec4) Load 9(v) + 161: 7(fvec4) FAdd 160 159 + Store 9(v) 161 + 162: 7(fvec4) Load 9(v) + 163: 7(fvec4) Load 9(v) + 164: 7(fvec4) Load 9(v) + 165: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 162 163 164 + 166: 7(fvec4) Load 9(v) + 167: 7(fvec4) FAdd 166 165 + Store 9(v) 167 + 170: 6(float) Load 169(uf) + 171: 7(fvec4) Load 9(v) + 172: 7(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 170 171 + 173: 7(fvec4) Load 9(v) + 174: 7(fvec4) FAdd 173 172 + Store 9(v) 174 + 175: 6(float) Load 169(uf) + 176: 6(float) Load 169(uf) + 177: 7(fvec4) Load 9(v) + 178: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 175 176 177 + 179: 7(fvec4) Load 9(v) + 180: 7(fvec4) FAdd 179 178 + Store 9(v) 180 + 181: 7(fvec4) Load 9(v) + 182: 7(fvec4) ExtInst 1(GLSL.std.450) 68(Normalize) 181 + 183: 7(fvec4) Load 9(v) + 184: 7(fvec4) FAdd 183 182 + Store 9(v) 184 + 185: 7(fvec4) Load 9(v) + 186: 7(fvec4) Load 9(v) + 187: 7(fvec4) Load 9(v) + 188: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Faceforward) 185 186 187 + 189: 7(fvec4) Load 9(v) + 190: 7(fvec4) FAdd 189 188 + Store 9(v) 190 + 191: 7(fvec4) Load 9(v) + 192: 7(fvec4) Load 9(v) + 193: 7(fvec4) ExtInst 1(GLSL.std.450) 70(Reflect) 191 192 + 194: 7(fvec4) Load 9(v) + 195: 7(fvec4) FAdd 194 193 + Store 9(v) 195 + 196: 7(fvec4) Load 9(v) + 197: 7(fvec4) Load 9(v) + 198: 6(float) Load 169(uf) + 199: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Refract) 196 197 198 + 200: 7(fvec4) Load 9(v) + 201: 7(fvec4) FAdd 200 199 + Store 9(v) 201 + 202: 7(fvec4) Load 9(v) + 203: 7(fvec4) DPdx 202 + 204: 7(fvec4) Load 9(v) + 205: 7(fvec4) FAdd 204 203 + Store 9(v) 205 + 206: 7(fvec4) Load 9(v) + 207: 7(fvec4) DPdy 206 + 208: 7(fvec4) Load 9(v) + 209: 7(fvec4) FAdd 208 207 + Store 9(v) 209 + 210: 7(fvec4) Load 9(v) + 211: 7(fvec4) Fwidth 210 + 212: 7(fvec4) Load 9(v) + 213: 7(fvec4) FAdd 212 211 + Store 9(v) 213 + 217: 7(fvec4) Load 9(v) + 218: 7(fvec4) Load 11(uv4) + 220: 219(bvec4) FOrdLessThan 217 218 + 221: 214(bool) Any 220 + Store 216(b) 221 + 222: 214(bool) Load 216(b) + 223: 7(fvec4) Load 9(v) + 224: 7(fvec4) Load 11(uv4) + 225: 219(bvec4) FOrdLessThanEqual 223 224 + 226: 214(bool) Any 225 + 227: 214(bool) LogicalAnd 222 226 + Store 216(b) 227 + 228: 214(bool) Load 216(b) + 229: 7(fvec4) Load 9(v) + 230: 7(fvec4) Load 11(uv4) + 231: 219(bvec4) FOrdGreaterThan 229 230 + 232: 214(bool) Any 231 + 233: 214(bool) LogicalAnd 228 232 + Store 216(b) 233 + 234: 214(bool) Load 216(b) + 235: 7(fvec4) Load 9(v) + 236: 7(fvec4) Load 11(uv4) + 237: 219(bvec4) FOrdGreaterThanEqual 235 236 + 238: 214(bool) Any 237 + 239: 214(bool) LogicalAnd 234 238 + Store 216(b) 239 + 240: 214(bool) Load 216(b) + 243: 219(bvec4) Load 242(ub41) + 245: 219(bvec4) Load 244(ub42) + 246: 219(bvec4) IEqual 243 245 + 247: 214(bool) Any 246 + 248: 214(bool) LogicalAnd 240 247 + Store 216(b) 248 + 249: 214(bool) Load 216(b) + 250: 219(bvec4) Load 242(ub41) + 251: 219(bvec4) Load 244(ub42) + 252: 219(bvec4) INotEqual 250 251 + 253: 214(bool) Any 252 + 254: 214(bool) LogicalAnd 249 253 + Store 216(b) 254 + 255: 214(bool) Load 216(b) + 256: 219(bvec4) Load 242(ub41) + 257: 214(bool) Any 256 + 258: 214(bool) LogicalAnd 255 257 + Store 216(b) 258 + 259: 214(bool) Load 216(b) + 260: 219(bvec4) Load 242(ub41) + 261: 214(bool) All 260 + 262: 214(bool) LogicalAnd 259 261 + Store 216(b) 262 + 263: 214(bool) Load 216(b) + 264: 219(bvec4) Load 242(ub41) + 265: 219(bvec4) LogicalNot 264 + 266: 214(bool) Any 265 + 267: 214(bool) LogicalAnd 263 266 + Store 216(b) 267 + 268: 18(int) Load 20(i) + 269: 18(int) Load 22(ui) + 270: 18(int) IAdd 268 269 + 271: 18(int) Load 20(i) + 272: 18(int) IMul 270 271 + 273: 18(int) Load 22(ui) + 274: 18(int) ISub 272 273 + 275: 18(int) Load 20(i) + 276: 18(int) SDiv 274 275 + Store 20(i) 276 + 277: 18(int) Load 20(i) + 278: 18(int) Load 22(ui) + 279: 18(int) SMod 277 278 + Store 20(i) 279 + 280: 18(int) Load 20(i) + 281: 18(int) Load 22(ui) + 282: 214(bool) IEqual 280 281 + 283: 18(int) Load 20(i) + 284: 18(int) Load 22(ui) + 285: 214(bool) INotEqual 283 284 + 286: 18(int) Load 20(i) + 287: 18(int) Load 22(ui) + 288: 214(bool) IEqual 286 287 + 289: 214(bool) LogicalAnd 285 288 + 290: 18(int) Load 20(i) + 292: 214(bool) INotEqual 290 291 + 293: 214(bool) LogicalNotEqual 289 292 + 294: 214(bool) LogicalOr 282 293 + SelectionMerge 296 None + BranchConditional 294 295 296 + 295: Label + 297: 18(int) Load 20(i) + 299: 18(int) IAdd 297 298 + Store 20(i) 299 + Branch 296 + 296: Label + 302: 6(float) Load 169(uf) + 303: 6(float) Load 169(uf) + 304: 6(float) FAdd 302 303 + 305: 6(float) Load 169(uf) + 306: 6(float) FMul 304 305 + 307: 6(float) Load 169(uf) + 308: 6(float) FSub 306 307 + 309: 6(float) Load 169(uf) + 310: 6(float) FDiv 308 309 + Store 301(f) 310 + 311: 7(fvec4) Load 9(v) + 312: 6(float) ExtInst 1(GLSL.std.450) 65(Length) 311 + 313: 6(float) Load 301(f) + 314: 6(float) FAdd 313 312 + Store 301(f) 314 + 315: 7(fvec4) Load 9(v) + 316: 7(fvec4) Load 9(v) + 317: 6(float) ExtInst 1(GLSL.std.450) 66(Distance) 315 316 + 318: 6(float) Load 301(f) + 319: 6(float) FAdd 318 317 + Store 301(f) 319 + 320: 7(fvec4) Load 9(v) + 321: 7(fvec4) Load 9(v) + 322: 6(float) Dot 320 321 + 323: 6(float) Load 301(f) + 324: 6(float) FAdd 323 322 + Store 301(f) 324 + 325: 6(float) Load 301(f) + 326: 6(float) Load 169(uf) + 327: 6(float) FMul 325 326 + 328: 6(float) Load 301(f) + 329: 6(float) FAdd 328 327 + Store 301(f) 329 + 331: 7(fvec4) Load 9(v) + 332: 330(fvec3) VectorShuffle 331 331 0 1 2 + 333: 7(fvec4) Load 9(v) + 334: 330(fvec3) VectorShuffle 333 333 0 1 2 + 335: 330(fvec3) ExtInst 1(GLSL.std.450) 67(Cross) 332 334 + 336: 6(float) CompositeExtract 335 0 + 337: 6(float) Load 301(f) + 338: 6(float) FAdd 337 336 + Store 301(f) 338 + 339: 6(float) Load 301(f) + 340: 6(float) Load 169(uf) + 341: 214(bool) FOrdEqual 339 340 + 342: 6(float) Load 301(f) + 343: 6(float) Load 169(uf) + 344: 214(bool) FOrdNotEqual 342 343 + 345: 6(float) Load 301(f) + 347: 214(bool) FOrdNotEqual 345 346 + 348: 214(bool) LogicalAnd 344 347 + 349: 214(bool) LogicalOr 341 348 + SelectionMerge 351 None + BranchConditional 349 350 351 + 350: Label + 352: 6(float) Load 301(f) + 354: 6(float) FAdd 352 353 + Store 301(f) 354 + Branch 351 + 351: Label + 355: 18(int) Load 22(ui) + 356: 18(int) Load 20(i) + 357: 18(int) BitwiseAnd 356 355 + Store 20(i) 357 + 359: 18(int) Load 20(i) + 360: 18(int) BitwiseOr 359 358 + Store 20(i) 360 + 361: 18(int) Load 22(ui) + 362: 18(int) Load 20(i) + 363: 18(int) BitwiseXor 362 361 + Store 20(i) 363 + 365: 18(int) Load 20(i) + 366: 18(int) SMod 365 364 + Store 20(i) 366 + 367: 18(int) Load 20(i) + 368: 18(int) ShiftRightArithmetic 367 291 + Store 20(i) 368 + 369: 18(int) Load 22(ui) + 370: 18(int) Load 20(i) + 371: 18(int) ShiftLeftLogical 370 369 + Store 20(i) 371 + 372: 18(int) Load 20(i) + 373: 18(int) Not 372 + Store 20(i) 373 + 374: 214(bool) Load 216(b) + 375: 214(bool) LogicalNot 374 + Store 216(b) 375 + 379: 214(bool) Load 216(b) + SelectionMerge 381 None + BranchConditional 379 380 390 + 380: Label + 382: 18(int) Load 20(i) + 383: 6(float) ConvertSToF 382 + 384: 7(fvec4) CompositeConstruct 383 383 383 383 + 385: 6(float) Load 301(f) + 386: 7(fvec4) CompositeConstruct 385 385 385 385 + 387: 7(fvec4) FAdd 384 386 + 388: 7(fvec4) Load 9(v) + 389: 7(fvec4) FAdd 387 388 + Store 378 389 + Branch 381 + 390: Label + 391: 7(fvec4) Load 9(v) + Store 378 391 + Branch 381 + 381: Label + 392: 7(fvec4) Load 378 + Store 377(gl_FragColor) 392 Return FunctionEnd diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out index c280bffd..e3392f2a 100755 --- a/Test/baseResults/spv.accessChain.frag.out +++ b/Test/baseResults/spv.accessChain.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 198 +// Id's are bound by 197 Source GLSL 420 Capability Shader @@ -16,309 +16,307 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "S" - MemberName 9(S) 0 "color" - Name 12 "GetColor1(struct-S-vf31;" - Name 11 "i" - Name 19 "GetColor2(struct-S-vf31;i1;" - Name 17 "i" - Name 18 "comp" - Name 23 "GetColor3(struct-S-vf31;i1;" - Name 21 "i" - Name 22 "comp" - Name 27 "GetColor4(struct-S-vf31;i1;" - Name 25 "i" - Name 26 "comp" - Name 31 "GetColor5(struct-S-vf31;i1;" - Name 29 "i" - Name 30 "comp" - Name 35 "GetColor6(struct-S-vf31;i1;" - Name 33 "i" - Name 34 "comp" - Name 39 "GetColor7(struct-S-vf31;i1;" - Name 37 "i" - Name 38 "comp" - Name 43 "GetColor8(struct-S-vf31;i1;" - Name 41 "i" - Name 42 "comp" - Name 47 "GetColor9(struct-S-vf31;i1;" - Name 45 "i" - Name 46 "comp" - Name 51 "GetColor10(struct-S-vf31;i1;" - Name 49 "i" - Name 50 "comp" - Name 55 "GetColor11(struct-S-vf31;i1;" - Name 53 "i" - Name 54 "comp" - Name 59 "GetColor12(struct-S-vf31;i1;" - Name 57 "i" - Name 58 "comp" - Name 63 "GetColor13(struct-S-vf31;i1;" - Name 61 "i" - Name 62 "comp" - Name 66 "OutColor" - Name 145 "s" - Name 150 "u" - Name 151 "param" - Name 155 "param" - Name 159 "param" - Name 163 "param" - Name 167 "param" - Name 171 "param" - Name 175 "param" - Name 179 "param" - Name 183 "param" - Name 187 "param" - Name 191 "param" - Name 195 "param" - Decorate 66(OutColor) Location 0 + Name 8 "S" + MemberName 8(S) 0 "color" + Name 11 "GetColor1(struct-S-vf31;" + Name 10 "i" + Name 18 "GetColor2(struct-S-vf31;i1;" + Name 16 "i" + Name 17 "comp" + Name 22 "GetColor3(struct-S-vf31;i1;" + Name 20 "i" + Name 21 "comp" + Name 26 "GetColor4(struct-S-vf31;i1;" + Name 24 "i" + Name 25 "comp" + Name 30 "GetColor5(struct-S-vf31;i1;" + Name 28 "i" + Name 29 "comp" + Name 34 "GetColor6(struct-S-vf31;i1;" + Name 32 "i" + Name 33 "comp" + Name 38 "GetColor7(struct-S-vf31;i1;" + Name 36 "i" + Name 37 "comp" + Name 42 "GetColor8(struct-S-vf31;i1;" + Name 40 "i" + Name 41 "comp" + Name 46 "GetColor9(struct-S-vf31;i1;" + Name 44 "i" + Name 45 "comp" + Name 50 "GetColor10(struct-S-vf31;i1;" + Name 48 "i" + Name 49 "comp" + Name 54 "GetColor11(struct-S-vf31;i1;" + Name 52 "i" + Name 53 "comp" + Name 58 "GetColor12(struct-S-vf31;i1;" + Name 56 "i" + Name 57 "comp" + Name 62 "GetColor13(struct-S-vf31;i1;" + Name 60 "i" + Name 61 "comp" + Name 65 "OutColor" + Name 144 "s" + Name 149 "u" + Name 150 "param" + Name 154 "param" + Name 158 "param" + Name 162 "param" + Name 166 "param" + Name 170 "param" + Name 174 "param" + Name 178 "param" + Name 182 "param" + Name 186 "param" + Name 190 "param" + Name 194 "param" + Decorate 65(OutColor) Location 0 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 3 - 9(S): TypeStruct 8(fvec3) - 10: TypeFunction 2 9(S) - 14: TypeInt 32 1 - 15: TypePointer Function 14(int) - 16: TypeFunction 2 9(S) 15(ptr) - 65: TypePointer Output 8(fvec3) - 66(OutColor): 65(ptr) Variable Output - 67: 14(int) Constant 0 - 68: TypeInt 32 0 - 69: 68(int) Constant 0 - 96: TypeVector 7(float) 2 - 110: 68(int) Constant 2 - 142: 7(float) Constant 0 - 143: 8(fvec3) ConstantComposite 142 142 142 - 144: TypePointer Function 9(S) - 149: TypePointer UniformConstant 14(int) - 150(u): 149(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8(S): TypeStruct 7(fvec3) + 9: TypeFunction 2 8(S) + 13: TypeInt 32 1 + 14: TypePointer Function 13(int) + 15: TypeFunction 2 8(S) 14(ptr) + 64: TypePointer Output 7(fvec3) + 65(OutColor): 64(ptr) Variable Output + 66: 13(int) Constant 0 + 67: TypeInt 32 0 + 68: 67(int) Constant 0 + 95: TypeVector 6(float) 2 + 109: 67(int) Constant 2 + 141: 6(float) Constant 0 + 142: 7(fvec3) ConstantComposite 141 141 141 + 143: TypePointer Function 8(S) + 148: TypePointer UniformConstant 13(int) + 149(u): 148(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 145(s): 144(ptr) Variable Function - 151(param): 15(ptr) Variable Function - 155(param): 15(ptr) Variable Function - 159(param): 15(ptr) Variable Function - 163(param): 15(ptr) Variable Function - 167(param): 15(ptr) Variable Function - 171(param): 15(ptr) Variable Function - 175(param): 15(ptr) Variable Function - 179(param): 15(ptr) Variable Function - 183(param): 15(ptr) Variable Function - 187(param): 15(ptr) Variable Function - 191(param): 15(ptr) Variable Function - 195(param): 15(ptr) Variable Function - Store 66(OutColor) 143 - 146: 9(S) Load 145(s) - 147: 2 FunctionCall 12(GetColor1(struct-S-vf31;) 146 - 148: 9(S) Load 145(s) - 152: 14(int) Load 150(u) - Store 151(param) 152 - 153: 2 FunctionCall 19(GetColor2(struct-S-vf31;i1;) 148 151(param) - 154: 9(S) Load 145(s) - 156: 14(int) Load 150(u) - Store 155(param) 156 - 157: 2 FunctionCall 23(GetColor3(struct-S-vf31;i1;) 154 155(param) - 158: 9(S) Load 145(s) - 160: 14(int) Load 150(u) - Store 159(param) 160 - 161: 2 FunctionCall 27(GetColor4(struct-S-vf31;i1;) 158 159(param) - 162: 9(S) Load 145(s) - 164: 14(int) Load 150(u) - Store 163(param) 164 - 165: 2 FunctionCall 31(GetColor5(struct-S-vf31;i1;) 162 163(param) - 166: 9(S) Load 145(s) - 168: 14(int) Load 150(u) - Store 167(param) 168 - 169: 2 FunctionCall 35(GetColor6(struct-S-vf31;i1;) 166 167(param) - 170: 9(S) Load 145(s) - 172: 14(int) Load 150(u) - Store 171(param) 172 - 173: 2 FunctionCall 39(GetColor7(struct-S-vf31;i1;) 170 171(param) - 174: 9(S) Load 145(s) - 176: 14(int) Load 150(u) - Store 175(param) 176 - 177: 2 FunctionCall 43(GetColor8(struct-S-vf31;i1;) 174 175(param) - 178: 9(S) Load 145(s) - 180: 14(int) Load 150(u) - Store 179(param) 180 - 181: 2 FunctionCall 47(GetColor9(struct-S-vf31;i1;) 178 179(param) - 182: 9(S) Load 145(s) - 184: 14(int) Load 150(u) - Store 183(param) 184 - 185: 2 FunctionCall 51(GetColor10(struct-S-vf31;i1;) 182 183(param) - 186: 9(S) Load 145(s) - 188: 14(int) Load 150(u) - Store 187(param) 188 - 189: 2 FunctionCall 55(GetColor11(struct-S-vf31;i1;) 186 187(param) - 190: 9(S) Load 145(s) - 192: 14(int) Load 150(u) - Store 191(param) 192 - 193: 2 FunctionCall 59(GetColor12(struct-S-vf31;i1;) 190 191(param) - 194: 9(S) Load 145(s) - 196: 14(int) Load 150(u) - Store 195(param) 196 - 197: 2 FunctionCall 63(GetColor13(struct-S-vf31;i1;) 194 195(param) - Branch 6 - 6: Label + 144(s): 143(ptr) Variable Function + 150(param): 14(ptr) Variable Function + 154(param): 14(ptr) Variable Function + 158(param): 14(ptr) Variable Function + 162(param): 14(ptr) Variable Function + 166(param): 14(ptr) Variable Function + 170(param): 14(ptr) Variable Function + 174(param): 14(ptr) Variable Function + 178(param): 14(ptr) Variable Function + 182(param): 14(ptr) Variable Function + 186(param): 14(ptr) Variable Function + 190(param): 14(ptr) Variable Function + 194(param): 14(ptr) Variable Function + Store 65(OutColor) 142 + 145: 8(S) Load 144(s) + 146: 2 FunctionCall 11(GetColor1(struct-S-vf31;) 145 + 147: 8(S) Load 144(s) + 151: 13(int) Load 149(u) + Store 150(param) 151 + 152: 2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 147 150(param) + 153: 8(S) Load 144(s) + 155: 13(int) Load 149(u) + Store 154(param) 155 + 156: 2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 153 154(param) + 157: 8(S) Load 144(s) + 159: 13(int) Load 149(u) + Store 158(param) 159 + 160: 2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 157 158(param) + 161: 8(S) Load 144(s) + 163: 13(int) Load 149(u) + Store 162(param) 163 + 164: 2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 161 162(param) + 165: 8(S) Load 144(s) + 167: 13(int) Load 149(u) + Store 166(param) 167 + 168: 2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 165 166(param) + 169: 8(S) Load 144(s) + 171: 13(int) Load 149(u) + Store 170(param) 171 + 172: 2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 169 170(param) + 173: 8(S) Load 144(s) + 175: 13(int) Load 149(u) + Store 174(param) 175 + 176: 2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 173 174(param) + 177: 8(S) Load 144(s) + 179: 13(int) Load 149(u) + Store 178(param) 179 + 180: 2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 177 178(param) + 181: 8(S) Load 144(s) + 183: 13(int) Load 149(u) + Store 182(param) 183 + 184: 2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 181 182(param) + 185: 8(S) Load 144(s) + 187: 13(int) Load 149(u) + Store 186(param) 187 + 188: 2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 185 186(param) + 189: 8(S) Load 144(s) + 191: 13(int) Load 149(u) + Store 190(param) 191 + 192: 2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 189 190(param) + 193: 8(S) Load 144(s) + 195: 13(int) Load 149(u) + Store 194(param) 195 + 196: 2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 193 194(param) Return FunctionEnd -12(GetColor1(struct-S-vf31;): 2 Function None 10 - 11(i): 9(S) FunctionParameter - 13: Label - 70: 7(float) CompositeExtract 11(i) 0 0 - 71: 8(fvec3) Load 66(OutColor) - 72: 8(fvec3) CompositeConstruct 70 70 70 - 73: 8(fvec3) FAdd 71 72 - Store 66(OutColor) 73 +11(GetColor1(struct-S-vf31;): 2 Function None 9 + 10(i): 8(S) FunctionParameter + 12: Label + 69: 6(float) CompositeExtract 10(i) 0 0 + 70: 7(fvec3) Load 65(OutColor) + 71: 7(fvec3) CompositeConstruct 69 69 69 + 72: 7(fvec3) FAdd 70 71 + Store 65(OutColor) 72 Return FunctionEnd -19(GetColor2(struct-S-vf31;i1;): 2 Function None 16 - 17(i): 9(S) FunctionParameter - 18(comp): 15(ptr) FunctionParameter - 20: Label - 74: 14(int) Load 18(comp) - 75: 8(fvec3) CompositeExtract 17(i) 0 - 76: 7(float) VectorExtractDynamic 75 74 - 77: 8(fvec3) Load 66(OutColor) - 78: 8(fvec3) CompositeConstruct 76 76 76 - 79: 8(fvec3) FAdd 77 78 - Store 66(OutColor) 79 +18(GetColor2(struct-S-vf31;i1;): 2 Function None 15 + 16(i): 8(S) FunctionParameter + 17(comp): 14(ptr) FunctionParameter + 19: Label + 73: 13(int) Load 17(comp) + 74: 7(fvec3) CompositeExtract 16(i) 0 + 75: 6(float) VectorExtractDynamic 74 73 + 76: 7(fvec3) Load 65(OutColor) + 77: 7(fvec3) CompositeConstruct 75 75 75 + 78: 7(fvec3) FAdd 76 77 + Store 65(OutColor) 78 Return FunctionEnd -23(GetColor3(struct-S-vf31;i1;): 2 Function None 16 - 21(i): 9(S) FunctionParameter - 22(comp): 15(ptr) FunctionParameter - 24: Label - 80: 14(int) Load 22(comp) - 81: 8(fvec3) CompositeExtract 21(i) 0 - 82: 7(float) VectorExtractDynamic 81 80 - 83: 8(fvec3) Load 66(OutColor) - 84: 8(fvec3) CompositeConstruct 82 82 82 - 85: 8(fvec3) FAdd 83 84 - Store 66(OutColor) 85 +22(GetColor3(struct-S-vf31;i1;): 2 Function None 15 + 20(i): 8(S) FunctionParameter + 21(comp): 14(ptr) FunctionParameter + 23: Label + 79: 13(int) Load 21(comp) + 80: 7(fvec3) CompositeExtract 20(i) 0 + 81: 6(float) VectorExtractDynamic 80 79 + 82: 7(fvec3) Load 65(OutColor) + 83: 7(fvec3) CompositeConstruct 81 81 81 + 84: 7(fvec3) FAdd 82 83 + Store 65(OutColor) 84 Return FunctionEnd -27(GetColor4(struct-S-vf31;i1;): 2 Function None 16 - 25(i): 9(S) FunctionParameter - 26(comp): 15(ptr) FunctionParameter - 28: Label - 86: 14(int) Load 26(comp) - 87: 8(fvec3) CompositeExtract 25(i) 0 - 88: 7(float) VectorExtractDynamic 87 86 - 89: 8(fvec3) Load 66(OutColor) - 90: 8(fvec3) CompositeConstruct 88 88 88 - 91: 8(fvec3) FAdd 89 90 - Store 66(OutColor) 91 +26(GetColor4(struct-S-vf31;i1;): 2 Function None 15 + 24(i): 8(S) FunctionParameter + 25(comp): 14(ptr) FunctionParameter + 27: Label + 85: 13(int) Load 25(comp) + 86: 7(fvec3) CompositeExtract 24(i) 0 + 87: 6(float) VectorExtractDynamic 86 85 + 88: 7(fvec3) Load 65(OutColor) + 89: 7(fvec3) CompositeConstruct 87 87 87 + 90: 7(fvec3) FAdd 88 89 + Store 65(OutColor) 90 Return FunctionEnd -31(GetColor5(struct-S-vf31;i1;): 2 Function None 16 - 29(i): 9(S) FunctionParameter - 30(comp): 15(ptr) FunctionParameter - 32: Label - 92: 8(fvec3) CompositeExtract 29(i) 0 - 93: 8(fvec3) Load 66(OutColor) - 94: 8(fvec3) FAdd 93 92 - Store 66(OutColor) 94 +30(GetColor5(struct-S-vf31;i1;): 2 Function None 15 + 28(i): 8(S) FunctionParameter + 29(comp): 14(ptr) FunctionParameter + 31: Label + 91: 7(fvec3) CompositeExtract 28(i) 0 + 92: 7(fvec3) Load 65(OutColor) + 93: 7(fvec3) FAdd 92 91 + Store 65(OutColor) 93 Return FunctionEnd -35(GetColor6(struct-S-vf31;i1;): 2 Function None 16 - 33(i): 9(S) FunctionParameter - 34(comp): 15(ptr) FunctionParameter - 36: Label - 95: 14(int) Load 34(comp) - 97: 8(fvec3) CompositeExtract 33(i) 0 - 98: 96(fvec2) VectorShuffle 97 97 1 0 - 99: 7(float) VectorExtractDynamic 98 95 - 100: 8(fvec3) Load 66(OutColor) - 101: 8(fvec3) CompositeConstruct 99 99 99 - 102: 8(fvec3) FAdd 100 101 - Store 66(OutColor) 102 +34(GetColor6(struct-S-vf31;i1;): 2 Function None 15 + 32(i): 8(S) FunctionParameter + 33(comp): 14(ptr) FunctionParameter + 35: Label + 94: 13(int) Load 33(comp) + 96: 7(fvec3) CompositeExtract 32(i) 0 + 97: 95(fvec2) VectorShuffle 96 96 1 0 + 98: 6(float) VectorExtractDynamic 97 94 + 99: 7(fvec3) Load 65(OutColor) + 100: 7(fvec3) CompositeConstruct 98 98 98 + 101: 7(fvec3) FAdd 99 100 + Store 65(OutColor) 101 Return FunctionEnd -39(GetColor7(struct-S-vf31;i1;): 2 Function None 16 - 37(i): 9(S) FunctionParameter - 38(comp): 15(ptr) FunctionParameter - 40: Label - 103: 8(fvec3) CompositeExtract 37(i) 0 - 104: 96(fvec2) VectorShuffle 103 103 0 1 - 105: 8(fvec3) Load 66(OutColor) - 106: 96(fvec2) VectorShuffle 105 105 0 1 - 107: 96(fvec2) FAdd 106 104 - 108: 8(fvec3) Load 66(OutColor) - 109: 8(fvec3) VectorShuffle 108 107 3 4 2 - Store 66(OutColor) 109 +38(GetColor7(struct-S-vf31;i1;): 2 Function None 15 + 36(i): 8(S) FunctionParameter + 37(comp): 14(ptr) FunctionParameter + 39: Label + 102: 7(fvec3) CompositeExtract 36(i) 0 + 103: 95(fvec2) VectorShuffle 102 102 0 1 + 104: 7(fvec3) Load 65(OutColor) + 105: 95(fvec2) VectorShuffle 104 104 0 1 + 106: 95(fvec2) FAdd 105 103 + 107: 7(fvec3) Load 65(OutColor) + 108: 7(fvec3) VectorShuffle 107 106 3 4 2 + Store 65(OutColor) 108 Return FunctionEnd -43(GetColor8(struct-S-vf31;i1;): 2 Function None 16 - 41(i): 9(S) FunctionParameter - 42(comp): 15(ptr) FunctionParameter - 44: Label - 111: 7(float) CompositeExtract 41(i) 0 2 - 112: 8(fvec3) Load 66(OutColor) - 113: 8(fvec3) CompositeConstruct 111 111 111 - 114: 8(fvec3) FAdd 112 113 - Store 66(OutColor) 114 +42(GetColor8(struct-S-vf31;i1;): 2 Function None 15 + 40(i): 8(S) FunctionParameter + 41(comp): 14(ptr) FunctionParameter + 43: Label + 110: 6(float) CompositeExtract 40(i) 0 2 + 111: 7(fvec3) Load 65(OutColor) + 112: 7(fvec3) CompositeConstruct 110 110 110 + 113: 7(fvec3) FAdd 111 112 + Store 65(OutColor) 113 Return FunctionEnd -47(GetColor9(struct-S-vf31;i1;): 2 Function None 16 - 45(i): 9(S) FunctionParameter - 46(comp): 15(ptr) FunctionParameter - 48: Label - 115: 8(fvec3) CompositeExtract 45(i) 0 - 116: 8(fvec3) Load 66(OutColor) - 117: 8(fvec3) VectorShuffle 116 116 2 0 1 - 118: 8(fvec3) FAdd 117 115 - 119: 8(fvec3) Load 66(OutColor) - 120: 8(fvec3) VectorShuffle 119 118 4 5 3 - Store 66(OutColor) 120 +46(GetColor9(struct-S-vf31;i1;): 2 Function None 15 + 44(i): 8(S) FunctionParameter + 45(comp): 14(ptr) FunctionParameter + 47: Label + 114: 7(fvec3) CompositeExtract 44(i) 0 + 115: 7(fvec3) Load 65(OutColor) + 116: 7(fvec3) VectorShuffle 115 115 2 0 1 + 117: 7(fvec3) FAdd 116 114 + 118: 7(fvec3) Load 65(OutColor) + 119: 7(fvec3) VectorShuffle 118 117 4 5 3 + Store 65(OutColor) 119 Return FunctionEnd -51(GetColor10(struct-S-vf31;i1;): 2 Function None 16 - 49(i): 9(S) FunctionParameter - 50(comp): 15(ptr) FunctionParameter - 52: Label - 121: 8(fvec3) CompositeExtract 49(i) 0 - 122: 96(fvec2) VectorShuffle 121 121 0 1 - 123: 8(fvec3) Load 66(OutColor) - 124: 96(fvec2) VectorShuffle 123 123 2 1 - 125: 96(fvec2) FAdd 124 122 - 126: 8(fvec3) Load 66(OutColor) - 127: 8(fvec3) VectorShuffle 126 125 0 4 3 - Store 66(OutColor) 127 +50(GetColor10(struct-S-vf31;i1;): 2 Function None 15 + 48(i): 8(S) FunctionParameter + 49(comp): 14(ptr) FunctionParameter + 51: Label + 120: 7(fvec3) CompositeExtract 48(i) 0 + 121: 95(fvec2) VectorShuffle 120 120 0 1 + 122: 7(fvec3) Load 65(OutColor) + 123: 95(fvec2) VectorShuffle 122 122 2 1 + 124: 95(fvec2) FAdd 123 121 + 125: 7(fvec3) Load 65(OutColor) + 126: 7(fvec3) VectorShuffle 125 124 0 4 3 + Store 65(OutColor) 126 Return FunctionEnd -55(GetColor11(struct-S-vf31;i1;): 2 Function None 16 - 53(i): 9(S) FunctionParameter - 54(comp): 15(ptr) FunctionParameter - 56: Label - 128: 8(fvec3) CompositeExtract 53(i) 0 - 129: 96(fvec2) VectorShuffle 128 128 0 1 - 130: 8(fvec3) Load 66(OutColor) - 131: 96(fvec2) VectorShuffle 130 130 0 2 - 132: 96(fvec2) FAdd 131 129 - 133: 8(fvec3) Load 66(OutColor) - 134: 8(fvec3) VectorShuffle 133 132 3 1 4 - Store 66(OutColor) 134 +54(GetColor11(struct-S-vf31;i1;): 2 Function None 15 + 52(i): 8(S) FunctionParameter + 53(comp): 14(ptr) FunctionParameter + 55: Label + 127: 7(fvec3) CompositeExtract 52(i) 0 + 128: 95(fvec2) VectorShuffle 127 127 0 1 + 129: 7(fvec3) Load 65(OutColor) + 130: 95(fvec2) VectorShuffle 129 129 0 2 + 131: 95(fvec2) FAdd 130 128 + 132: 7(fvec3) Load 65(OutColor) + 133: 7(fvec3) VectorShuffle 132 131 3 1 4 + Store 65(OutColor) 133 Return FunctionEnd -59(GetColor12(struct-S-vf31;i1;): 2 Function None 16 - 57(i): 9(S) FunctionParameter - 58(comp): 15(ptr) FunctionParameter - 60: Label - 135: 14(int) Load 58(comp) - 136: 7(float) CompositeExtract 57(i) 0 0 - 137: 8(fvec3) Load 66(OutColor) - 138: 7(float) VectorExtractDynamic 137 135 - 139: 7(float) FAdd 138 136 - 140: 8(fvec3) Load 66(OutColor) - 141: 8(fvec3) VectorInsertDynamic 140 139 135 - Store 66(OutColor) 141 +58(GetColor12(struct-S-vf31;i1;): 2 Function None 15 + 56(i): 8(S) FunctionParameter + 57(comp): 14(ptr) FunctionParameter + 59: Label + 134: 13(int) Load 57(comp) + 135: 6(float) CompositeExtract 56(i) 0 0 + 136: 7(fvec3) Load 65(OutColor) + 137: 6(float) VectorExtractDynamic 136 134 + 138: 6(float) FAdd 137 135 + 139: 7(fvec3) Load 65(OutColor) + 140: 7(fvec3) VectorInsertDynamic 139 138 134 + Store 65(OutColor) 140 Return FunctionEnd -63(GetColor13(struct-S-vf31;i1;): 2 Function None 16 - 61(i): 9(S) FunctionParameter - 62(comp): 15(ptr) FunctionParameter - 64: Label +62(GetColor13(struct-S-vf31;i1;): 2 Function None 15 + 60(i): 8(S) FunctionParameter + 61(comp): 14(ptr) FunctionParameter + 63: Label Return FunctionEnd diff --git a/Test/baseResults/spv.always-discard.frag.out b/Test/baseResults/spv.always-discard.frag.out index ffcd1a9d..24b6ec5c 100755 --- a/Test/baseResults/spv.always-discard.frag.out +++ b/Test/baseResults/spv.always-discard.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 81 +// Id's are bound by 80 Source GLSL 110 Capability Shader @@ -14,119 +14,117 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "white" - Name 13 "black" - Name 16 "color" - Name 19 "x" - Name 22 "tex_coord" - Name 28 "y" - Name 33 "radius" - Name 56 "gl_FragColor" - Decorate 22(tex_coord) Smooth - Decorate 56(gl_FragColor) BuiltIn FragColor + Name 9 "white" + Name 12 "black" + Name 15 "color" + Name 18 "x" + Name 21 "tex_coord" + Name 27 "y" + Name 32 "radius" + Name 55 "gl_FragColor" + Decorate 21(tex_coord) Smooth + Decorate 55(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: 7(float) Constant 1065353216 - 12: 8(fvec4) ConstantComposite 11 11 11 11 - 14: 7(float) Constant 1045220557 - 15: 8(fvec4) ConstantComposite 14 14 14 14 - 18: TypePointer Function 7(float) - 20: TypeVector 7(float) 2 - 21: TypePointer Input 20(fvec2) - 22(tex_coord): 21(ptr) Variable Input - 25: 7(float) Constant 1073741824 - 43: TypeBool - 48: 7(float) Constant 1066192077 - 55: TypePointer Output 8(fvec4) -56(gl_FragColor): 55(ptr) Variable Output - 59: 7(float) Constant 1067030938 - 68: 7(float) Constant 1061158912 - 73: 7(float) Constant 1098907648 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 13: 6(float) Constant 1045220557 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 17: TypePointer Function 6(float) + 19: TypeVector 6(float) 2 + 20: TypePointer Input 19(fvec2) + 21(tex_coord): 20(ptr) Variable Input + 24: 6(float) Constant 1073741824 + 42: TypeBool + 47: 6(float) Constant 1066192077 + 54: TypePointer Output 7(fvec4) +55(gl_FragColor): 54(ptr) Variable Output + 58: 6(float) Constant 1067030938 + 67: 6(float) Constant 1061158912 + 72: 6(float) Constant 1098907648 4(main): 2 Function None 3 5: Label - 10(white): 9(ptr) Variable Function - 13(black): 9(ptr) Variable Function - 16(color): 9(ptr) Variable Function - 19(x): 18(ptr) Variable Function - 28(y): 18(ptr) Variable Function - 33(radius): 18(ptr) Variable Function - Store 10(white) 12 - Store 13(black) 15 - 17: 8(fvec4) Load 10(white) - Store 16(color) 17 - 23: 20(fvec2) Load 22(tex_coord) - 24: 7(float) CompositeExtract 23 0 - 26: 7(float) FMul 24 25 - 27: 7(float) FSub 26 11 - Store 19(x) 27 - 29: 20(fvec2) Load 22(tex_coord) - 30: 7(float) CompositeExtract 29 1 - 31: 7(float) FMul 30 25 - 32: 7(float) FSub 31 11 - Store 28(y) 32 - 34: 7(float) Load 19(x) - 35: 7(float) Load 19(x) - 36: 7(float) FMul 34 35 - 37: 7(float) Load 28(y) - 38: 7(float) Load 28(y) - 39: 7(float) FMul 37 38 - 40: 7(float) FAdd 36 39 - 41: 7(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 40 - Store 33(radius) 41 - 42: 7(float) Load 33(radius) - 44: 43(bool) FOrdGreaterThan 42 11 - SelectionMerge 46 None - BranchConditional 44 45 46 - 45: Label - 47: 7(float) Load 33(radius) - 49: 43(bool) FOrdGreaterThan 47 48 - SelectionMerge 51 None - BranchConditional 49 50 51 - 50: Label - 52: 8(fvec4) Load 16(color) - 53: 8(fvec4) CompositeConstruct 11 11 11 11 - 54: 8(fvec4) FAdd 52 53 - Store 16(color) 54 - Branch 51 - 51: Label - 57: 8(fvec4) Load 16(color) - Store 56(gl_FragColor) 57 - 58: 7(float) Load 33(radius) - 60: 43(bool) FOrdGreaterThan 58 59 - SelectionMerge 62 None - BranchConditional 60 61 62 - 61: Label - 63: 8(fvec4) Load 16(color) - 64: 8(fvec4) CompositeConstruct 11 11 11 11 - 65: 8(fvec4) FAdd 63 64 - Store 16(color) 65 - Branch 62 - 62: Label - Branch 46 - 46: Label + 9(white): 8(ptr) Variable Function + 12(black): 8(ptr) Variable Function + 15(color): 8(ptr) Variable Function + 18(x): 17(ptr) Variable Function + 27(y): 17(ptr) Variable Function + 32(radius): 17(ptr) Variable Function + Store 9(white) 11 + Store 12(black) 14 + 16: 7(fvec4) Load 9(white) + Store 15(color) 16 + 22: 19(fvec2) Load 21(tex_coord) + 23: 6(float) CompositeExtract 22 0 + 25: 6(float) FMul 23 24 + 26: 6(float) FSub 25 10 + Store 18(x) 26 + 28: 19(fvec2) Load 21(tex_coord) + 29: 6(float) CompositeExtract 28 1 + 30: 6(float) FMul 29 24 + 31: 6(float) FSub 30 10 + Store 27(y) 31 + 33: 6(float) Load 18(x) + 34: 6(float) Load 18(x) + 35: 6(float) FMul 33 34 + 36: 6(float) Load 27(y) + 37: 6(float) Load 27(y) + 38: 6(float) FMul 36 37 + 39: 6(float) FAdd 35 38 + 40: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 39 + Store 32(radius) 40 + 41: 6(float) Load 32(radius) + 43: 42(bool) FOrdGreaterThan 41 10 + SelectionMerge 45 None + BranchConditional 43 44 45 + 44: Label + 46: 6(float) Load 32(radius) + 48: 42(bool) FOrdGreaterThan 46 47 + SelectionMerge 50 None + BranchConditional 48 49 50 + 49: Label + 51: 7(fvec4) Load 15(color) + 52: 7(fvec4) CompositeConstruct 10 10 10 10 + 53: 7(fvec4) FAdd 51 52 + Store 15(color) 53 + Branch 50 + 50: Label + 56: 7(fvec4) Load 15(color) + Store 55(gl_FragColor) 56 + 57: 6(float) Load 32(radius) + 59: 42(bool) FOrdGreaterThan 57 58 + SelectionMerge 61 None + BranchConditional 59 60 61 + 60: Label + 62: 7(fvec4) Load 15(color) + 63: 7(fvec4) CompositeConstruct 10 10 10 10 + 64: 7(fvec4) FAdd 62 63 + Store 15(color) 64 + Branch 61 + 61: Label + Branch 45 + 45: Label Kill - 66: Label - 67: 7(float) Load 33(radius) - 69: 43(bool) FOrdGreaterThanEqual 67 68 - SelectionMerge 71 None - BranchConditional 69 70 71 - 70: Label - 72: 7(float) Load 33(radius) - 74: 7(float) ExtInst 1(GLSL.std.450) 26(Pow) 72 73 - 75: 7(float) FDiv 74 25 - 76: 7(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75 - 77: 8(fvec4) Load 16(color) - 78: 8(fvec4) CompositeConstruct 76 76 76 76 - 79: 8(fvec4) FSub 77 78 - Store 16(color) 79 - Branch 71 - 71: Label - 80: 8(fvec4) Load 16(color) - Store 56(gl_FragColor) 80 - Branch 6 - 6: Label + 65: Label + 66: 6(float) Load 32(radius) + 68: 42(bool) FOrdGreaterThanEqual 66 67 + SelectionMerge 70 None + BranchConditional 68 69 70 + 69: Label + 71: 6(float) Load 32(radius) + 73: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 71 72 + 74: 6(float) FDiv 73 24 + 75: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 74 + 76: 7(fvec4) Load 15(color) + 77: 7(fvec4) CompositeConstruct 75 75 75 75 + 78: 7(fvec4) FSub 76 77 + Store 15(color) 78 + Branch 70 + 70: Label + 79: 7(fvec4) Load 15(color) + Store 55(gl_FragColor) 79 Return FunctionEnd diff --git a/Test/baseResults/spv.always-discard2.frag.out b/Test/baseResults/spv.always-discard2.frag.out index 767558ef..e2d03b4a 100755 --- a/Test/baseResults/spv.always-discard2.frag.out +++ b/Test/baseResults/spv.always-discard2.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 37 +// Id's are bound by 36 Source GLSL 110 Capability Shader @@ -14,53 +14,51 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "white" - Name 13 "black" - Name 16 "color" - Name 19 "x" - Name 22 "tex_coord" - Name 28 "y" - Name 35 "gl_FragColor" - Decorate 22(tex_coord) Smooth - Decorate 35(gl_FragColor) BuiltIn FragColor + Name 9 "white" + Name 12 "black" + Name 15 "color" + Name 18 "x" + Name 21 "tex_coord" + Name 27 "y" + Name 34 "gl_FragColor" + Decorate 21(tex_coord) Smooth + Decorate 34(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: 7(float) Constant 1065353216 - 12: 8(fvec4) ConstantComposite 11 11 11 11 - 14: 7(float) Constant 1045220557 - 15: 8(fvec4) ConstantComposite 14 14 14 14 - 18: TypePointer Function 7(float) - 20: TypeVector 7(float) 2 - 21: TypePointer Input 20(fvec2) - 22(tex_coord): 21(ptr) Variable Input - 25: 7(float) Constant 1073741824 - 34: TypePointer Output 8(fvec4) -35(gl_FragColor): 34(ptr) Variable Output + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 13: 6(float) Constant 1045220557 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 17: TypePointer Function 6(float) + 19: TypeVector 6(float) 2 + 20: TypePointer Input 19(fvec2) + 21(tex_coord): 20(ptr) Variable Input + 24: 6(float) Constant 1073741824 + 33: TypePointer Output 7(fvec4) +34(gl_FragColor): 33(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 10(white): 9(ptr) Variable Function - 13(black): 9(ptr) Variable Function - 16(color): 9(ptr) Variable Function - 19(x): 18(ptr) Variable Function - 28(y): 18(ptr) Variable Function - Store 10(white) 12 - Store 13(black) 15 - 17: 8(fvec4) Load 10(white) - Store 16(color) 17 - 23: 20(fvec2) Load 22(tex_coord) - 24: 7(float) CompositeExtract 23 0 - 26: 7(float) FMul 24 25 - 27: 7(float) FSub 26 11 - Store 19(x) 27 - 29: 20(fvec2) Load 22(tex_coord) - 30: 7(float) CompositeExtract 29 1 - 31: 7(float) FMul 30 25 - 32: 7(float) FSub 31 11 - Store 28(y) 32 + 9(white): 8(ptr) Variable Function + 12(black): 8(ptr) Variable Function + 15(color): 8(ptr) Variable Function + 18(x): 17(ptr) Variable Function + 27(y): 17(ptr) Variable Function + Store 9(white) 11 + Store 12(black) 14 + 16: 7(fvec4) Load 9(white) + Store 15(color) 16 + 22: 19(fvec2) Load 21(tex_coord) + 23: 6(float) CompositeExtract 22 0 + 25: 6(float) FMul 23 24 + 26: 6(float) FSub 25 10 + Store 18(x) 26 + 28: 19(fvec2) Load 21(tex_coord) + 29: 6(float) CompositeExtract 28 1 + 30: 6(float) FMul 29 24 + 31: 6(float) FSub 30 10 + Store 27(y) 31 Kill - 6: Label - Return FunctionEnd diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out index d8650e79..55052aef 100755 --- a/Test/baseResults/spv.atomic.comp.out +++ b/Test/baseResults/spv.atomic.comp.out @@ -8,7 +8,7 @@ Linked compute stage: TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class? // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 75 +// Id's are bound by 74 Source ESSL 310 Capability Shader @@ -16,113 +16,111 @@ TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" Name 4 "main" - Name 11 "func(au1;" - Name 10 "c" - Name 13 "atoms(" - Name 22 "counter" - Name 23 "param" - Name 26 "val" - Name 30 "countArr" - Name 39 "origi" - Name 41 "atomi" - Name 45 "origu" - Name 47 "atomu" - Name 49 "value" - Name 72 "arrX" - Name 73 "arrY" - Name 74 "arrZ" - Decorate 22(counter) Binding 0 - Decorate 30(countArr) Binding 0 - Decorate 72(arrX) NoStaticUse - Decorate 73(arrY) NoStaticUse - Decorate 74(arrZ) NoStaticUse + Name 10 "func(au1;" + Name 9 "c" + Name 12 "atoms(" + Name 21 "counter" + Name 22 "param" + Name 25 "val" + Name 29 "countArr" + Name 38 "origi" + Name 40 "atomi" + Name 44 "origu" + Name 46 "atomu" + Name 48 "value" + Name 71 "arrX" + Name 72 "arrY" + Name 73 "arrZ" + Decorate 21(counter) Binding 0 + Decorate 29(countArr) Binding 0 + Decorate 71(arrX) NoStaticUse + Decorate 72(arrY) NoStaticUse + Decorate 73(arrZ) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 0 - 8: TypePointer Function 7(int) - 9: TypeFunction 7(int) 8(ptr) - 16: 7(int) Constant 1 - 17: 7(int) Constant 0 - 20: 7(int) Constant 256 - 21: TypePointer UniformConstant 7(int) - 22(counter): 21(ptr) Variable UniformConstant - 27: 7(int) Constant 4 - 28: TypeArray 7(int) 27 - 29: TypePointer UniformConstant 28 - 30(countArr): 29(ptr) Variable UniformConstant - 31: TypeInt 32 1 - 32: 31(int) Constant 2 - 38: TypePointer Function 31(int) - 40: TypePointer WorkgroupLocal 31(int) - 41(atomi): 40(ptr) Variable WorkgroupLocal - 43: 31(int) Constant 3 - 46: TypePointer WorkgroupLocal 7(int) - 47(atomu): 46(ptr) Variable WorkgroupLocal - 49(value): 21(ptr) Variable UniformConstant - 53: 7(int) Constant 7 - 61: 31(int) Constant 7 - 67: 7(int) Constant 10 - 70: TypeArray 31(int) 16 - 71: TypePointer PrivateGlobal 70 - 72(arrX): 71(ptr) Variable PrivateGlobal - 73(arrY): 71(ptr) Variable PrivateGlobal - 74(arrZ): 71(ptr) Variable PrivateGlobal + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 15: 6(int) Constant 1 + 16: 6(int) Constant 0 + 19: 6(int) Constant 256 + 20: TypePointer UniformConstant 6(int) + 21(counter): 20(ptr) Variable UniformConstant + 26: 6(int) Constant 4 + 27: TypeArray 6(int) 26 + 28: TypePointer UniformConstant 27 + 29(countArr): 28(ptr) Variable UniformConstant + 30: TypeInt 32 1 + 31: 30(int) Constant 2 + 37: TypePointer Function 30(int) + 39: TypePointer WorkgroupLocal 30(int) + 40(atomi): 39(ptr) Variable WorkgroupLocal + 42: 30(int) Constant 3 + 45: TypePointer WorkgroupLocal 6(int) + 46(atomu): 45(ptr) Variable WorkgroupLocal + 48(value): 20(ptr) Variable UniformConstant + 52: 6(int) Constant 7 + 60: 30(int) Constant 7 + 66: 6(int) Constant 10 + 69: TypeArray 30(int) 15 + 70: TypePointer PrivateGlobal 69 + 71(arrX): 70(ptr) Variable PrivateGlobal + 72(arrY): 70(ptr) Variable PrivateGlobal + 73(arrZ): 70(ptr) Variable PrivateGlobal 4(main): 2 Function None 3 5: Label - 23(param): 8(ptr) Variable Function - 26(val): 8(ptr) Variable Function - MemoryBarrier 16 20 - 24: 7(int) Load 22(counter) - Store 23(param) 24 - 25: 7(int) FunctionCall 11(func(au1;) 23(param) - 33: 21(ptr) AccessChain 30(countArr) 32 - 34: 7(int) Load 33 - 35: 7(int) AtomicLoad 34 16 17 - Store 26(val) 35 - 36: 7(int) Load 22(counter) - 37: 7(int) AtomicIDecrement 36 16 17 - Branch 6 - 6: Label + 22(param): 7(ptr) Variable Function + 25(val): 7(ptr) Variable Function + MemoryBarrier 15 19 + 23: 6(int) Load 21(counter) + Store 22(param) 23 + 24: 6(int) FunctionCall 10(func(au1;) 22(param) + 32: 20(ptr) AccessChain 29(countArr) 31 + 33: 6(int) Load 32 + 34: 6(int) AtomicLoad 33 15 16 + Store 25(val) 34 + 35: 6(int) Load 21(counter) + 36: 6(int) AtomicIDecrement 35 15 16 Return FunctionEnd - 11(func(au1;): 7(int) Function None 9 - 10(c): 8(ptr) FunctionParameter - 12: Label - 15: 7(int) Load 10(c) - 18: 7(int) AtomicIIncrement 15 16 17 - ReturnValue 18 + 10(func(au1;): 6(int) Function None 8 + 9(c): 7(ptr) FunctionParameter + 11: Label + 14: 6(int) Load 9(c) + 17: 6(int) AtomicIIncrement 14 15 16 + ReturnValue 17 FunctionEnd - 13(atoms(): 2 Function None 3 - 14: Label - 39(origi): 38(ptr) Variable Function - 45(origu): 8(ptr) Variable Function - 42: 31(int) Load 41(atomi) - 44: 31(int) AtomicIAdd 42 16 17 43 - Store 39(origi) 44 - 48: 7(int) Load 47(atomu) - 50: 7(int) Load 49(value) - 51: 7(int) AtomicAnd 48 16 17 50 - Store 45(origu) 51 - 52: 7(int) Load 47(atomu) - 54: 7(int) AtomicOr 52 16 17 53 - Store 45(origu) 54 - 55: 7(int) Load 47(atomu) - 56: 7(int) AtomicXor 55 16 17 53 - Store 45(origu) 56 - 57: 7(int) Load 47(atomu) - 58: 7(int) Load 49(value) - 59: 7(int) AtomicSMin 57 16 17 58 - Store 45(origu) 59 - 60: 31(int) Load 41(atomi) - 62: 31(int) AtomicSMax 60 16 17 61 - Store 39(origi) 62 - 63: 31(int) Load 41(atomi) - 64: 31(int) Load 39(origi) - 65: 31(int) AtomicExchange 63 16 17 64 - Store 39(origi) 65 - 66: 7(int) Load 47(atomu) - 68: 7(int) Load 49(value) - 69: 7(int) AtomicCompareExchange 66 16 17 67 68 - Store 45(origu) 69 + 12(atoms(): 2 Function None 3 + 13: Label + 38(origi): 37(ptr) Variable Function + 44(origu): 7(ptr) Variable Function + 41: 30(int) Load 40(atomi) + 43: 30(int) AtomicIAdd 41 15 16 42 + Store 38(origi) 43 + 47: 6(int) Load 46(atomu) + 49: 6(int) Load 48(value) + 50: 6(int) AtomicAnd 47 15 16 49 + Store 44(origu) 50 + 51: 6(int) Load 46(atomu) + 53: 6(int) AtomicOr 51 15 16 52 + Store 44(origu) 53 + 54: 6(int) Load 46(atomu) + 55: 6(int) AtomicXor 54 15 16 52 + Store 44(origu) 55 + 56: 6(int) Load 46(atomu) + 57: 6(int) Load 48(value) + 58: 6(int) AtomicSMin 56 15 16 57 + Store 44(origu) 58 + 59: 30(int) Load 40(atomi) + 61: 30(int) AtomicSMax 59 15 16 60 + Store 38(origi) 61 + 62: 30(int) Load 40(atomi) + 63: 30(int) Load 38(origi) + 64: 30(int) AtomicExchange 62 15 16 63 + Store 38(origi) 64 + 65: 6(int) Load 46(atomu) + 67: 6(int) Load 48(value) + 68: 6(int) AtomicCompareExchange 65 15 16 16 67 66 + Store 44(origu) 68 Return FunctionEnd diff --git a/Test/baseResults/spv.conditionalDiscard.frag.out b/Test/baseResults/spv.conditionalDiscard.frag.out index b5488af2..f727174a 100755 --- a/Test/baseResults/spv.conditionalDiscard.frag.out +++ b/Test/baseResults/spv.conditionalDiscard.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 37 +// Id's are bound by 36 Source GLSL 110 Capability Shader @@ -14,51 +14,49 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "v" - Name 14 "tex" - Name 18 "coord" - Name 35 "gl_FragColor" - Decorate 18(coord) Smooth - Decorate 35(gl_FragColor) BuiltIn FragColor + Name 9 "v" + Name 13 "tex" + Name 17 "coord" + Name 34 "gl_FragColor" + Decorate 17(coord) Smooth + Decorate 34(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypeImage 7(float) 2D sampled format:Unknown - 12: TypeSampledImage 11 - 13: TypePointer UniformConstant 12 - 14(tex): 13(ptr) Variable UniformConstant - 16: TypeVector 7(float) 2 - 17: TypePointer Input 16(fvec2) - 18(coord): 17(ptr) Variable Input - 22: 7(float) Constant 1036831949 - 23: 7(float) Constant 1045220557 - 24: 7(float) Constant 1050253722 - 25: 7(float) Constant 1053609165 - 26: 8(fvec4) ConstantComposite 22 23 24 25 - 27: TypeBool - 28: TypeVector 27(bool) 4 - 34: TypePointer Output 8(fvec4) -35(gl_FragColor): 34(ptr) Variable Output + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(tex): 12(ptr) Variable UniformConstant + 15: TypeVector 6(float) 2 + 16: TypePointer Input 15(fvec2) + 17(coord): 16(ptr) Variable Input + 21: 6(float) Constant 1036831949 + 22: 6(float) Constant 1045220557 + 23: 6(float) Constant 1050253722 + 24: 6(float) Constant 1053609165 + 25: 7(fvec4) ConstantComposite 21 22 23 24 + 26: TypeBool + 27: TypeVector 26(bool) 4 + 33: TypePointer Output 7(fvec4) +34(gl_FragColor): 33(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 10(v): 9(ptr) Variable Function - 15: 12 Load 14(tex) - 19: 16(fvec2) Load 18(coord) - 20: 8(fvec4) ImageSampleImplicitLod 15 19 - Store 10(v) 20 - 21: 8(fvec4) Load 10(v) - 29: 28(bvec4) FOrdEqual 21 26 - 30: 27(bool) All 29 - SelectionMerge 32 None - BranchConditional 30 31 32 - 31: Label + 9(v): 8(ptr) Variable Function + 14: 11 Load 13(tex) + 18: 15(fvec2) Load 17(coord) + 19: 7(fvec4) ImageSampleImplicitLod 14 18 + Store 9(v) 19 + 20: 7(fvec4) Load 9(v) + 28: 27(bvec4) FOrdEqual 20 25 + 29: 26(bool) All 28 + SelectionMerge 31 None + BranchConditional 29 30 31 + 30: Label Kill - 32: Label - 36: 8(fvec4) Load 10(v) - Store 35(gl_FragColor) 36 - Branch 6 - 6: Label + 31: Label + 35: 7(fvec4) Load 9(v) + Store 34(gl_FragColor) 35 Return FunctionEnd diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out index ebe95e00..6de71215 100755 --- a/Test/baseResults/spv.conversion.frag.out +++ b/Test/baseResults/spv.conversion.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 444 +// Id's are bound by 443 Source GLSL 130 Capability Shader @@ -14,566 +14,564 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "b" - Name 12 "u_i" - Name 19 "u_f" - Name 26 "b2" - Name 34 "b3" - Name 40 "i_i" - Name 46 "b4" - Name 54 "i_f" - Name 59 "i" - Name 69 "i2" - Name 72 "u_f2" - Name 82 "i3" - Name 85 "u_f3" - Name 95 "i4" - Name 98 "u_f4" - Name 107 "f" - Name 111 "f2" - Name 115 "f3" - Name 119 "f4" - Name 158 "i_i4" - Name 313 "gl_FragColor" - Name 406 "cv2" - Name 407 "cv5" - Name 417 "u_b" - Name 419 "u_b2" - Name 421 "u_b3" - Name 423 "u_b4" - Name 425 "u_i2" - Name 427 "u_i3" - Name 429 "u_i4" - Name 430 "i_b" - Name 431 "i_b2" - Name 432 "i_b3" - Name 433 "i_b4" - Name 435 "i_i2" - Name 437 "i_i3" - Name 439 "i_f2" - Name 441 "i_f3" - Name 443 "i_f4" - Decorate 40(i_i) Flat - Decorate 54(i_f) Smooth - Decorate 158(i_i4) Flat - Decorate 313(gl_FragColor) BuiltIn FragColor - Decorate 417(u_b) NoStaticUse - Decorate 419(u_b2) NoStaticUse - Decorate 421(u_b3) NoStaticUse - Decorate 423(u_b4) NoStaticUse - Decorate 425(u_i2) NoStaticUse - Decorate 427(u_i3) NoStaticUse - Decorate 429(u_i4) NoStaticUse - Decorate 430(i_b) NoStaticUse - Decorate 431(i_b2) NoStaticUse - Decorate 432(i_b3) NoStaticUse - Decorate 433(i_b4) NoStaticUse - Decorate 435(i_i2) Flat - Decorate 435(i_i2) NoStaticUse - Decorate 437(i_i3) Flat - Decorate 437(i_i3) NoStaticUse - Decorate 439(i_f2) Smooth - Decorate 439(i_f2) NoStaticUse - Decorate 441(i_f3) Smooth - Decorate 441(i_f3) NoStaticUse - Decorate 443(i_f4) Smooth - Decorate 443(i_f4) NoStaticUse + Name 8 "b" + Name 11 "u_i" + Name 18 "u_f" + Name 25 "b2" + Name 33 "b3" + Name 39 "i_i" + Name 45 "b4" + Name 53 "i_f" + Name 58 "i" + Name 68 "i2" + Name 71 "u_f2" + Name 81 "i3" + Name 84 "u_f3" + Name 94 "i4" + Name 97 "u_f4" + Name 106 "f" + Name 110 "f2" + Name 114 "f3" + Name 118 "f4" + Name 157 "i_i4" + Name 312 "gl_FragColor" + Name 405 "cv2" + Name 406 "cv5" + Name 416 "u_b" + Name 418 "u_b2" + Name 420 "u_b3" + Name 422 "u_b4" + Name 424 "u_i2" + Name 426 "u_i3" + Name 428 "u_i4" + Name 429 "i_b" + Name 430 "i_b2" + Name 431 "i_b3" + Name 432 "i_b4" + Name 434 "i_i2" + Name 436 "i_i3" + Name 438 "i_f2" + Name 440 "i_f3" + Name 442 "i_f4" + Decorate 39(i_i) Flat + Decorate 53(i_f) Smooth + Decorate 157(i_i4) Flat + Decorate 312(gl_FragColor) BuiltIn FragColor + Decorate 416(u_b) NoStaticUse + Decorate 418(u_b2) NoStaticUse + Decorate 420(u_b3) NoStaticUse + Decorate 422(u_b4) NoStaticUse + Decorate 424(u_i2) NoStaticUse + Decorate 426(u_i3) NoStaticUse + Decorate 428(u_i4) NoStaticUse + Decorate 429(i_b) NoStaticUse + Decorate 430(i_b2) NoStaticUse + Decorate 431(i_b3) NoStaticUse + Decorate 432(i_b4) NoStaticUse + Decorate 434(i_i2) Flat + Decorate 434(i_i2) NoStaticUse + Decorate 436(i_i3) Flat + Decorate 436(i_i3) NoStaticUse + Decorate 438(i_f2) Smooth + Decorate 438(i_f2) NoStaticUse + Decorate 440(i_f3) Smooth + Decorate 440(i_f3) NoStaticUse + Decorate 442(i_f4) Smooth + Decorate 442(i_f4) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeBool - 8: TypePointer Function 7(bool) - 10: TypeInt 32 1 - 11: TypePointer UniformConstant 10(int) - 12(u_i): 11(ptr) Variable UniformConstant - 14: TypeInt 32 0 - 15: 14(int) Constant 0 - 17: TypeFloat 32 - 18: TypePointer UniformConstant 17(float) - 19(u_f): 18(ptr) Variable UniformConstant - 21: 17(float) Constant 0 - 24: TypeVector 7(bool) 2 - 25: TypePointer Function 24(bvec2) - 32: TypeVector 7(bool) 3 - 33: TypePointer Function 32(bvec3) - 39: TypePointer Input 10(int) - 40(i_i): 39(ptr) Variable Input - 44: TypeVector 7(bool) 4 - 45: TypePointer Function 44(bvec4) - 53: TypePointer Input 17(float) - 54(i_f): 53(ptr) Variable Input - 58: TypePointer Function 10(int) - 63: 10(int) Constant 0 - 64: 10(int) Constant 1 - 67: TypeVector 10(int) 2 - 68: TypePointer Function 67(ivec2) - 70: TypeVector 17(float) 2 - 71: TypePointer UniformConstant 70(fvec2) - 72(u_f2): 71(ptr) Variable UniformConstant - 76: 67(ivec2) ConstantComposite 63 63 - 77: 67(ivec2) ConstantComposite 64 64 - 80: TypeVector 10(int) 3 - 81: TypePointer Function 80(ivec3) - 83: TypeVector 17(float) 3 - 84: TypePointer UniformConstant 83(fvec3) - 85(u_f3): 84(ptr) Variable UniformConstant - 89: 80(ivec3) ConstantComposite 63 63 63 - 90: 80(ivec3) ConstantComposite 64 64 64 - 93: TypeVector 10(int) 4 - 94: TypePointer Function 93(ivec4) - 96: TypeVector 17(float) 4 - 97: TypePointer UniformConstant 96(fvec4) - 98(u_f4): 97(ptr) Variable UniformConstant - 102: 93(ivec4) ConstantComposite 63 63 63 63 - 103: 93(ivec4) ConstantComposite 64 64 64 64 - 106: TypePointer Function 17(float) - 110: TypePointer Function 70(fvec2) - 114: TypePointer Function 83(fvec3) - 118: TypePointer Function 96(fvec4) - 125: 17(float) Constant 1065353216 - 133: 70(fvec2) ConstantComposite 21 21 - 134: 70(fvec2) ConstantComposite 125 125 - 142: 83(fvec3) ConstantComposite 21 21 21 - 143: 83(fvec3) ConstantComposite 125 125 125 - 151: 96(fvec4) ConstantComposite 21 21 21 21 - 152: 96(fvec4) ConstantComposite 125 125 125 125 - 157: TypePointer Input 93(ivec4) - 158(i_i4): 157(ptr) Variable Input - 160: TypeVector 14(int) 4 - 161: 160(ivec4) ConstantComposite 15 15 15 15 - 312: TypePointer Output 96(fvec4) -313(gl_FragColor): 312(ptr) Variable Output - 416: TypePointer UniformConstant 7(bool) - 417(u_b): 416(ptr) Variable UniformConstant - 418: TypePointer UniformConstant 24(bvec2) - 419(u_b2): 418(ptr) Variable UniformConstant - 420: TypePointer UniformConstant 32(bvec3) - 421(u_b3): 420(ptr) Variable UniformConstant - 422: TypePointer UniformConstant 44(bvec4) - 423(u_b4): 422(ptr) Variable UniformConstant - 424: TypePointer UniformConstant 67(ivec2) - 425(u_i2): 424(ptr) Variable UniformConstant - 426: TypePointer UniformConstant 80(ivec3) - 427(u_i3): 426(ptr) Variable UniformConstant - 428: TypePointer UniformConstant 93(ivec4) - 429(u_i4): 428(ptr) Variable UniformConstant - 430(i_b): 416(ptr) Variable UniformConstant - 431(i_b2): 418(ptr) Variable UniformConstant - 432(i_b3): 420(ptr) Variable UniformConstant - 433(i_b4): 422(ptr) Variable UniformConstant - 434: TypePointer Input 67(ivec2) - 435(i_i2): 434(ptr) Variable Input - 436: TypePointer Input 80(ivec3) - 437(i_i3): 436(ptr) Variable Input - 438: TypePointer Input 70(fvec2) - 439(i_f2): 438(ptr) Variable Input - 440: TypePointer Input 83(fvec3) - 441(i_f3): 440(ptr) Variable Input - 442: TypePointer Input 96(fvec4) - 443(i_f4): 442(ptr) Variable Input + 6: TypeBool + 7: TypePointer Function 6(bool) + 9: TypeInt 32 1 + 10: TypePointer UniformConstant 9(int) + 11(u_i): 10(ptr) Variable UniformConstant + 13: TypeInt 32 0 + 14: 13(int) Constant 0 + 16: TypeFloat 32 + 17: TypePointer UniformConstant 16(float) + 18(u_f): 17(ptr) Variable UniformConstant + 20: 16(float) Constant 0 + 23: TypeVector 6(bool) 2 + 24: TypePointer Function 23(bvec2) + 31: TypeVector 6(bool) 3 + 32: TypePointer Function 31(bvec3) + 38: TypePointer Input 9(int) + 39(i_i): 38(ptr) Variable Input + 43: TypeVector 6(bool) 4 + 44: TypePointer Function 43(bvec4) + 52: TypePointer Input 16(float) + 53(i_f): 52(ptr) Variable Input + 57: TypePointer Function 9(int) + 62: 9(int) Constant 0 + 63: 9(int) Constant 1 + 66: TypeVector 9(int) 2 + 67: TypePointer Function 66(ivec2) + 69: TypeVector 16(float) 2 + 70: TypePointer UniformConstant 69(fvec2) + 71(u_f2): 70(ptr) Variable UniformConstant + 75: 66(ivec2) ConstantComposite 62 62 + 76: 66(ivec2) ConstantComposite 63 63 + 79: TypeVector 9(int) 3 + 80: TypePointer Function 79(ivec3) + 82: TypeVector 16(float) 3 + 83: TypePointer UniformConstant 82(fvec3) + 84(u_f3): 83(ptr) Variable UniformConstant + 88: 79(ivec3) ConstantComposite 62 62 62 + 89: 79(ivec3) ConstantComposite 63 63 63 + 92: TypeVector 9(int) 4 + 93: TypePointer Function 92(ivec4) + 95: TypeVector 16(float) 4 + 96: TypePointer UniformConstant 95(fvec4) + 97(u_f4): 96(ptr) Variable UniformConstant + 101: 92(ivec4) ConstantComposite 62 62 62 62 + 102: 92(ivec4) ConstantComposite 63 63 63 63 + 105: TypePointer Function 16(float) + 109: TypePointer Function 69(fvec2) + 113: TypePointer Function 82(fvec3) + 117: TypePointer Function 95(fvec4) + 124: 16(float) Constant 1065353216 + 132: 69(fvec2) ConstantComposite 20 20 + 133: 69(fvec2) ConstantComposite 124 124 + 141: 82(fvec3) ConstantComposite 20 20 20 + 142: 82(fvec3) ConstantComposite 124 124 124 + 150: 95(fvec4) ConstantComposite 20 20 20 20 + 151: 95(fvec4) ConstantComposite 124 124 124 124 + 156: TypePointer Input 92(ivec4) + 157(i_i4): 156(ptr) Variable Input + 159: TypeVector 13(int) 4 + 160: 159(ivec4) ConstantComposite 14 14 14 14 + 311: TypePointer Output 95(fvec4) +312(gl_FragColor): 311(ptr) Variable Output + 415: TypePointer UniformConstant 6(bool) + 416(u_b): 415(ptr) Variable UniformConstant + 417: TypePointer UniformConstant 23(bvec2) + 418(u_b2): 417(ptr) Variable UniformConstant + 419: TypePointer UniformConstant 31(bvec3) + 420(u_b3): 419(ptr) Variable UniformConstant + 421: TypePointer UniformConstant 43(bvec4) + 422(u_b4): 421(ptr) Variable UniformConstant + 423: TypePointer UniformConstant 66(ivec2) + 424(u_i2): 423(ptr) Variable UniformConstant + 425: TypePointer UniformConstant 79(ivec3) + 426(u_i3): 425(ptr) Variable UniformConstant + 427: TypePointer UniformConstant 92(ivec4) + 428(u_i4): 427(ptr) Variable UniformConstant + 429(i_b): 415(ptr) Variable UniformConstant + 430(i_b2): 417(ptr) Variable UniformConstant + 431(i_b3): 419(ptr) Variable UniformConstant + 432(i_b4): 421(ptr) Variable UniformConstant + 433: TypePointer Input 66(ivec2) + 434(i_i2): 433(ptr) Variable Input + 435: TypePointer Input 79(ivec3) + 436(i_i3): 435(ptr) Variable Input + 437: TypePointer Input 69(fvec2) + 438(i_f2): 437(ptr) Variable Input + 439: TypePointer Input 82(fvec3) + 440(i_f3): 439(ptr) Variable Input + 441: TypePointer Input 95(fvec4) + 442(i_f4): 441(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(b): 8(ptr) Variable Function - 26(b2): 25(ptr) Variable Function - 34(b3): 33(ptr) Variable Function - 46(b4): 45(ptr) Variable Function - 59(i): 58(ptr) Variable Function - 69(i2): 68(ptr) Variable Function - 82(i3): 81(ptr) Variable Function - 95(i4): 94(ptr) Variable Function - 107(f): 106(ptr) Variable Function - 111(f2): 110(ptr) Variable Function - 115(f3): 114(ptr) Variable Function - 119(f4): 118(ptr) Variable Function - 289: 106(ptr) Variable Function - 299: 106(ptr) Variable Function - 314: 118(ptr) Variable Function - 406(cv2): 94(ptr) Variable Function - 407(cv5): 45(ptr) Variable Function - 13: 10(int) Load 12(u_i) - 16: 7(bool) INotEqual 13 15 - 20: 17(float) Load 19(u_f) - 22: 7(bool) FOrdNotEqual 20 21 - 23: 7(bool) LogicalNotEqual 16 22 - Store 9(b) 23 - 27: 10(int) Load 12(u_i) - 28: 7(bool) INotEqual 27 15 - 29: 17(float) Load 19(u_f) - 30: 7(bool) FOrdNotEqual 29 21 - 31: 24(bvec2) CompositeConstruct 28 30 - Store 26(b2) 31 - 35: 10(int) Load 12(u_i) - 36: 7(bool) INotEqual 35 15 - 37: 17(float) Load 19(u_f) - 38: 7(bool) FOrdNotEqual 37 21 - 41: 10(int) Load 40(i_i) - 42: 7(bool) INotEqual 41 15 - 43: 32(bvec3) CompositeConstruct 36 38 42 - Store 34(b3) 43 - 47: 10(int) Load 12(u_i) - 48: 7(bool) INotEqual 47 15 - 49: 17(float) Load 19(u_f) - 50: 7(bool) FOrdNotEqual 49 21 - 51: 10(int) Load 40(i_i) - 52: 7(bool) INotEqual 51 15 - 55: 17(float) Load 54(i_f) - 56: 7(bool) FOrdNotEqual 55 21 - 57: 44(bvec4) CompositeConstruct 48 50 52 56 - Store 46(b4) 57 - 60: 17(float) Load 19(u_f) - 61: 10(int) ConvertFToS 60 - 62: 7(bool) Load 9(b) - 65: 10(int) Select 62 64 63 - 66: 10(int) IAdd 61 65 - Store 59(i) 66 - 73: 70(fvec2) Load 72(u_f2) - 74: 67(ivec2) ConvertFToS 73 - 75: 24(bvec2) Load 26(b2) - 78: 67(ivec2) Select 75 77 76 - 79: 67(ivec2) IAdd 74 78 - Store 69(i2) 79 - 86: 83(fvec3) Load 85(u_f3) - 87: 80(ivec3) ConvertFToS 86 - 88: 32(bvec3) Load 34(b3) - 91: 80(ivec3) Select 88 90 89 - 92: 80(ivec3) IAdd 87 91 - Store 82(i3) 92 - 99: 96(fvec4) Load 98(u_f4) - 100: 93(ivec4) ConvertFToS 99 - 101: 44(bvec4) Load 46(b4) - 104: 93(ivec4) Select 101 103 102 - 105: 93(ivec4) IAdd 100 104 - Store 95(i4) 105 - 108: 10(int) Load 59(i) - 109: 17(float) ConvertSToF 108 - Store 107(f) 109 - 112: 67(ivec2) Load 69(i2) - 113: 70(fvec2) ConvertSToF 112 - Store 111(f2) 113 - 116: 80(ivec3) Load 82(i3) - 117: 83(fvec3) ConvertSToF 116 - Store 115(f3) 117 - 120: 93(ivec4) Load 95(i4) - 121: 96(fvec4) ConvertSToF 120 - Store 119(f4) 121 - 122: 10(int) Load 59(i) - 123: 17(float) ConvertSToF 122 - 124: 7(bool) Load 9(b) - 126: 17(float) Select 124 125 21 - 127: 17(float) FAdd 123 126 - 128: 17(float) Load 107(f) - 129: 17(float) FAdd 128 127 - Store 107(f) 129 - 130: 67(ivec2) Load 69(i2) - 131: 70(fvec2) ConvertSToF 130 - 132: 24(bvec2) Load 26(b2) - 135: 70(fvec2) Select 132 134 133 - 136: 70(fvec2) FAdd 131 135 - 137: 70(fvec2) Load 111(f2) - 138: 70(fvec2) FSub 137 136 - Store 111(f2) 138 - 139: 80(ivec3) Load 82(i3) - 140: 83(fvec3) ConvertSToF 139 - 141: 32(bvec3) Load 34(b3) - 144: 83(fvec3) Select 141 143 142 - 145: 83(fvec3) FAdd 140 144 - 146: 83(fvec3) Load 115(f3) - 147: 83(fvec3) FDiv 146 145 - Store 115(f3) 147 - 148: 93(ivec4) Load 95(i4) - 149: 96(fvec4) ConvertSToF 148 - 150: 44(bvec4) Load 46(b4) - 153: 96(fvec4) Select 150 152 151 - 154: 96(fvec4) FAdd 149 153 - 155: 96(fvec4) Load 119(f4) - 156: 96(fvec4) FAdd 155 154 - Store 119(f4) 156 - 159: 93(ivec4) Load 158(i_i4) - 162: 44(bvec4) INotEqual 159 161 - 163: 96(fvec4) Select 162 152 151 - 164: 96(fvec4) Load 119(f4) - 165: 96(fvec4) FAdd 164 163 - Store 119(f4) 165 - 166: 96(fvec4) Load 98(u_f4) - 167: 44(bvec4) FOrdNotEqual 166 151 - 168: 96(fvec4) Select 167 152 151 - 169: 96(fvec4) Load 119(f4) - 170: 96(fvec4) FAdd 169 168 - Store 119(f4) 170 - 171: 17(float) Load 107(f) - 172: 10(int) Load 59(i) - 173: 17(float) ConvertSToF 172 - 174: 17(float) FSub 171 173 - 175: 17(float) Load 107(f) - 176: 17(float) FAdd 175 174 - Store 107(f) 176 - 177: 17(float) Load 107(f) - 178: 10(int) Load 59(i) - 179: 17(float) ConvertSToF 178 - 180: 70(fvec2) CompositeConstruct 177 179 - 181: 67(ivec2) Load 69(i2) - 182: 70(fvec2) ConvertSToF 181 - 183: 70(fvec2) FAdd 180 182 - 184: 70(fvec2) Load 111(f2) - 185: 70(fvec2) FAdd 184 183 - Store 111(f2) 185 - 186: 80(ivec3) Load 82(i3) - 187: 83(fvec3) ConvertSToF 186 - 188: 17(float) Load 107(f) - 189: 10(int) Load 59(i) - 190: 17(float) ConvertSToF 189 - 191: 17(float) Load 107(f) - 192: 83(fvec3) CompositeConstruct 188 190 191 - 193: 83(fvec3) FAdd 187 192 - 194: 83(fvec3) Load 115(f3) - 195: 83(fvec3) FAdd 194 193 - Store 115(f3) 195 - 196: 7(bool) Load 9(b) - 197: 17(float) Select 196 125 21 - 198: 10(int) Load 59(i) - 199: 17(float) ConvertSToF 198 - 200: 17(float) Load 107(f) - 201: 10(int) Load 59(i) - 202: 17(float) ConvertSToF 201 - 203: 96(fvec4) CompositeConstruct 197 199 200 202 - 204: 93(ivec4) Load 95(i4) - 205: 96(fvec4) ConvertSToF 204 - 206: 96(fvec4) FAdd 203 205 - 207: 96(fvec4) Load 119(f4) - 208: 96(fvec4) FAdd 207 206 - Store 119(f4) 208 - 209: 17(float) Load 107(f) - 210: 10(int) Load 59(i) - 211: 17(float) ConvertSToF 210 - 212: 70(fvec2) CompositeConstruct 209 211 - 213: 10(int) Load 59(i) - 214: 17(float) ConvertSToF 213 - 215: 70(fvec2) VectorTimesScalar 212 214 - 216: 70(fvec2) Load 111(f2) - 217: 70(fvec2) FAdd 216 215 - Store 111(f2) 217 - 218: 17(float) Load 107(f) - 219: 10(int) Load 59(i) - 220: 17(float) ConvertSToF 219 - 221: 17(float) Load 107(f) - 222: 83(fvec3) CompositeConstruct 218 220 221 - 223: 10(int) Load 59(i) - 224: 17(float) ConvertSToF 223 - 225: 83(fvec3) CompositeConstruct 224 224 224 - 226: 83(fvec3) FAdd 222 225 - 227: 83(fvec3) Load 115(f3) - 228: 83(fvec3) FAdd 227 226 - Store 115(f3) 228 - 229: 10(int) Load 59(i) - 230: 17(float) ConvertSToF 229 - 231: 7(bool) Load 9(b) - 232: 17(float) Select 231 125 21 - 233: 10(int) Load 59(i) - 234: 17(float) ConvertSToF 233 - 235: 17(float) Load 107(f) - 236: 10(int) Load 59(i) - 237: 17(float) ConvertSToF 236 - 238: 96(fvec4) CompositeConstruct 232 234 235 237 - 239: 96(fvec4) CompositeConstruct 230 230 230 230 - 240: 96(fvec4) FSub 239 238 - 241: 96(fvec4) Load 119(f4) - 242: 96(fvec4) FAdd 241 240 - Store 119(f4) 242 - 243: 17(float) Load 107(f) - 244: 10(int) ConvertFToS 243 - 245: 10(int) Load 59(i) - 246: 67(ivec2) CompositeConstruct 244 245 - 247: 67(ivec2) Load 69(i2) - 248: 67(ivec2) IAdd 247 246 - Store 69(i2) 248 - 249: 17(float) Load 107(f) - 250: 10(int) ConvertFToS 249 - 251: 10(int) Load 59(i) - 252: 17(float) Load 107(f) - 253: 10(int) ConvertFToS 252 - 254: 80(ivec3) CompositeConstruct 250 251 253 - 255: 80(ivec3) Load 82(i3) - 256: 80(ivec3) IAdd 255 254 - Store 82(i3) 256 - 257: 7(bool) Load 9(b) - 258: 10(int) Select 257 64 63 - 259: 10(int) Load 59(i) - 260: 17(float) Load 107(f) - 261: 10(int) ConvertFToS 260 - 262: 10(int) Load 59(i) - 263: 93(ivec4) CompositeConstruct 258 259 261 262 - 264: 93(ivec4) Load 95(i4) - 265: 93(ivec4) IAdd 264 263 - Store 95(i4) 265 - 266: 17(float) Load 107(f) - 267: 10(int) Load 59(i) - 268: 17(float) ConvertSToF 267 - 269: 7(bool) FOrdLessThan 266 268 - 270: 10(int) Load 59(i) - 271: 17(float) ConvertSToF 270 - 272: 17(float) Load 107(f) - 273: 7(bool) FOrdLessThan 271 272 - 274: 7(bool) LogicalOr 269 273 - 275: 70(fvec2) Load 111(f2) - 276: 67(ivec2) Load 69(i2) - 277: 70(fvec2) ConvertSToF 276 - 278: 24(bvec2) FOrdEqual 275 277 - 279: 7(bool) All 278 - 280: 7(bool) LogicalOr 274 279 - 281: 80(ivec3) Load 82(i3) - 282: 83(fvec3) ConvertSToF 281 - 283: 83(fvec3) Load 115(f3) - 284: 32(bvec3) FOrdNotEqual 282 283 - 285: 7(bool) Any 284 - 286: 7(bool) LogicalOr 280 285 - SelectionMerge 288 None - BranchConditional 286 287 288 - 287: Label - 290: 7(bool) Load 9(b) - SelectionMerge 292 None - BranchConditional 290 291 295 - 291: Label - 293: 10(int) Load 59(i) - 294: 17(float) ConvertSToF 293 - Store 289 294 - Branch 292 - 295: Label - 296: 70(fvec2) Load 111(f2) - 297: 17(float) CompositeExtract 296 0 - Store 289 297 - Branch 292 - 292: Label - 298: 17(float) Load 289 - 300: 24(bvec2) Load 26(b2) - 301: 7(bool) CompositeExtract 300 0 - SelectionMerge 303 None - BranchConditional 301 302 306 - 302: Label - 304: 83(fvec3) Load 115(f3) - 305: 17(float) CompositeExtract 304 0 - Store 299 305 - Branch 303 - 306: Label - 307: 67(ivec2) Load 69(i2) - 308: 10(int) CompositeExtract 307 1 - 309: 17(float) ConvertSToF 308 - Store 299 309 - Branch 303 - 303: Label - 310: 17(float) Load 299 - 311: 17(float) FAdd 298 310 - Store 107(f) 311 - Branch 288 - 288: Label - 315: 7(bool) Load 9(b) - 316: 24(bvec2) Load 26(b2) - 317: 7(bool) CompositeExtract 316 0 - 318: 7(bool) LogicalOr 315 317 - 319: 24(bvec2) Load 26(b2) - 320: 7(bool) CompositeExtract 319 1 - 321: 7(bool) LogicalOr 318 320 - 322: 32(bvec3) Load 34(b3) - 323: 7(bool) CompositeExtract 322 0 - 324: 7(bool) LogicalOr 321 323 - 325: 32(bvec3) Load 34(b3) - 326: 7(bool) CompositeExtract 325 1 - 327: 7(bool) LogicalOr 324 326 - 328: 32(bvec3) Load 34(b3) - 329: 7(bool) CompositeExtract 328 2 - 330: 7(bool) LogicalOr 327 329 - 331: 44(bvec4) Load 46(b4) - 332: 7(bool) CompositeExtract 331 0 - 333: 7(bool) LogicalOr 330 332 - 334: 44(bvec4) Load 46(b4) - 335: 7(bool) CompositeExtract 334 1 - 336: 7(bool) LogicalOr 333 335 - 337: 44(bvec4) Load 46(b4) - 338: 7(bool) CompositeExtract 337 2 - 339: 7(bool) LogicalOr 336 338 - 340: 44(bvec4) Load 46(b4) - 341: 7(bool) CompositeExtract 340 3 - 342: 7(bool) LogicalOr 339 341 - SelectionMerge 344 None - BranchConditional 342 343 404 - 343: Label - 345: 10(int) Load 59(i) - 346: 67(ivec2) Load 69(i2) - 347: 10(int) CompositeExtract 346 0 - 348: 10(int) IAdd 345 347 - 349: 67(ivec2) Load 69(i2) - 350: 10(int) CompositeExtract 349 1 - 351: 10(int) IAdd 348 350 - 352: 80(ivec3) Load 82(i3) - 353: 10(int) CompositeExtract 352 0 - 354: 10(int) IAdd 351 353 - 355: 80(ivec3) Load 82(i3) - 356: 10(int) CompositeExtract 355 1 - 357: 10(int) IAdd 354 356 - 358: 80(ivec3) Load 82(i3) - 359: 10(int) CompositeExtract 358 2 - 360: 10(int) IAdd 357 359 - 361: 93(ivec4) Load 95(i4) - 362: 10(int) CompositeExtract 361 0 - 363: 10(int) IAdd 360 362 - 364: 93(ivec4) Load 95(i4) - 365: 10(int) CompositeExtract 364 1 - 366: 10(int) IAdd 363 365 - 367: 93(ivec4) Load 95(i4) - 368: 10(int) CompositeExtract 367 2 - 369: 10(int) IAdd 366 368 - 370: 93(ivec4) Load 95(i4) - 371: 10(int) CompositeExtract 370 3 - 372: 10(int) IAdd 369 371 - 373: 17(float) ConvertSToF 372 - 374: 17(float) Load 107(f) - 375: 17(float) FAdd 373 374 - 376: 70(fvec2) Load 111(f2) - 377: 17(float) CompositeExtract 376 0 - 378: 17(float) FAdd 375 377 - 379: 70(fvec2) Load 111(f2) - 380: 17(float) CompositeExtract 379 1 - 381: 17(float) FAdd 378 380 - 382: 83(fvec3) Load 115(f3) - 383: 17(float) CompositeExtract 382 0 - 384: 17(float) FAdd 381 383 - 385: 83(fvec3) Load 115(f3) - 386: 17(float) CompositeExtract 385 1 - 387: 17(float) FAdd 384 386 - 388: 83(fvec3) Load 115(f3) - 389: 17(float) CompositeExtract 388 2 - 390: 17(float) FAdd 387 389 - 391: 96(fvec4) Load 119(f4) - 392: 17(float) CompositeExtract 391 0 - 393: 17(float) FAdd 390 392 - 394: 96(fvec4) Load 119(f4) - 395: 17(float) CompositeExtract 394 1 - 396: 17(float) FAdd 393 395 - 397: 96(fvec4) Load 119(f4) - 398: 17(float) CompositeExtract 397 2 - 399: 17(float) FAdd 396 398 - 400: 96(fvec4) Load 119(f4) - 401: 17(float) CompositeExtract 400 3 - 402: 17(float) FAdd 399 401 - 403: 96(fvec4) CompositeConstruct 402 402 402 402 - Store 314 403 - Branch 344 - 404: Label - Store 314 152 - Branch 344 - 344: Label - 405: 96(fvec4) Load 314 - Store 313(gl_FragColor) 405 - Store 406(cv2) 103 - 408: 93(ivec4) Load 406(cv2) - 409: 44(bvec4) INotEqual 408 161 - Store 407(cv5) 409 - 410: 44(bvec4) Load 407(cv5) - 411: 96(fvec4) Select 410 152 151 - 412: 17(float) CompositeExtract 411 0 - 413: 96(fvec4) Load 313(gl_FragColor) - 414: 96(fvec4) CompositeConstruct 412 412 412 412 - 415: 96(fvec4) FAdd 413 414 - Store 313(gl_FragColor) 415 - Branch 6 - 6: Label + 8(b): 7(ptr) Variable Function + 25(b2): 24(ptr) Variable Function + 33(b3): 32(ptr) Variable Function + 45(b4): 44(ptr) Variable Function + 58(i): 57(ptr) Variable Function + 68(i2): 67(ptr) Variable Function + 81(i3): 80(ptr) Variable Function + 94(i4): 93(ptr) Variable Function + 106(f): 105(ptr) Variable Function + 110(f2): 109(ptr) Variable Function + 114(f3): 113(ptr) Variable Function + 118(f4): 117(ptr) Variable Function + 288: 105(ptr) Variable Function + 298: 105(ptr) Variable Function + 313: 117(ptr) Variable Function + 405(cv2): 93(ptr) Variable Function + 406(cv5): 44(ptr) Variable Function + 12: 9(int) Load 11(u_i) + 15: 6(bool) INotEqual 12 14 + 19: 16(float) Load 18(u_f) + 21: 6(bool) FOrdNotEqual 19 20 + 22: 6(bool) LogicalNotEqual 15 21 + Store 8(b) 22 + 26: 9(int) Load 11(u_i) + 27: 6(bool) INotEqual 26 14 + 28: 16(float) Load 18(u_f) + 29: 6(bool) FOrdNotEqual 28 20 + 30: 23(bvec2) CompositeConstruct 27 29 + Store 25(b2) 30 + 34: 9(int) Load 11(u_i) + 35: 6(bool) INotEqual 34 14 + 36: 16(float) Load 18(u_f) + 37: 6(bool) FOrdNotEqual 36 20 + 40: 9(int) Load 39(i_i) + 41: 6(bool) INotEqual 40 14 + 42: 31(bvec3) CompositeConstruct 35 37 41 + Store 33(b3) 42 + 46: 9(int) Load 11(u_i) + 47: 6(bool) INotEqual 46 14 + 48: 16(float) Load 18(u_f) + 49: 6(bool) FOrdNotEqual 48 20 + 50: 9(int) Load 39(i_i) + 51: 6(bool) INotEqual 50 14 + 54: 16(float) Load 53(i_f) + 55: 6(bool) FOrdNotEqual 54 20 + 56: 43(bvec4) CompositeConstruct 47 49 51 55 + Store 45(b4) 56 + 59: 16(float) Load 18(u_f) + 60: 9(int) ConvertFToS 59 + 61: 6(bool) Load 8(b) + 64: 9(int) Select 61 63 62 + 65: 9(int) IAdd 60 64 + Store 58(i) 65 + 72: 69(fvec2) Load 71(u_f2) + 73: 66(ivec2) ConvertFToS 72 + 74: 23(bvec2) Load 25(b2) + 77: 66(ivec2) Select 74 76 75 + 78: 66(ivec2) IAdd 73 77 + Store 68(i2) 78 + 85: 82(fvec3) Load 84(u_f3) + 86: 79(ivec3) ConvertFToS 85 + 87: 31(bvec3) Load 33(b3) + 90: 79(ivec3) Select 87 89 88 + 91: 79(ivec3) IAdd 86 90 + Store 81(i3) 91 + 98: 95(fvec4) Load 97(u_f4) + 99: 92(ivec4) ConvertFToS 98 + 100: 43(bvec4) Load 45(b4) + 103: 92(ivec4) Select 100 102 101 + 104: 92(ivec4) IAdd 99 103 + Store 94(i4) 104 + 107: 9(int) Load 58(i) + 108: 16(float) ConvertSToF 107 + Store 106(f) 108 + 111: 66(ivec2) Load 68(i2) + 112: 69(fvec2) ConvertSToF 111 + Store 110(f2) 112 + 115: 79(ivec3) Load 81(i3) + 116: 82(fvec3) ConvertSToF 115 + Store 114(f3) 116 + 119: 92(ivec4) Load 94(i4) + 120: 95(fvec4) ConvertSToF 119 + Store 118(f4) 120 + 121: 9(int) Load 58(i) + 122: 16(float) ConvertSToF 121 + 123: 6(bool) Load 8(b) + 125: 16(float) Select 123 124 20 + 126: 16(float) FAdd 122 125 + 127: 16(float) Load 106(f) + 128: 16(float) FAdd 127 126 + Store 106(f) 128 + 129: 66(ivec2) Load 68(i2) + 130: 69(fvec2) ConvertSToF 129 + 131: 23(bvec2) Load 25(b2) + 134: 69(fvec2) Select 131 133 132 + 135: 69(fvec2) FAdd 130 134 + 136: 69(fvec2) Load 110(f2) + 137: 69(fvec2) FSub 136 135 + Store 110(f2) 137 + 138: 79(ivec3) Load 81(i3) + 139: 82(fvec3) ConvertSToF 138 + 140: 31(bvec3) Load 33(b3) + 143: 82(fvec3) Select 140 142 141 + 144: 82(fvec3) FAdd 139 143 + 145: 82(fvec3) Load 114(f3) + 146: 82(fvec3) FDiv 145 144 + Store 114(f3) 146 + 147: 92(ivec4) Load 94(i4) + 148: 95(fvec4) ConvertSToF 147 + 149: 43(bvec4) Load 45(b4) + 152: 95(fvec4) Select 149 151 150 + 153: 95(fvec4) FAdd 148 152 + 154: 95(fvec4) Load 118(f4) + 155: 95(fvec4) FAdd 154 153 + Store 118(f4) 155 + 158: 92(ivec4) Load 157(i_i4) + 161: 43(bvec4) INotEqual 158 160 + 162: 95(fvec4) Select 161 151 150 + 163: 95(fvec4) Load 118(f4) + 164: 95(fvec4) FAdd 163 162 + Store 118(f4) 164 + 165: 95(fvec4) Load 97(u_f4) + 166: 43(bvec4) FOrdNotEqual 165 150 + 167: 95(fvec4) Select 166 151 150 + 168: 95(fvec4) Load 118(f4) + 169: 95(fvec4) FAdd 168 167 + Store 118(f4) 169 + 170: 16(float) Load 106(f) + 171: 9(int) Load 58(i) + 172: 16(float) ConvertSToF 171 + 173: 16(float) FSub 170 172 + 174: 16(float) Load 106(f) + 175: 16(float) FAdd 174 173 + Store 106(f) 175 + 176: 16(float) Load 106(f) + 177: 9(int) Load 58(i) + 178: 16(float) ConvertSToF 177 + 179: 69(fvec2) CompositeConstruct 176 178 + 180: 66(ivec2) Load 68(i2) + 181: 69(fvec2) ConvertSToF 180 + 182: 69(fvec2) FAdd 179 181 + 183: 69(fvec2) Load 110(f2) + 184: 69(fvec2) FAdd 183 182 + Store 110(f2) 184 + 185: 79(ivec3) Load 81(i3) + 186: 82(fvec3) ConvertSToF 185 + 187: 16(float) Load 106(f) + 188: 9(int) Load 58(i) + 189: 16(float) ConvertSToF 188 + 190: 16(float) Load 106(f) + 191: 82(fvec3) CompositeConstruct 187 189 190 + 192: 82(fvec3) FAdd 186 191 + 193: 82(fvec3) Load 114(f3) + 194: 82(fvec3) FAdd 193 192 + Store 114(f3) 194 + 195: 6(bool) Load 8(b) + 196: 16(float) Select 195 124 20 + 197: 9(int) Load 58(i) + 198: 16(float) ConvertSToF 197 + 199: 16(float) Load 106(f) + 200: 9(int) Load 58(i) + 201: 16(float) ConvertSToF 200 + 202: 95(fvec4) CompositeConstruct 196 198 199 201 + 203: 92(ivec4) Load 94(i4) + 204: 95(fvec4) ConvertSToF 203 + 205: 95(fvec4) FAdd 202 204 + 206: 95(fvec4) Load 118(f4) + 207: 95(fvec4) FAdd 206 205 + Store 118(f4) 207 + 208: 16(float) Load 106(f) + 209: 9(int) Load 58(i) + 210: 16(float) ConvertSToF 209 + 211: 69(fvec2) CompositeConstruct 208 210 + 212: 9(int) Load 58(i) + 213: 16(float) ConvertSToF 212 + 214: 69(fvec2) VectorTimesScalar 211 213 + 215: 69(fvec2) Load 110(f2) + 216: 69(fvec2) FAdd 215 214 + Store 110(f2) 216 + 217: 16(float) Load 106(f) + 218: 9(int) Load 58(i) + 219: 16(float) ConvertSToF 218 + 220: 16(float) Load 106(f) + 221: 82(fvec3) CompositeConstruct 217 219 220 + 222: 9(int) Load 58(i) + 223: 16(float) ConvertSToF 222 + 224: 82(fvec3) CompositeConstruct 223 223 223 + 225: 82(fvec3) FAdd 221 224 + 226: 82(fvec3) Load 114(f3) + 227: 82(fvec3) FAdd 226 225 + Store 114(f3) 227 + 228: 9(int) Load 58(i) + 229: 16(float) ConvertSToF 228 + 230: 6(bool) Load 8(b) + 231: 16(float) Select 230 124 20 + 232: 9(int) Load 58(i) + 233: 16(float) ConvertSToF 232 + 234: 16(float) Load 106(f) + 235: 9(int) Load 58(i) + 236: 16(float) ConvertSToF 235 + 237: 95(fvec4) CompositeConstruct 231 233 234 236 + 238: 95(fvec4) CompositeConstruct 229 229 229 229 + 239: 95(fvec4) FSub 238 237 + 240: 95(fvec4) Load 118(f4) + 241: 95(fvec4) FAdd 240 239 + Store 118(f4) 241 + 242: 16(float) Load 106(f) + 243: 9(int) ConvertFToS 242 + 244: 9(int) Load 58(i) + 245: 66(ivec2) CompositeConstruct 243 244 + 246: 66(ivec2) Load 68(i2) + 247: 66(ivec2) IAdd 246 245 + Store 68(i2) 247 + 248: 16(float) Load 106(f) + 249: 9(int) ConvertFToS 248 + 250: 9(int) Load 58(i) + 251: 16(float) Load 106(f) + 252: 9(int) ConvertFToS 251 + 253: 79(ivec3) CompositeConstruct 249 250 252 + 254: 79(ivec3) Load 81(i3) + 255: 79(ivec3) IAdd 254 253 + Store 81(i3) 255 + 256: 6(bool) Load 8(b) + 257: 9(int) Select 256 63 62 + 258: 9(int) Load 58(i) + 259: 16(float) Load 106(f) + 260: 9(int) ConvertFToS 259 + 261: 9(int) Load 58(i) + 262: 92(ivec4) CompositeConstruct 257 258 260 261 + 263: 92(ivec4) Load 94(i4) + 264: 92(ivec4) IAdd 263 262 + Store 94(i4) 264 + 265: 16(float) Load 106(f) + 266: 9(int) Load 58(i) + 267: 16(float) ConvertSToF 266 + 268: 6(bool) FOrdLessThan 265 267 + 269: 9(int) Load 58(i) + 270: 16(float) ConvertSToF 269 + 271: 16(float) Load 106(f) + 272: 6(bool) FOrdLessThan 270 271 + 273: 6(bool) LogicalOr 268 272 + 274: 69(fvec2) Load 110(f2) + 275: 66(ivec2) Load 68(i2) + 276: 69(fvec2) ConvertSToF 275 + 277: 23(bvec2) FOrdEqual 274 276 + 278: 6(bool) All 277 + 279: 6(bool) LogicalOr 273 278 + 280: 79(ivec3) Load 81(i3) + 281: 82(fvec3) ConvertSToF 280 + 282: 82(fvec3) Load 114(f3) + 283: 31(bvec3) FOrdNotEqual 281 282 + 284: 6(bool) Any 283 + 285: 6(bool) LogicalOr 279 284 + SelectionMerge 287 None + BranchConditional 285 286 287 + 286: Label + 289: 6(bool) Load 8(b) + SelectionMerge 291 None + BranchConditional 289 290 294 + 290: Label + 292: 9(int) Load 58(i) + 293: 16(float) ConvertSToF 292 + Store 288 293 + Branch 291 + 294: Label + 295: 69(fvec2) Load 110(f2) + 296: 16(float) CompositeExtract 295 0 + Store 288 296 + Branch 291 + 291: Label + 297: 16(float) Load 288 + 299: 23(bvec2) Load 25(b2) + 300: 6(bool) CompositeExtract 299 0 + SelectionMerge 302 None + BranchConditional 300 301 305 + 301: Label + 303: 82(fvec3) Load 114(f3) + 304: 16(float) CompositeExtract 303 0 + Store 298 304 + Branch 302 + 305: Label + 306: 66(ivec2) Load 68(i2) + 307: 9(int) CompositeExtract 306 1 + 308: 16(float) ConvertSToF 307 + Store 298 308 + Branch 302 + 302: Label + 309: 16(float) Load 298 + 310: 16(float) FAdd 297 309 + Store 106(f) 310 + Branch 287 + 287: Label + 314: 6(bool) Load 8(b) + 315: 23(bvec2) Load 25(b2) + 316: 6(bool) CompositeExtract 315 0 + 317: 6(bool) LogicalOr 314 316 + 318: 23(bvec2) Load 25(b2) + 319: 6(bool) CompositeExtract 318 1 + 320: 6(bool) LogicalOr 317 319 + 321: 31(bvec3) Load 33(b3) + 322: 6(bool) CompositeExtract 321 0 + 323: 6(bool) LogicalOr 320 322 + 324: 31(bvec3) Load 33(b3) + 325: 6(bool) CompositeExtract 324 1 + 326: 6(bool) LogicalOr 323 325 + 327: 31(bvec3) Load 33(b3) + 328: 6(bool) CompositeExtract 327 2 + 329: 6(bool) LogicalOr 326 328 + 330: 43(bvec4) Load 45(b4) + 331: 6(bool) CompositeExtract 330 0 + 332: 6(bool) LogicalOr 329 331 + 333: 43(bvec4) Load 45(b4) + 334: 6(bool) CompositeExtract 333 1 + 335: 6(bool) LogicalOr 332 334 + 336: 43(bvec4) Load 45(b4) + 337: 6(bool) CompositeExtract 336 2 + 338: 6(bool) LogicalOr 335 337 + 339: 43(bvec4) Load 45(b4) + 340: 6(bool) CompositeExtract 339 3 + 341: 6(bool) LogicalOr 338 340 + SelectionMerge 343 None + BranchConditional 341 342 403 + 342: Label + 344: 9(int) Load 58(i) + 345: 66(ivec2) Load 68(i2) + 346: 9(int) CompositeExtract 345 0 + 347: 9(int) IAdd 344 346 + 348: 66(ivec2) Load 68(i2) + 349: 9(int) CompositeExtract 348 1 + 350: 9(int) IAdd 347 349 + 351: 79(ivec3) Load 81(i3) + 352: 9(int) CompositeExtract 351 0 + 353: 9(int) IAdd 350 352 + 354: 79(ivec3) Load 81(i3) + 355: 9(int) CompositeExtract 354 1 + 356: 9(int) IAdd 353 355 + 357: 79(ivec3) Load 81(i3) + 358: 9(int) CompositeExtract 357 2 + 359: 9(int) IAdd 356 358 + 360: 92(ivec4) Load 94(i4) + 361: 9(int) CompositeExtract 360 0 + 362: 9(int) IAdd 359 361 + 363: 92(ivec4) Load 94(i4) + 364: 9(int) CompositeExtract 363 1 + 365: 9(int) IAdd 362 364 + 366: 92(ivec4) Load 94(i4) + 367: 9(int) CompositeExtract 366 2 + 368: 9(int) IAdd 365 367 + 369: 92(ivec4) Load 94(i4) + 370: 9(int) CompositeExtract 369 3 + 371: 9(int) IAdd 368 370 + 372: 16(float) ConvertSToF 371 + 373: 16(float) Load 106(f) + 374: 16(float) FAdd 372 373 + 375: 69(fvec2) Load 110(f2) + 376: 16(float) CompositeExtract 375 0 + 377: 16(float) FAdd 374 376 + 378: 69(fvec2) Load 110(f2) + 379: 16(float) CompositeExtract 378 1 + 380: 16(float) FAdd 377 379 + 381: 82(fvec3) Load 114(f3) + 382: 16(float) CompositeExtract 381 0 + 383: 16(float) FAdd 380 382 + 384: 82(fvec3) Load 114(f3) + 385: 16(float) CompositeExtract 384 1 + 386: 16(float) FAdd 383 385 + 387: 82(fvec3) Load 114(f3) + 388: 16(float) CompositeExtract 387 2 + 389: 16(float) FAdd 386 388 + 390: 95(fvec4) Load 118(f4) + 391: 16(float) CompositeExtract 390 0 + 392: 16(float) FAdd 389 391 + 393: 95(fvec4) Load 118(f4) + 394: 16(float) CompositeExtract 393 1 + 395: 16(float) FAdd 392 394 + 396: 95(fvec4) Load 118(f4) + 397: 16(float) CompositeExtract 396 2 + 398: 16(float) FAdd 395 397 + 399: 95(fvec4) Load 118(f4) + 400: 16(float) CompositeExtract 399 3 + 401: 16(float) FAdd 398 400 + 402: 95(fvec4) CompositeConstruct 401 401 401 401 + Store 313 402 + Branch 343 + 403: Label + Store 313 151 + Branch 343 + 343: Label + 404: 95(fvec4) Load 313 + Store 312(gl_FragColor) 404 + Store 405(cv2) 102 + 407: 92(ivec4) Load 405(cv2) + 408: 43(bvec4) INotEqual 407 160 + Store 406(cv5) 408 + 409: 43(bvec4) Load 406(cv5) + 410: 95(fvec4) Select 409 151 150 + 411: 16(float) CompositeExtract 410 0 + 412: 95(fvec4) Load 312(gl_FragColor) + 413: 95(fvec4) CompositeConstruct 411 411 411 411 + 414: 95(fvec4) FAdd 412 413 + Store 312(gl_FragColor) 414 Return FunctionEnd diff --git a/Test/baseResults/spv.dataOut.frag.out b/Test/baseResults/spv.dataOut.frag.out index af9854cb..ebbd60f4 100755 --- a/Test/baseResults/spv.dataOut.frag.out +++ b/Test/baseResults/spv.dataOut.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 21 +// Id's are bound by 20 Source GLSL 130 Capability Shader @@ -16,30 +16,28 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 13 "gl_FragData" - Name 17 "Color" - Decorate 13(gl_FragData) BuiltIn FragColor - Decorate 17(Color) Smooth + Name 12 "gl_FragData" + Name 16 "Color" + Decorate 12(gl_FragData) BuiltIn FragColor + Decorate 16(Color) Smooth 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypeInt 32 0 - 10: 9(int) Constant 32 - 11: TypeArray 8(fvec4) 10 - 12: TypePointer Output 11 - 13(gl_FragData): 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: 14(int) Constant 1 - 16: TypePointer Input 8(fvec4) - 17(Color): 16(ptr) Variable Input - 19: TypePointer Output 8(fvec4) + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 32 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Output 10 + 12(gl_FragData): 11(ptr) Variable Output + 13: TypeInt 32 1 + 14: 13(int) Constant 1 + 15: TypePointer Input 7(fvec4) + 16(Color): 15(ptr) Variable Input + 18: TypePointer Output 7(fvec4) 4(main): 2 Function None 3 5: Label - 18: 8(fvec4) Load 17(Color) - 20: 19(ptr) AccessChain 13(gl_FragData) 15 - Store 20 18 - Branch 6 - 6: Label + 17: 7(fvec4) Load 16(Color) + 19: 18(ptr) AccessChain 12(gl_FragData) 14 + Store 19 17 Return FunctionEnd diff --git a/Test/baseResults/spv.dataOutIndirect.frag.out b/Test/baseResults/spv.dataOutIndirect.frag.out index b103e2db..c88d21cf 100755 --- a/Test/baseResults/spv.dataOutIndirect.frag.out +++ b/Test/baseResults/spv.dataOutIndirect.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 23 +// Id's are bound by 22 Source GLSL 130 Capability Shader @@ -16,33 +16,31 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 13 "gl_FragData" - Name 16 "i" - Name 19 "Color" - Decorate 13(gl_FragData) BuiltIn FragColor - Decorate 19(Color) Smooth + Name 12 "gl_FragData" + Name 15 "i" + Name 18 "Color" + Decorate 12(gl_FragData) BuiltIn FragColor + Decorate 18(Color) Smooth 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypeInt 32 0 - 10: 9(int) Constant 32 - 11: TypeArray 8(fvec4) 10 - 12: TypePointer Output 11 - 13(gl_FragData): 12(ptr) Variable Output - 14: TypeInt 32 1 - 15: TypePointer UniformConstant 14(int) - 16(i): 15(ptr) Variable UniformConstant - 18: TypePointer Input 8(fvec4) - 19(Color): 18(ptr) Variable Input - 21: TypePointer Output 8(fvec4) + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 32 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Output 10 + 12(gl_FragData): 11(ptr) Variable Output + 13: TypeInt 32 1 + 14: TypePointer UniformConstant 13(int) + 15(i): 14(ptr) Variable UniformConstant + 17: TypePointer Input 7(fvec4) + 18(Color): 17(ptr) Variable Input + 20: TypePointer Output 7(fvec4) 4(main): 2 Function None 3 5: Label - 17: 14(int) Load 16(i) - 20: 8(fvec4) Load 19(Color) - 22: 21(ptr) AccessChain 13(gl_FragData) 17 - Store 22 20 - Branch 6 - 6: Label + 16: 13(int) Load 15(i) + 19: 7(fvec4) Load 18(Color) + 21: 20(ptr) AccessChain 12(gl_FragData) 16 + Store 21 19 Return FunctionEnd diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out index bcf68be5..705f7f4b 100755 --- a/Test/baseResults/spv.dataOutIndirect.vert.out +++ b/Test/baseResults/spv.dataOutIndirect.vert.out @@ -8,7 +8,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 39 +// Id's are bound by 38 Source GLSL 130 Capability Shader @@ -16,60 +16,58 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "i" - Name 24 "colorOut" - Name 27 "color" - Name 33 "gl_Position" - Name 38 "gl_VertexID" - Decorate 24(colorOut) Smooth - Decorate 33(gl_Position) BuiltIn Position - Decorate 38(gl_VertexID) BuiltIn VertexId - Decorate 38(gl_VertexID) NoStaticUse + Name 8 "i" + Name 23 "colorOut" + Name 26 "color" + Name 32 "gl_Position" + Name 37 "gl_VertexID" + Decorate 23(colorOut) Smooth + Decorate 32(gl_Position) BuiltIn Position + Decorate 37(gl_VertexID) BuiltIn VertexId + Decorate 37(gl_VertexID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 1 - 15: 7(int) Constant 5 - 16: TypeBool - 18: TypeFloat 32 - 19: TypeVector 18(float) 4 - 20: TypeInt 32 0 - 21: 20(int) Constant 6 - 22: TypeArray 19(fvec4) 21 - 23: TypePointer Output 22 - 24(colorOut): 23(ptr) Variable Output - 26: TypePointer Input 19(fvec4) - 27(color): 26(ptr) Variable Input - 29: TypePointer Output 19(fvec4) - 33(gl_Position): 29(ptr) Variable Output - 34: 7(int) Constant 2 - 37: TypePointer Input 7(int) - 38(gl_VertexID): 37(ptr) Variable Input + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 1 + 14: 6(int) Constant 5 + 15: TypeBool + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypeInt 32 0 + 20: 19(int) Constant 6 + 21: TypeArray 18(fvec4) 20 + 22: TypePointer Output 21 + 23(colorOut): 22(ptr) Variable Output + 25: TypePointer Input 18(fvec4) + 26(color): 25(ptr) Variable Input + 28: TypePointer Output 18(fvec4) + 32(gl_Position): 28(ptr) Variable Output + 33: 6(int) Constant 2 + 36: TypePointer Input 6(int) + 37(gl_VertexID): 36(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(i): 8(ptr) Variable Function - Store 9(i) 10 - Branch 11 + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + 13: 6(int) Load 8(i) + 16: 15(bool) SLessThan 13 14 + LoopMerge 11 None + BranchConditional 16 12 11 + 12: Label + 24: 6(int) Load 8(i) + 27: 18(fvec4) Load 26(color) + 29: 28(ptr) AccessChain 23(colorOut) 24 + Store 29 27 + 30: 6(int) Load 8(i) + 31: 6(int) IAdd 30 9 + Store 8(i) 31 + Branch 10 11: Label - 14: 7(int) Load 9(i) - 17: 16(bool) SLessThan 14 15 - LoopMerge 12 None - BranchConditional 17 13 12 - 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 - 35: 29(ptr) AccessChain 24(colorOut) 34 - 36: 19(fvec4) Load 35 - Store 33(gl_Position) 36 - Branch 6 - 6: Label + 34: 28(ptr) AccessChain 23(colorOut) 33 + 35: 18(fvec4) Load 34 + Store 32(gl_Position) 35 Return FunctionEnd diff --git a/Test/baseResults/spv.depthOut.frag.out b/Test/baseResults/spv.depthOut.frag.out index 319d79b3..426b106f 100755 --- a/Test/baseResults/spv.depthOut.frag.out +++ b/Test/baseResults/spv.depthOut.frag.out @@ -8,7 +8,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 19 +// Id's are bound by 18 Source GLSL 130 Capability Shader @@ -17,33 +17,31 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "gl_FragDepth" - Name 11 "Depth" - Name 15 "gl_FragColor" - Name 17 "Color" - Decorate 9(gl_FragDepth) BuiltIn FragDepth - Decorate 11(Depth) Smooth - Decorate 15(gl_FragColor) BuiltIn FragColor - Decorate 17(Color) Smooth + Name 8 "gl_FragDepth" + Name 10 "Depth" + Name 14 "gl_FragColor" + Name 16 "Color" + Decorate 8(gl_FragDepth) BuiltIn FragDepth + Decorate 10(Depth) Smooth + Decorate 14(gl_FragColor) BuiltIn FragColor + Decorate 16(Color) Smooth 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypePointer Output 7(float) - 9(gl_FragDepth): 8(ptr) Variable Output - 10: TypePointer Input 7(float) - 11(Depth): 10(ptr) Variable Input - 13: TypeVector 7(float) 4 - 14: TypePointer Output 13(fvec4) -15(gl_FragColor): 14(ptr) Variable Output - 16: TypePointer Input 13(fvec4) - 17(Color): 16(ptr) Variable Input + 6: TypeFloat 32 + 7: TypePointer Output 6(float) + 8(gl_FragDepth): 7(ptr) Variable Output + 9: TypePointer Input 6(float) + 10(Depth): 9(ptr) Variable Input + 12: TypeVector 6(float) 4 + 13: TypePointer Output 12(fvec4) +14(gl_FragColor): 13(ptr) Variable Output + 15: TypePointer Input 12(fvec4) + 16(Color): 15(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 12: 7(float) Load 11(Depth) - Store 9(gl_FragDepth) 12 - 18: 13(fvec4) Load 17(Color) - Store 15(gl_FragColor) 18 - Branch 6 - 6: Label + 11: 6(float) Load 10(Depth) + Store 8(gl_FragDepth) 11 + 17: 12(fvec4) Load 16(Color) + Store 14(gl_FragColor) 17 Return FunctionEnd diff --git a/Test/baseResults/spv.discard-dce.frag.out b/Test/baseResults/spv.discard-dce.frag.out index ef1bf46a..087fe693 100755 --- a/Test/baseResults/spv.discard-dce.frag.out +++ b/Test/baseResults/spv.discard-dce.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 81 +// Id's are bound by 80 Source GLSL 110 Capability Shader @@ -14,117 +14,115 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "white" - Name 13 "black" - Name 16 "color" - Name 19 "x" - Name 22 "tex_coord" - Name 28 "y" - Name 33 "radius" - Name 56 "gl_FragColor" - Decorate 22(tex_coord) Smooth - Decorate 56(gl_FragColor) BuiltIn FragColor + Name 9 "white" + Name 12 "black" + Name 15 "color" + Name 18 "x" + Name 21 "tex_coord" + Name 27 "y" + Name 32 "radius" + Name 55 "gl_FragColor" + Decorate 21(tex_coord) Smooth + Decorate 55(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: 7(float) Constant 1065353216 - 12: 8(fvec4) ConstantComposite 11 11 11 11 - 14: 7(float) Constant 1045220557 - 15: 8(fvec4) ConstantComposite 14 14 14 14 - 18: TypePointer Function 7(float) - 20: TypeVector 7(float) 2 - 21: TypePointer Input 20(fvec2) - 22(tex_coord): 21(ptr) Variable Input - 25: 7(float) Constant 1073741824 - 43: TypeBool - 48: 7(float) Constant 1066192077 - 55: TypePointer Output 8(fvec4) -56(gl_FragColor): 55(ptr) Variable Output - 59: 7(float) Constant 1067030938 - 68: 7(float) Constant 1061158912 - 73: 7(float) Constant 1098907648 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 13: 6(float) Constant 1045220557 + 14: 7(fvec4) ConstantComposite 13 13 13 13 + 17: TypePointer Function 6(float) + 19: TypeVector 6(float) 2 + 20: TypePointer Input 19(fvec2) + 21(tex_coord): 20(ptr) Variable Input + 24: 6(float) Constant 1073741824 + 42: TypeBool + 47: 6(float) Constant 1066192077 + 54: TypePointer Output 7(fvec4) +55(gl_FragColor): 54(ptr) Variable Output + 58: 6(float) Constant 1067030938 + 67: 6(float) Constant 1061158912 + 72: 6(float) Constant 1098907648 4(main): 2 Function None 3 5: Label - 10(white): 9(ptr) Variable Function - 13(black): 9(ptr) Variable Function - 16(color): 9(ptr) Variable Function - 19(x): 18(ptr) Variable Function - 28(y): 18(ptr) Variable Function - 33(radius): 18(ptr) Variable Function - Store 10(white) 12 - Store 13(black) 15 - 17: 8(fvec4) Load 10(white) - Store 16(color) 17 - 23: 20(fvec2) Load 22(tex_coord) - 24: 7(float) CompositeExtract 23 0 - 26: 7(float) FMul 24 25 - 27: 7(float) FSub 26 11 - Store 19(x) 27 - 29: 20(fvec2) Load 22(tex_coord) - 30: 7(float) CompositeExtract 29 1 - 31: 7(float) FMul 30 25 - 32: 7(float) FSub 31 11 - Store 28(y) 32 - 34: 7(float) Load 19(x) - 35: 7(float) Load 19(x) - 36: 7(float) FMul 34 35 - 37: 7(float) Load 28(y) - 38: 7(float) Load 28(y) - 39: 7(float) FMul 37 38 - 40: 7(float) FAdd 36 39 - 41: 7(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 40 - Store 33(radius) 41 - 42: 7(float) Load 33(radius) - 44: 43(bool) FOrdGreaterThan 42 11 - SelectionMerge 46 None - BranchConditional 44 45 46 - 45: Label - 47: 7(float) Load 33(radius) - 49: 43(bool) FOrdGreaterThan 47 48 - SelectionMerge 51 None - BranchConditional 49 50 51 - 50: Label - 52: 8(fvec4) Load 16(color) - 53: 8(fvec4) CompositeConstruct 11 11 11 11 - 54: 8(fvec4) FAdd 52 53 - Store 16(color) 54 - Branch 51 - 51: Label - 57: 8(fvec4) Load 16(color) - Store 56(gl_FragColor) 57 - 58: 7(float) Load 33(radius) - 60: 43(bool) FOrdGreaterThan 58 59 - SelectionMerge 62 None - BranchConditional 60 61 62 - 61: Label - 63: 8(fvec4) Load 16(color) - 64: 8(fvec4) CompositeConstruct 11 11 11 11 - 65: 8(fvec4) FAdd 63 64 - Store 16(color) 65 - Branch 62 - 62: Label + 9(white): 8(ptr) Variable Function + 12(black): 8(ptr) Variable Function + 15(color): 8(ptr) Variable Function + 18(x): 17(ptr) Variable Function + 27(y): 17(ptr) Variable Function + 32(radius): 17(ptr) Variable Function + Store 9(white) 11 + Store 12(black) 14 + 16: 7(fvec4) Load 9(white) + Store 15(color) 16 + 22: 19(fvec2) Load 21(tex_coord) + 23: 6(float) CompositeExtract 22 0 + 25: 6(float) FMul 23 24 + 26: 6(float) FSub 25 10 + Store 18(x) 26 + 28: 19(fvec2) Load 21(tex_coord) + 29: 6(float) CompositeExtract 28 1 + 30: 6(float) FMul 29 24 + 31: 6(float) FSub 30 10 + Store 27(y) 31 + 33: 6(float) Load 18(x) + 34: 6(float) Load 18(x) + 35: 6(float) FMul 33 34 + 36: 6(float) Load 27(y) + 37: 6(float) Load 27(y) + 38: 6(float) FMul 36 37 + 39: 6(float) FAdd 35 38 + 40: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 39 + Store 32(radius) 40 + 41: 6(float) Load 32(radius) + 43: 42(bool) FOrdGreaterThan 41 10 + SelectionMerge 45 None + BranchConditional 43 44 45 + 44: Label + 46: 6(float) Load 32(radius) + 48: 42(bool) FOrdGreaterThan 46 47 + SelectionMerge 50 None + BranchConditional 48 49 50 + 49: Label + 51: 7(fvec4) Load 15(color) + 52: 7(fvec4) CompositeConstruct 10 10 10 10 + 53: 7(fvec4) FAdd 51 52 + Store 15(color) 53 + Branch 50 + 50: Label + 56: 7(fvec4) Load 15(color) + Store 55(gl_FragColor) 56 + 57: 6(float) Load 32(radius) + 59: 42(bool) FOrdGreaterThan 57 58 + SelectionMerge 61 None + BranchConditional 59 60 61 + 60: Label + 62: 7(fvec4) Load 15(color) + 63: 7(fvec4) CompositeConstruct 10 10 10 10 + 64: 7(fvec4) FAdd 62 63 + Store 15(color) 64 + Branch 61 + 61: Label Kill - 46: Label - 67: 7(float) Load 33(radius) - 69: 43(bool) FOrdGreaterThanEqual 67 68 - SelectionMerge 71 None - BranchConditional 69 70 71 - 70: Label - 72: 7(float) Load 33(radius) - 74: 7(float) ExtInst 1(GLSL.std.450) 26(Pow) 72 73 - 75: 7(float) FDiv 74 25 - 76: 7(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75 - 77: 8(fvec4) Load 16(color) - 78: 8(fvec4) CompositeConstruct 76 76 76 76 - 79: 8(fvec4) FSub 77 78 - Store 16(color) 79 - Branch 71 - 71: Label - 80: 8(fvec4) Load 16(color) - Store 56(gl_FragColor) 80 - Branch 6 - 6: Label + 45: Label + 66: 6(float) Load 32(radius) + 68: 42(bool) FOrdGreaterThanEqual 66 67 + SelectionMerge 70 None + BranchConditional 68 69 70 + 69: Label + 71: 6(float) Load 32(radius) + 73: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 71 72 + 74: 6(float) FDiv 73 24 + 75: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 74 + 76: 7(fvec4) Load 15(color) + 77: 7(fvec4) CompositeConstruct 75 75 75 75 + 78: 7(fvec4) FSub 76 77 + Store 15(color) 78 + Branch 70 + 70: Label + 79: 7(fvec4) Load 15(color) + Store 55(gl_FragColor) 79 Return FunctionEnd diff --git a/Test/baseResults/spv.do-simple.vert.out b/Test/baseResults/spv.do-simple.vert.out index 4ba5330a..be111143 100755 --- a/Test/baseResults/spv.do-simple.vert.out +++ b/Test/baseResults/spv.do-simple.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 30 +// Id's are bound by 29 Source ESSL 300 Capability Shader @@ -13,52 +13,50 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "i" - Name 28 "gl_VertexID" - Name 29 "gl_InstanceID" - Decorate 28(gl_VertexID) BuiltIn VertexId - Decorate 28(gl_VertexID) NoStaticUse - Decorate 29(gl_InstanceID) BuiltIn InstanceId - Decorate 29(gl_InstanceID) NoStaticUse + Name 8 "i" + Name 27 "gl_VertexID" + Name 28 "gl_InstanceID" + Decorate 27(gl_VertexID) BuiltIn VertexId + Decorate 27(gl_VertexID) NoStaticUse + Decorate 28(gl_InstanceID) BuiltIn InstanceId + Decorate 28(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 0 - 15: TypeBool - 16: 15(bool) ConstantTrue - 20: 7(int) Constant 10 - 24: 7(int) Constant 1 - 26: 15(bool) ConstantFalse - 27: TypePointer Input 7(int) - 28(gl_VertexID): 27(ptr) Variable Input -29(gl_InstanceID): 27(ptr) Variable Input + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 14: TypeBool + 15: 14(bool) ConstantTrue + 19: 6(int) Constant 10 + 23: 6(int) Constant 1 + 25: 14(bool) ConstantFalse + 26: TypePointer Input 6(int) + 27(gl_VertexID): 26(ptr) Variable Input +28(gl_InstanceID): 26(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(i): 8(ptr) Variable Function - Store 9(i) 10 - Branch 11 - 11: Label - 14: 15(bool) Phi 16 5 26 13 - LoopMerge 12 None - Branch 17 - 17: Label - SelectionMerge 13 None - BranchConditional 14 13 18 - 18: Label - 19: 7(int) Load 9(i) - 21: 15(bool) SLessThan 19 20 - SelectionMerge 22 None - 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 + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + 13: 14(bool) Phi 15 5 25 12 + LoopMerge 11 None + Branch 16 + 16: Label + SelectionMerge 12 None + BranchConditional 13 12 17 + 17: Label + 18: 6(int) Load 8(i) + 20: 14(bool) SLessThan 18 19 + SelectionMerge 21 None + BranchConditional 20 21 11 + 21: Label + Branch 12 12: Label - Branch 6 - 6: Label + 22: 6(int) Load 8(i) + 24: 6(int) IAdd 22 23 + Store 8(i) 24 + Branch 10 + 11: Label Return FunctionEnd diff --git a/Test/baseResults/spv.do-while-continue-break.vert.out b/Test/baseResults/spv.do-while-continue-break.vert.out index e2302332..5687acdf 100755 --- a/Test/baseResults/spv.do-while-continue-break.vert.out +++ b/Test/baseResults/spv.do-while-continue-break.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 52 +// Id's are bound by 51 Source ESSL 300 Capability Shader @@ -13,96 +13,94 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "i" - Name 25 "A" - Name 31 "B" - Name 34 "C" - Name 40 "D" - Name 43 "E" - Name 45 "F" - Name 47 "G" - Name 50 "gl_VertexID" - Name 51 "gl_InstanceID" - Decorate 50(gl_VertexID) BuiltIn VertexId - Decorate 50(gl_VertexID) NoStaticUse - Decorate 51(gl_InstanceID) BuiltIn InstanceId - Decorate 51(gl_InstanceID) NoStaticUse + Name 8 "i" + Name 24 "A" + Name 30 "B" + Name 33 "C" + Name 39 "D" + Name 42 "E" + Name 44 "F" + Name 46 "G" + Name 49 "gl_VertexID" + Name 50 "gl_InstanceID" + Decorate 49(gl_VertexID) BuiltIn VertexId + Decorate 49(gl_VertexID) NoStaticUse + Decorate 50(gl_InstanceID) BuiltIn InstanceId + Decorate 50(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 0 - 15: TypeBool - 16: 15(bool) ConstantTrue - 20: 7(int) Constant 1 - 22: 7(int) Constant 19 - 27: 7(int) Constant 2 - 32: 15(bool) ConstantFalse - 36: 7(int) Constant 5 - 41: 7(int) Constant 3 - 44: 7(int) Constant 42 - 46: 7(int) Constant 99 - 48: 7(int) Constant 12 - 49: TypePointer Input 7(int) - 50(gl_VertexID): 49(ptr) Variable Input -51(gl_InstanceID): 49(ptr) Variable Input + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 14: TypeBool + 15: 14(bool) ConstantTrue + 19: 6(int) Constant 1 + 21: 6(int) Constant 19 + 26: 6(int) Constant 2 + 31: 14(bool) ConstantFalse + 35: 6(int) Constant 5 + 40: 6(int) Constant 3 + 43: 6(int) Constant 42 + 45: 6(int) Constant 99 + 47: 6(int) Constant 12 + 48: TypePointer Input 6(int) + 49(gl_VertexID): 48(ptr) Variable Input +50(gl_InstanceID): 48(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(i): 8(ptr) Variable Function - 25(A): 8(ptr) Variable Function - 31(B): 8(ptr) Variable Function - 34(C): 8(ptr) Variable Function - 40(D): 8(ptr) Variable Function - 43(E): 8(ptr) Variable Function - 45(F): 8(ptr) Variable Function - 47(G): 8(ptr) Variable Function - Store 9(i) 10 - Branch 11 - 11: Label - 14: 15(bool) Phi 16 5 32 29 32 39 - LoopMerge 12 None - Branch 17 - 17: Label - SelectionMerge 13 None - BranchConditional 14 13 18 - 18: Label - 19: 7(int) Load 9(i) - 21: 7(int) IAdd 19 20 - Store 9(i) 21 - 23: 15(bool) SLessThan 21 22 - SelectionMerge 24 None - BranchConditional 23 24 12 - 24: Label - Branch 13 - 13: Label - Store 25(A) 10 - 26: 7(int) Load 9(i) - 28: 15(bool) IEqual 26 27 - SelectionMerge 30 None - BranchConditional 28 29 30 - 29: Label - Store 31(B) 20 - Branch 11 - 33: Label - Store 34(C) 27 - Branch 30 - 30: Label - 35: 7(int) Load 9(i) - 37: 15(bool) IEqual 35 36 - SelectionMerge 39 None - BranchConditional 37 38 39 - 38: Label - Store 40(D) 41 + 8(i): 7(ptr) Variable Function + 24(A): 7(ptr) Variable Function + 30(B): 7(ptr) Variable Function + 33(C): 7(ptr) Variable Function + 39(D): 7(ptr) Variable Function + 42(E): 7(ptr) Variable Function + 44(F): 7(ptr) Variable Function + 46(G): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + 13: 14(bool) Phi 15 5 31 28 31 38 + LoopMerge 11 None + Branch 16 + 16: Label + SelectionMerge 12 None + BranchConditional 13 12 17 + 17: Label + 18: 6(int) Load 8(i) + 20: 6(int) IAdd 18 19 + Store 8(i) 20 + 22: 14(bool) SLessThan 20 21 + SelectionMerge 23 None + BranchConditional 22 23 11 + 23: Label Branch 12 - 42: Label - Store 43(E) 44 - Branch 39 - 39: Label - Store 45(F) 46 - Branch 11 12: Label - Store 47(G) 48 - Branch 6 - 6: Label + Store 24(A) 9 + 25: 6(int) Load 8(i) + 27: 14(bool) IEqual 25 26 + SelectionMerge 29 None + BranchConditional 27 28 29 + 28: Label + Store 30(B) 19 + Branch 10 + 32: Label + Store 33(C) 26 + Branch 29 + 29: Label + 34: 6(int) Load 8(i) + 36: 14(bool) IEqual 34 35 + SelectionMerge 38 None + BranchConditional 36 37 38 + 37: Label + Store 39(D) 40 + Branch 11 + 41: Label + Store 42(E) 43 + Branch 38 + 38: Label + Store 44(F) 45 + Branch 10 + 11: Label + Store 46(G) 47 Return FunctionEnd diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out index 4034137d..1a204b02 100755 --- a/Test/baseResults/spv.doWhileLoop.frag.out +++ b/Test/baseResults/spv.doWhileLoop.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 38 +// Id's are bound by 37 Source GLSL 110 Capability Shader @@ -14,61 +14,59 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "color" - Name 12 "BaseColor" - Name 25 "d" - Name 30 "bigColor" - Name 36 "gl_FragColor" - Decorate 12(BaseColor) Smooth - Decorate 36(gl_FragColor) BuiltIn FragColor + Name 9 "color" + Name 11 "BaseColor" + Name 24 "d" + Name 29 "bigColor" + Name 35 "gl_FragColor" + Decorate 11(BaseColor) Smooth + Decorate 35(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypePointer Input 8(fvec4) - 12(BaseColor): 11(ptr) Variable Input - 18: TypeBool - 19: 18(bool) ConstantTrue - 24: TypePointer UniformConstant 7(float) - 25(d): 24(ptr) Variable UniformConstant - 29: TypePointer UniformConstant 8(fvec4) - 30(bigColor): 29(ptr) Variable UniformConstant - 34: 18(bool) ConstantFalse - 35: TypePointer Output 8(fvec4) -36(gl_FragColor): 35(ptr) Variable Output + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 17: TypeBool + 18: 17(bool) ConstantTrue + 23: TypePointer UniformConstant 6(float) + 24(d): 23(ptr) Variable UniformConstant + 28: TypePointer UniformConstant 7(fvec4) + 29(bigColor): 28(ptr) Variable UniformConstant + 33: 17(bool) ConstantFalse + 34: TypePointer Output 7(fvec4) +35(gl_FragColor): 34(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 10(color): 9(ptr) Variable Function - 13: 8(fvec4) Load 12(BaseColor) - Store 10(color) 13 - Branch 14 - 14: Label - 17: 18(bool) Phi 19 5 34 16 - LoopMerge 15 None - Branch 20 - 20: Label - SelectionMerge 16 None - BranchConditional 17 16 21 - 21: Label - 22: 8(fvec4) Load 10(color) - 23: 7(float) CompositeExtract 22 0 - 26: 7(float) Load 25(d) - 27: 18(bool) FOrdLessThan 23 26 - SelectionMerge 28 None - 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 + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + 16: 17(bool) Phi 18 5 33 15 + LoopMerge 14 None + Branch 19 + 19: Label + SelectionMerge 15 None + BranchConditional 16 15 20 + 20: Label + 21: 7(fvec4) Load 9(color) + 22: 6(float) CompositeExtract 21 0 + 25: 6(float) Load 24(d) + 26: 17(bool) FOrdLessThan 22 25 + SelectionMerge 27 None + BranchConditional 26 27 14 + 27: Label + Branch 15 15: Label - 37: 8(fvec4) Load 10(color) - Store 36(gl_FragColor) 37 - Branch 6 - 6: Label + 30: 7(fvec4) Load 29(bigColor) + 31: 7(fvec4) Load 9(color) + 32: 7(fvec4) FAdd 31 30 + Store 9(color) 32 + Branch 13 + 14: Label + 36: 7(fvec4) Load 9(color) + Store 35(gl_FragColor) 36 Return FunctionEnd diff --git a/Test/baseResults/spv.double.comp.out b/Test/baseResults/spv.double.comp.out index d77bc0c0..d3bf5c4f 100755 --- a/Test/baseResults/spv.double.comp.out +++ b/Test/baseResults/spv.double.comp.out @@ -7,7 +7,7 @@ Linked compute stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 63 +// Id's are bound by 62 Source GLSL 430 Capability Shader @@ -15,95 +15,93 @@ Linked compute stage: MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" Name 4 "main" - Name 9 "bufName" - MemberName 9(bufName) 0 "f" - MemberName 9(bufName) 1 "d" - Name 11 "bufInst" - Name 23 "storePos" - Name 27 "gl_GlobalInvocationID" - Name 33 "localCoef" - Name 34 "gl_LocalInvocationID" - Name 50 "aa" - Name 55 "globalCoef" - Name 59 "roll" - Name 62 "destTex" - Decorate 9(bufName) GLSLShared - Decorate 9(bufName) BufferBlock - Decorate 27(gl_GlobalInvocationID) BuiltIn GlobalInvocationId - Decorate 34(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 14 NoStaticUse - Decorate 57 NoStaticUse - Decorate 14 NoStaticUse - Decorate 14 NoStaticUse - Decorate 59(roll) NoStaticUse - Decorate 62(destTex) NoStaticUse + Name 8 "bufName" + MemberName 8(bufName) 0 "f" + MemberName 8(bufName) 1 "d" + Name 10 "bufInst" + Name 22 "storePos" + Name 26 "gl_GlobalInvocationID" + Name 32 "localCoef" + Name 33 "gl_LocalInvocationID" + Name 49 "aa" + Name 54 "globalCoef" + Name 58 "roll" + Name 61 "destTex" + Decorate 8(bufName) GLSLShared + Decorate 8(bufName) BufferBlock + Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId + Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 13 NoStaticUse + Decorate 56 NoStaticUse + Decorate 13 NoStaticUse + Decorate 13 NoStaticUse + Decorate 58(roll) NoStaticUse + Decorate 61(destTex) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeFloat 64 - 9(bufName): TypeStruct 7(float) 8(float) - 10: TypePointer Uniform 9(bufName) - 11(bufInst): 10(ptr) Variable Uniform - 12: TypeInt 32 1 - 13: 12(int) Constant 1 - 14: 8(float) Constant 1413754136 1074340347 - 15: TypePointer Uniform 8(float) - 17: 12(int) Constant 0 - 18: 7(float) Constant 1095307129 - 19: TypePointer Uniform 7(float) - 21: TypeVector 12(int) 2 - 22: TypePointer Function 21(ivec2) - 24: TypeInt 32 0 - 25: TypeVector 24(int) 3 - 26: TypePointer Input 25(ivec3) -27(gl_GlobalInvocationID): 26(ptr) Variable Input - 28: TypeVector 24(int) 2 - 32: TypePointer Function 8(float) -34(gl_LocalInvocationID): 26(ptr) Variable Input - 38: 12(int) Constant 8 - 41: TypeVector 7(float) 2 - 43: 7(float) Constant 1090519040 - 48: TypeVector 8(float) 4 - 49: TypePointer Function 48(fvec4) - 51: 8(float) Constant 2576980378 1071225241 - 52: 8(float) Constant 2576980378 1070176665 - 53: 8(float) Constant 858993459 1070805811 - 54: 48(fvec4) ConstantComposite 51 52 53 51 - 56: 8(float) Constant 0 1072693248 - 57: 8(float) Constant 3229815407 1074340298 - 58: TypePointer UniformConstant 8(float) - 59(roll): 58(ptr) Variable UniformConstant - 60: TypeImage 7(float) 2D nonsampled format:Unknown - 61: TypePointer UniformConstant 60 - 62(destTex): 61(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeFloat 64 + 8(bufName): TypeStruct 6(float) 7(float) + 9: TypePointer Uniform 8(bufName) + 10(bufInst): 9(ptr) Variable Uniform + 11: TypeInt 32 1 + 12: 11(int) Constant 1 + 13: 7(float) Constant 1413754136 1074340347 + 14: TypePointer Uniform 7(float) + 16: 11(int) Constant 0 + 17: 6(float) Constant 1095307129 + 18: TypePointer Uniform 6(float) + 20: TypeVector 11(int) 2 + 21: TypePointer Function 20(ivec2) + 23: TypeInt 32 0 + 24: TypeVector 23(int) 3 + 25: TypePointer Input 24(ivec3) +26(gl_GlobalInvocationID): 25(ptr) Variable Input + 27: TypeVector 23(int) 2 + 31: TypePointer Function 7(float) +33(gl_LocalInvocationID): 25(ptr) Variable Input + 37: 11(int) Constant 8 + 40: TypeVector 6(float) 2 + 42: 6(float) Constant 1090519040 + 47: TypeVector 7(float) 4 + 48: TypePointer Function 47(fvec4) + 50: 7(float) Constant 2576980378 1071225241 + 51: 7(float) Constant 2576980378 1070176665 + 52: 7(float) Constant 858993459 1070805811 + 53: 47(fvec4) ConstantComposite 50 51 52 50 + 55: 7(float) Constant 0 1072693248 + 56: 7(float) Constant 3229815407 1074340298 + 57: TypePointer UniformConstant 7(float) + 58(roll): 57(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D nonsampled format:Unknown + 60: TypePointer UniformConstant 59 + 61(destTex): 60(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 23(storePos): 22(ptr) Variable Function - 33(localCoef): 32(ptr) Variable Function - 50(aa): 49(ptr) Variable Function - 55(globalCoef): 32(ptr) Variable Function - 16: 15(ptr) AccessChain 11(bufInst) 13 - Store 16 14 - 20: 19(ptr) AccessChain 11(bufInst) 17 - Store 20 18 - 29: 25(ivec3) Load 27(gl_GlobalInvocationID) - 30: 28(ivec2) VectorShuffle 29 29 0 1 - 31: 21(ivec2) Bitcast 30 - Store 23(storePos) 31 - 35: 25(ivec3) Load 34(gl_LocalInvocationID) - 36: 28(ivec2) VectorShuffle 35 35 0 1 - 37: 21(ivec2) Bitcast 36 - 39: 21(ivec2) CompositeConstruct 38 38 - 40: 21(ivec2) ISub 37 39 - 42: 41(fvec2) ConvertSToF 40 - 44: 41(fvec2) CompositeConstruct 43 43 - 45: 41(fvec2) FDiv 42 44 - 46: 7(float) ExtInst 1(GLSL.std.450) 65(Length) 45 - 47: 8(float) FConvert 46 - Store 33(localCoef) 47 - Store 50(aa) 54 - Store 55(globalCoef) 56 - Branch 6 - 6: Label + 22(storePos): 21(ptr) Variable Function + 32(localCoef): 31(ptr) Variable Function + 49(aa): 48(ptr) Variable Function + 54(globalCoef): 31(ptr) Variable Function + 15: 14(ptr) AccessChain 10(bufInst) 12 + Store 15 13 + 19: 18(ptr) AccessChain 10(bufInst) 16 + Store 19 17 + 28: 24(ivec3) Load 26(gl_GlobalInvocationID) + 29: 27(ivec2) VectorShuffle 28 28 0 1 + 30: 20(ivec2) Bitcast 29 + Store 22(storePos) 30 + 34: 24(ivec3) Load 33(gl_LocalInvocationID) + 35: 27(ivec2) VectorShuffle 34 34 0 1 + 36: 20(ivec2) Bitcast 35 + 38: 20(ivec2) CompositeConstruct 37 37 + 39: 20(ivec2) ISub 36 38 + 41: 40(fvec2) ConvertSToF 39 + 43: 40(fvec2) CompositeConstruct 42 42 + 44: 40(fvec2) FDiv 41 43 + 45: 6(float) ExtInst 1(GLSL.std.450) 65(Length) 44 + 46: 7(float) FConvert 45 + Store 32(localCoef) 46 + Store 49(aa) 53 + Store 54(globalCoef) 55 Return FunctionEnd diff --git a/Test/baseResults/spv.earlyReturnDiscard.frag.out b/Test/baseResults/spv.earlyReturnDiscard.frag.out index e2df2e75..1ed86278 100755 --- a/Test/baseResults/spv.earlyReturnDiscard.frag.out +++ b/Test/baseResults/spv.earlyReturnDiscard.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 112 +// Id's are bound by 111 Source GLSL 110 Capability Shader @@ -14,167 +14,165 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "color" - Name 12 "BaseColor" - Name 14 "color2" - Name 16 "otherColor" - Name 19 "c" - Name 22 "d" - Name 28 "bigColor" - Name 33 "smallColor" - Name 39 "minimum" - Name 53 "threshhold" - Name 64 "threshhold2" - Name 78 "b" - Name 107 "gl_FragColor" - Name 111 "threshhold3" - Decorate 12(BaseColor) Smooth - Decorate 19(c) Smooth - Decorate 107(gl_FragColor) BuiltIn FragColor - Decorate 111(threshhold3) NoStaticUse + Name 9 "color" + Name 11 "BaseColor" + Name 13 "color2" + Name 15 "otherColor" + Name 18 "c" + Name 21 "d" + Name 27 "bigColor" + Name 32 "smallColor" + Name 38 "minimum" + Name 52 "threshhold" + Name 63 "threshhold2" + Name 77 "b" + Name 106 "gl_FragColor" + Name 110 "threshhold3" + Decorate 11(BaseColor) Smooth + Decorate 18(c) Smooth + Decorate 106(gl_FragColor) BuiltIn FragColor + Decorate 110(threshhold3) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypePointer Input 8(fvec4) - 12(BaseColor): 11(ptr) Variable Input - 15: TypePointer UniformConstant 8(fvec4) - 16(otherColor): 15(ptr) Variable UniformConstant - 18: TypePointer Input 7(float) - 19(c): 18(ptr) Variable Input - 21: TypePointer UniformConstant 7(float) - 22(d): 21(ptr) Variable UniformConstant - 24: TypeBool - 28(bigColor): 15(ptr) Variable UniformConstant - 33(smallColor): 15(ptr) Variable UniformConstant - 39(minimum): 21(ptr) Variable UniformConstant - 47: 7(float) Constant 1065353216 - 53(threshhold): 21(ptr) Variable UniformConstant - 64(threshhold2): 21(ptr) Variable UniformConstant - 77: TypePointer UniformConstant 24(bool) - 78(b): 77(ptr) Variable UniformConstant - 106: TypePointer Output 8(fvec4) -107(gl_FragColor): 106(ptr) Variable Output -111(threshhold3): 21(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 14: TypePointer UniformConstant 7(fvec4) + 15(otherColor): 14(ptr) Variable UniformConstant + 17: TypePointer Input 6(float) + 18(c): 17(ptr) Variable Input + 20: TypePointer UniformConstant 6(float) + 21(d): 20(ptr) Variable UniformConstant + 23: TypeBool + 27(bigColor): 14(ptr) Variable UniformConstant + 32(smallColor): 14(ptr) Variable UniformConstant + 38(minimum): 20(ptr) Variable UniformConstant + 46: 6(float) Constant 1065353216 + 52(threshhold): 20(ptr) Variable UniformConstant + 63(threshhold2): 20(ptr) Variable UniformConstant + 76: TypePointer UniformConstant 23(bool) + 77(b): 76(ptr) Variable UniformConstant + 105: TypePointer Output 7(fvec4) +106(gl_FragColor): 105(ptr) Variable Output +110(threshhold3): 20(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 10(color): 9(ptr) Variable Function - 14(color2): 9(ptr) Variable Function - 13: 8(fvec4) Load 12(BaseColor) - Store 10(color) 13 - 17: 8(fvec4) Load 16(otherColor) - Store 14(color2) 17 - 20: 7(float) Load 19(c) - 23: 7(float) Load 22(d) - 25: 24(bool) FOrdGreaterThan 20 23 - SelectionMerge 27 None - BranchConditional 25 26 32 - 26: Label - 29: 8(fvec4) Load 28(bigColor) - 30: 8(fvec4) Load 10(color) - 31: 8(fvec4) FAdd 30 29 - Store 10(color) 31 - 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 - 37: 8(fvec4) Load 10(color) - 38: 7(float) CompositeExtract 37 2 - 40: 7(float) Load 39(minimum) - 41: 24(bool) FOrdLessThan 38 40 - SelectionMerge 43 None - BranchConditional 41 42 43 - 42: Label - Branch 6 - 43: Label - 45: 8(fvec4) Load 10(color) - 46: 7(float) CompositeExtract 45 2 - 48: 7(float) FAdd 46 47 - 49: 8(fvec4) Load 10(color) - 50: 8(fvec4) CompositeInsert 48 49 2 - Store 10(color) 50 - 51: 8(fvec4) Load 10(color) - 52: 7(float) CompositeExtract 51 2 - 54: 7(float) Load 53(threshhold) - 55: 24(bool) FOrdGreaterThan 52 54 - SelectionMerge 57 None - BranchConditional 55 56 57 - 56: Label + 9(color): 8(ptr) Variable Function + 13(color2): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + 16: 7(fvec4) Load 15(otherColor) + Store 13(color2) 16 + 19: 6(float) Load 18(c) + 22: 6(float) Load 21(d) + 24: 23(bool) FOrdGreaterThan 19 22 + SelectionMerge 26 None + 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 + 36: 7(fvec4) Load 9(color) + 37: 6(float) CompositeExtract 36 2 + 39: 6(float) Load 38(minimum) + 40: 23(bool) FOrdLessThan 37 39 + SelectionMerge 42 None + BranchConditional 40 41 42 + 41: Label + Return + 42: Label + 44: 7(fvec4) Load 9(color) + 45: 6(float) CompositeExtract 44 2 + 47: 6(float) FAdd 45 46 + 48: 7(fvec4) Load 9(color) + 49: 7(fvec4) CompositeInsert 47 48 2 + Store 9(color) 49 + 50: 7(fvec4) Load 9(color) + 51: 6(float) CompositeExtract 50 2 + 53: 6(float) Load 52(threshhold) + 54: 23(bool) FOrdGreaterThan 51 53 + SelectionMerge 56 None + BranchConditional 54 55 56 + 55: Label Kill - 57: Label - 59: 8(fvec4) Load 10(color) - 60: 8(fvec4) CompositeConstruct 47 47 47 47 - 61: 8(fvec4) FAdd 59 60 - Store 10(color) 61 - 62: 8(fvec4) Load 10(color) - 63: 7(float) CompositeExtract 62 3 - 65: 7(float) Load 64(threshhold2) - 66: 24(bool) FOrdGreaterThan 63 65 - SelectionMerge 68 None - BranchConditional 66 67 99 - 67: Label - 69: 8(fvec4) Load 10(color) - 70: 7(float) CompositeExtract 69 2 - 71: 7(float) Load 64(threshhold2) - 72: 24(bool) FOrdGreaterThan 70 71 - SelectionMerge 74 None - BranchConditional 72 73 76 - 73: Label - Branch 6 - 76: Label - 79: 24(bool) Load 78(b) - SelectionMerge 81 None - BranchConditional 79 80 87 - 80: Label - 82: 8(fvec4) Load 10(color) - 83: 7(float) CompositeExtract 82 2 - 84: 7(float) FAdd 83 47 - 85: 8(fvec4) Load 10(color) - 86: 8(fvec4) CompositeInsert 84 85 2 - Store 10(color) 86 - Branch 81 - 87: Label - 88: 8(fvec4) Load 10(color) - 89: 7(float) CompositeExtract 88 0 - 90: 7(float) Load 39(minimum) - 91: 24(bool) FOrdLessThan 89 90 - SelectionMerge 93 None - BranchConditional 91 92 95 - 92: Label + 56: Label + 58: 7(fvec4) Load 9(color) + 59: 7(fvec4) CompositeConstruct 46 46 46 46 + 60: 7(fvec4) FAdd 58 59 + Store 9(color) 60 + 61: 7(fvec4) Load 9(color) + 62: 6(float) CompositeExtract 61 3 + 64: 6(float) Load 63(threshhold2) + 65: 23(bool) FOrdGreaterThan 62 64 + SelectionMerge 67 None + BranchConditional 65 66 98 + 66: Label + 68: 7(fvec4) Load 9(color) + 69: 6(float) CompositeExtract 68 2 + 70: 6(float) Load 63(threshhold2) + 71: 23(bool) FOrdGreaterThan 69 70 + SelectionMerge 73 None + BranchConditional 71 72 75 + 72: Label + Return + 75: Label + 78: 23(bool) Load 77(b) + SelectionMerge 80 None + BranchConditional 78 79 86 + 79: Label + 81: 7(fvec4) Load 9(color) + 82: 6(float) CompositeExtract 81 2 + 83: 6(float) FAdd 82 46 + 84: 7(fvec4) Load 9(color) + 85: 7(fvec4) CompositeInsert 83 84 2 + Store 9(color) 85 + Branch 80 + 86: Label + 87: 7(fvec4) Load 9(color) + 88: 6(float) CompositeExtract 87 0 + 89: 6(float) Load 38(minimum) + 90: 23(bool) FOrdLessThan 88 89 + SelectionMerge 92 None + BranchConditional 90 91 94 + 91: Label Kill - 95: Label - 96: 8(fvec4) Load 10(color) - 97: 8(fvec4) CompositeConstruct 47 47 47 47 - 98: 8(fvec4) FAdd 96 97 - Store 10(color) 98 - Branch 93 - 93: Label - Branch 81 - 81: Label - Branch 74 - 74: Label - Branch 68 - 99: Label - 100: 24(bool) Load 78(b) - SelectionMerge 102 None - BranchConditional 100 101 104 - 101: Label + 94: Label + 95: 7(fvec4) Load 9(color) + 96: 7(fvec4) CompositeConstruct 46 46 46 46 + 97: 7(fvec4) FAdd 95 96 + Store 9(color) 97 + Branch 92 + 92: Label + Branch 80 + 80: Label + Branch 73 + 73: Label + Branch 67 + 98: Label + 99: 23(bool) Load 77(b) + SelectionMerge 101 None + BranchConditional 99 100 103 + 100: Label Kill - 104: Label - Branch 6 - 102: Label - Branch 68 - 68: Label - 108: 8(fvec4) Load 10(color) - 109: 8(fvec4) Load 14(color2) - 110: 8(fvec4) FMul 108 109 - Store 107(gl_FragColor) 110 - Branch 6 - 6: Label + 103: Label + Return + 101: Label + Branch 67 + 67: Label + 107: 7(fvec4) Load 9(color) + 108: 7(fvec4) Load 13(color2) + 109: 7(fvec4) FMul 107 108 + Store 106(gl_FragColor) 109 Return FunctionEnd diff --git a/Test/baseResults/spv.flowControl.frag.out b/Test/baseResults/spv.flowControl.frag.out index fc8cb3f3..eb6ced42 100755 --- a/Test/baseResults/spv.flowControl.frag.out +++ b/Test/baseResults/spv.flowControl.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 42 +// Id's are bound by 41 Source GLSL 120 Capability Shader @@ -14,67 +14,65 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "color" - Name 12 "BaseColor" - Name 14 "color2" - Name 16 "otherColor" - Name 19 "c" - Name 22 "d" - Name 28 "bigColor" - Name 33 "smallColor" - Name 38 "gl_FragColor" - Decorate 12(BaseColor) Smooth - Decorate 19(c) Smooth - Decorate 38(gl_FragColor) BuiltIn FragColor + Name 9 "color" + Name 11 "BaseColor" + Name 13 "color2" + Name 15 "otherColor" + Name 18 "c" + Name 21 "d" + Name 27 "bigColor" + Name 32 "smallColor" + Name 37 "gl_FragColor" + Decorate 11(BaseColor) Smooth + Decorate 18(c) Smooth + Decorate 37(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypePointer Input 8(fvec4) - 12(BaseColor): 11(ptr) Variable Input - 15: TypePointer UniformConstant 8(fvec4) - 16(otherColor): 15(ptr) Variable UniformConstant - 18: TypePointer Input 7(float) - 19(c): 18(ptr) Variable Input - 21: TypePointer UniformConstant 7(float) - 22(d): 21(ptr) Variable UniformConstant - 24: TypeBool - 28(bigColor): 15(ptr) Variable UniformConstant - 33(smallColor): 15(ptr) Variable UniformConstant - 37: TypePointer Output 8(fvec4) -38(gl_FragColor): 37(ptr) Variable Output + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 14: TypePointer UniformConstant 7(fvec4) + 15(otherColor): 14(ptr) Variable UniformConstant + 17: TypePointer Input 6(float) + 18(c): 17(ptr) Variable Input + 20: TypePointer UniformConstant 6(float) + 21(d): 20(ptr) Variable UniformConstant + 23: TypeBool + 27(bigColor): 14(ptr) Variable UniformConstant + 32(smallColor): 14(ptr) Variable UniformConstant + 36: TypePointer Output 7(fvec4) +37(gl_FragColor): 36(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 10(color): 9(ptr) Variable Function - 14(color2): 9(ptr) Variable Function - 13: 8(fvec4) Load 12(BaseColor) - Store 10(color) 13 - 17: 8(fvec4) Load 16(otherColor) - Store 14(color2) 17 - 20: 7(float) Load 19(c) - 23: 7(float) Load 22(d) - 25: 24(bool) FOrdGreaterThan 20 23 - SelectionMerge 27 None - BranchConditional 25 26 32 - 26: Label - 29: 8(fvec4) Load 28(bigColor) - 30: 8(fvec4) Load 10(color) - 31: 8(fvec4) FAdd 30 29 - Store 10(color) 31 - 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 + 9(color): 8(ptr) Variable Function + 13(color2): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + 16: 7(fvec4) Load 15(otherColor) + Store 13(color2) 16 + 19: 6(float) Load 18(c) + 22: 6(float) Load 21(d) + 24: 23(bool) FOrdGreaterThan 19 22 + SelectionMerge 26 None + 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 + 38: 7(fvec4) Load 9(color) + 39: 7(fvec4) Load 13(color2) + 40: 7(fvec4) FMul 38 39 + Store 37(gl_FragColor) 40 Return FunctionEnd diff --git a/Test/baseResults/spv.for-continue-break.vert.out b/Test/baseResults/spv.for-continue-break.vert.out index cec5daea..633a6b44 100755 --- a/Test/baseResults/spv.for-continue-break.vert.out +++ b/Test/baseResults/spv.for-continue-break.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 49 +// Id's are bound by 48 Source ESSL 300 Capability Shader @@ -13,89 +13,87 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "i" - Name 18 "A" - Name 26 "B" - Name 30 "C" - Name 37 "D" - Name 39 "E" - Name 40 "F" - Name 44 "G" - Name 47 "gl_VertexID" - Name 48 "gl_InstanceID" - Decorate 47(gl_VertexID) BuiltIn VertexId - Decorate 47(gl_VertexID) NoStaticUse - Decorate 48(gl_InstanceID) BuiltIn InstanceId - Decorate 48(gl_InstanceID) NoStaticUse + Name 8 "i" + Name 17 "A" + Name 25 "B" + Name 29 "C" + Name 36 "D" + Name 38 "E" + Name 39 "F" + Name 43 "G" + Name 46 "gl_VertexID" + Name 47 "gl_InstanceID" + Decorate 46(gl_VertexID) BuiltIn VertexId + Decorate 46(gl_VertexID) NoStaticUse + Decorate 47(gl_InstanceID) BuiltIn InstanceId + Decorate 47(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 0 - 15: 7(int) Constant 10 - 16: TypeBool - 19: 7(int) Constant 1 - 21: 7(int) Constant 2 - 32: 7(int) Constant 3 - 41: 7(int) Constant 12 - 45: 7(int) Constant 99 - 46: TypePointer Input 7(int) - 47(gl_VertexID): 46(ptr) Variable Input -48(gl_InstanceID): 46(ptr) Variable Input + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 14: 6(int) Constant 10 + 15: TypeBool + 18: 6(int) Constant 1 + 20: 6(int) Constant 2 + 31: 6(int) Constant 3 + 40: 6(int) Constant 12 + 44: 6(int) Constant 99 + 45: TypePointer Input 6(int) + 46(gl_VertexID): 45(ptr) Variable Input +47(gl_InstanceID): 45(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(i): 8(ptr) Variable Function - 18(A): 8(ptr) Variable Function - 26(B): 8(ptr) Variable Function - 30(C): 8(ptr) Variable Function - 37(D): 8(ptr) Variable Function - 39(E): 8(ptr) Variable Function - 40(F): 8(ptr) Variable Function - 44(G): 8(ptr) Variable Function - Store 9(i) 10 - Branch 11 - 11: Label - 14: 7(int) Load 9(i) - 17: 16(bool) SLessThan 14 15 - LoopMerge 12 None - BranchConditional 17 13 12 - 13: Label - Store 18(A) 19 - 20: 7(int) Load 9(i) - 22: 7(int) SMod 20 21 - 23: 16(bool) IEqual 22 10 - SelectionMerge 25 None - BranchConditional 23 24 25 - 24: Label - Store 26(B) 19 - 27: 7(int) Load 9(i) - 28: 7(int) IAdd 27 19 - Store 9(i) 28 + 8(i): 7(ptr) Variable Function + 17(A): 7(ptr) Variable Function + 25(B): 7(ptr) Variable Function + 29(C): 7(ptr) Variable Function + 36(D): 7(ptr) Variable Function + 38(E): 7(ptr) Variable Function + 39(F): 7(ptr) Variable Function + 43(G): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + 13: 6(int) Load 8(i) + 16: 15(bool) SLessThan 13 14 + LoopMerge 11 None + BranchConditional 16 12 11 + 12: Label + Store 17(A) 18 + 19: 6(int) Load 8(i) + 21: 6(int) SMod 19 20 + 22: 15(bool) IEqual 21 9 + SelectionMerge 24 None + BranchConditional 22 23 24 + 23: Label + Store 25(B) 18 + 26: 6(int) Load 8(i) + 27: 6(int) IAdd 26 18 + Store 8(i) 27 + Branch 10 + 28: Label + Store 29(C) 18 + Branch 24 + 24: Label + 30: 6(int) Load 8(i) + 32: 6(int) SMod 30 31 + 33: 15(bool) IEqual 32 9 + SelectionMerge 35 None + BranchConditional 33 34 35 + 34: Label + Store 36(D) 18 Branch 11 - 29: Label - Store 30(C) 19 - Branch 25 - 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 - Store 37(D) 19 - Branch 12 - 38: Label - Store 39(E) 19 - Branch 36 - 36: Label - Store 40(F) 41 - 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 + 37: Label + Store 38(E) 18 + Branch 35 + 35: Label + Store 39(F) 40 + 41: 6(int) Load 8(i) + 42: 6(int) IAdd 41 18 + Store 8(i) 42 + Branch 10 + 11: Label + Store 43(G) 44 Return FunctionEnd diff --git a/Test/baseResults/spv.for-simple.vert.out b/Test/baseResults/spv.for-simple.vert.out index 11050dfc..9e4a7a7b 100755 --- a/Test/baseResults/spv.for-simple.vert.out +++ b/Test/baseResults/spv.for-simple.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 26 +// Id's are bound by 25 Source ESSL 300 Capability Shader @@ -13,45 +13,43 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "i" - Name 18 "j" - Name 24 "gl_VertexID" - Name 25 "gl_InstanceID" - Decorate 24(gl_VertexID) BuiltIn VertexId - Decorate 24(gl_VertexID) NoStaticUse - Decorate 25(gl_InstanceID) BuiltIn InstanceId - Decorate 25(gl_InstanceID) NoStaticUse + Name 8 "i" + Name 17 "j" + Name 23 "gl_VertexID" + Name 24 "gl_InstanceID" + Decorate 23(gl_VertexID) BuiltIn VertexId + Decorate 23(gl_VertexID) NoStaticUse + Decorate 24(gl_InstanceID) BuiltIn InstanceId + Decorate 24(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 0 - 15: 7(int) Constant 10 - 16: TypeBool - 19: 7(int) Constant 12 - 21: 7(int) Constant 1 - 23: TypePointer Input 7(int) - 24(gl_VertexID): 23(ptr) Variable Input -25(gl_InstanceID): 23(ptr) Variable Input + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 14: 6(int) Constant 10 + 15: TypeBool + 18: 6(int) Constant 12 + 20: 6(int) Constant 1 + 22: TypePointer Input 6(int) + 23(gl_VertexID): 22(ptr) Variable Input +24(gl_InstanceID): 22(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(i): 8(ptr) Variable Function - 18(j): 8(ptr) Variable Function - Store 9(i) 10 - Branch 11 + 8(i): 7(ptr) Variable Function + 17(j): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + 13: 6(int) Load 8(i) + 16: 15(bool) SLessThan 13 14 + LoopMerge 11 None + BranchConditional 16 12 11 + 12: Label + Store 17(j) 18 + 19: 6(int) Load 8(i) + 21: 6(int) IAdd 19 20 + Store 8(i) 21 + Branch 10 11: Label - 14: 7(int) Load 9(i) - 17: 16(bool) SLessThan 14 15 - LoopMerge 12 None - BranchConditional 17 13 12 - 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 - Branch 6 - 6: Label Return FunctionEnd diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out index 75949a04..086f884a 100755 --- a/Test/baseResults/spv.forLoop.frag.out +++ b/Test/baseResults/spv.forLoop.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 123 +// Id's are bound by 122 Source GLSL 130 Capability Shader @@ -14,186 +14,184 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "color" - Name 12 "BaseColor" - Name 16 "i" - Name 23 "Count" - Name 28 "bigColor" - Name 36 "gl_FragColor" - Name 39 "sum" - Name 41 "i" - Name 51 "v4" - Name 60 "i" - Name 66 "tv4" - Name 84 "r" - Name 90 "i" - Name 98 "f" - Name 111 "i" - Decorate 12(BaseColor) Smooth - Decorate 36(gl_FragColor) BuiltIn FragColor - Decorate 98(f) Smooth + Name 9 "color" + Name 11 "BaseColor" + Name 15 "i" + Name 22 "Count" + Name 27 "bigColor" + Name 35 "gl_FragColor" + Name 38 "sum" + Name 40 "i" + Name 50 "v4" + Name 59 "i" + Name 65 "tv4" + Name 83 "r" + Name 89 "i" + Name 97 "f" + Name 110 "i" + Decorate 11(BaseColor) Smooth + Decorate 35(gl_FragColor) BuiltIn FragColor + Decorate 97(f) Smooth 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypePointer Input 8(fvec4) - 12(BaseColor): 11(ptr) Variable Input - 14: TypeInt 32 1 - 15: TypePointer Function 14(int) - 17: 14(int) Constant 0 - 22: TypePointer UniformConstant 14(int) - 23(Count): 22(ptr) Variable UniformConstant - 25: TypeBool - 27: TypePointer UniformConstant 8(fvec4) - 28(bigColor): 27(ptr) Variable UniformConstant - 33: 14(int) Constant 1 - 35: TypePointer Output 8(fvec4) -36(gl_FragColor): 35(ptr) Variable Output - 38: TypePointer Function 7(float) - 40: 7(float) Constant 0 - 46: 14(int) Constant 4 - 48: TypeInt 32 0 - 49: TypeVector 48(int) 4 - 50: TypePointer UniformConstant 49(ivec4) - 51(v4): 50(ptr) Variable UniformConstant - 71: 48(int) Constant 4 - 85: TypeVector 7(float) 3 - 97: TypePointer Input 7(float) - 98(f): 97(ptr) Variable Input - 116: 14(int) Constant 16 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 13: TypeInt 32 1 + 14: TypePointer Function 13(int) + 16: 13(int) Constant 0 + 21: TypePointer UniformConstant 13(int) + 22(Count): 21(ptr) Variable UniformConstant + 24: TypeBool + 26: TypePointer UniformConstant 7(fvec4) + 27(bigColor): 26(ptr) Variable UniformConstant + 32: 13(int) Constant 1 + 34: TypePointer Output 7(fvec4) +35(gl_FragColor): 34(ptr) Variable Output + 37: TypePointer Function 6(float) + 39: 6(float) Constant 0 + 45: 13(int) Constant 4 + 47: TypeInt 32 0 + 48: TypeVector 47(int) 4 + 49: TypePointer UniformConstant 48(ivec4) + 50(v4): 49(ptr) Variable UniformConstant + 70: 47(int) Constant 4 + 84: TypeVector 6(float) 3 + 96: TypePointer Input 6(float) + 97(f): 96(ptr) Variable Input + 115: 13(int) Constant 16 4(main): 2 Function None 3 5: Label - 10(color): 9(ptr) Variable Function - 16(i): 15(ptr) Variable Function - 39(sum): 38(ptr) Variable Function - 41(i): 15(ptr) Variable Function - 60(i): 15(ptr) Variable Function - 66(tv4): 9(ptr) Variable Function - 84(r): 9(ptr) Variable Function - 90(i): 15(ptr) Variable Function - 111(i): 15(ptr) Variable Function - 13: 8(fvec4) Load 12(BaseColor) - Store 10(color) 13 - Store 16(i) 17 - Branch 18 + 9(color): 8(ptr) Variable Function + 15(i): 14(ptr) Variable Function + 38(sum): 37(ptr) Variable Function + 40(i): 14(ptr) Variable Function + 59(i): 14(ptr) Variable Function + 65(tv4): 8(ptr) Variable Function + 83(r): 8(ptr) Variable Function + 89(i): 14(ptr) Variable Function + 110(i): 14(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Store 15(i) 16 + Branch 17 + 17: Label + 20: 13(int) Load 15(i) + 23: 13(int) Load 22(Count) + 25: 24(bool) SLessThan 20 23 + LoopMerge 18 None + BranchConditional 25 19 18 + 19: Label + 28: 7(fvec4) Load 27(bigColor) + 29: 7(fvec4) Load 9(color) + 30: 7(fvec4) FAdd 29 28 + Store 9(color) 30 + 31: 13(int) Load 15(i) + 33: 13(int) IAdd 31 32 + Store 15(i) 33 + Branch 17 18: Label - 21: 14(int) Load 16(i) - 24: 14(int) Load 23(Count) - 26: 25(bool) SLessThan 21 24 - LoopMerge 19 None - BranchConditional 26 20 19 - 20: Label - 29: 8(fvec4) Load 28(bigColor) - 30: 8(fvec4) Load 10(color) - 31: 8(fvec4) FAdd 30 29 - Store 10(color) 31 - 32: 14(int) Load 16(i) - 34: 14(int) IAdd 32 33 - Store 16(i) 34 - Branch 18 - 19: Label - 37: 8(fvec4) Load 10(color) - Store 36(gl_FragColor) 37 - Store 39(sum) 40 - Store 41(i) 17 - Branch 42 + 36: 7(fvec4) Load 9(color) + Store 35(gl_FragColor) 36 + Store 38(sum) 39 + Store 40(i) 16 + Branch 41 + 41: Label + 44: 13(int) Load 40(i) + 46: 24(bool) SLessThan 44 45 + LoopMerge 42 None + BranchConditional 46 43 42 + 43: Label + 51: 13(int) Load 40(i) + 52: 48(ivec4) Load 50(v4) + 53: 47(int) VectorExtractDynamic 52 51 + 54: 6(float) ConvertUToF 53 + 55: 6(float) Load 38(sum) + 56: 6(float) FAdd 55 54 + Store 38(sum) 56 + 57: 13(int) Load 40(i) + 58: 13(int) IAdd 57 32 + Store 40(i) 58 + Branch 41 42: Label - 45: 14(int) Load 41(i) - 47: 25(bool) SLessThan 45 46 - LoopMerge 43 None - BranchConditional 47 44 43 - 44: Label - 52: 14(int) Load 41(i) - 53: 49(ivec4) Load 51(v4) - 54: 48(int) VectorExtractDynamic 53 52 - 55: 7(float) ConvertUToF 54 - 56: 7(float) Load 39(sum) - 57: 7(float) FAdd 56 55 - Store 39(sum) 57 - 58: 14(int) Load 41(i) - 59: 14(int) IAdd 58 33 - Store 41(i) 59 - Branch 42 - 43: Label - Store 60(i) 17 - Branch 61 + Store 59(i) 16 + Branch 60 + 60: Label + 63: 13(int) Load 59(i) + 64: 24(bool) SLessThan 63 45 + LoopMerge 61 None + BranchConditional 64 62 61 + 62: Label + 66: 13(int) Load 59(i) + 67: 13(int) Load 59(i) + 68: 48(ivec4) Load 50(v4) + 69: 47(int) VectorExtractDynamic 68 67 + 71: 47(int) IMul 69 70 + 72: 6(float) ConvertUToF 71 + 73: 7(fvec4) Load 65(tv4) + 74: 7(fvec4) VectorInsertDynamic 73 72 66 + Store 65(tv4) 74 + 75: 13(int) Load 59(i) + 76: 13(int) IAdd 75 32 + Store 59(i) 76 + Branch 60 61: Label - 64: 14(int) Load 60(i) - 65: 25(bool) SLessThan 64 46 - LoopMerge 62 None - BranchConditional 65 63 62 - 63: Label - 67: 14(int) Load 60(i) - 68: 14(int) Load 60(i) - 69: 49(ivec4) Load 51(v4) - 70: 48(int) VectorExtractDynamic 69 68 - 72: 48(int) IMul 70 71 - 73: 7(float) ConvertUToF 72 - 74: 8(fvec4) Load 66(tv4) - 75: 8(fvec4) VectorInsertDynamic 74 73 67 - Store 66(tv4) 75 - 76: 14(int) Load 60(i) - 77: 14(int) IAdd 76 33 - Store 60(i) 77 - Branch 61 - 62: Label - 78: 7(float) Load 39(sum) - 79: 8(fvec4) CompositeConstruct 78 78 78 78 - 80: 8(fvec4) Load 66(tv4) - 81: 8(fvec4) FAdd 79 80 - 82: 8(fvec4) Load 36(gl_FragColor) - 83: 8(fvec4) FAdd 82 81 - Store 36(gl_FragColor) 83 - 86: 8(fvec4) Load 12(BaseColor) - 87: 85(fvec3) VectorShuffle 86 86 0 1 2 - 88: 8(fvec4) Load 84(r) - 89: 8(fvec4) VectorShuffle 88 87 4 5 6 3 - Store 84(r) 89 - Store 90(i) 17 - Branch 91 + 77: 6(float) Load 38(sum) + 78: 7(fvec4) CompositeConstruct 77 77 77 77 + 79: 7(fvec4) Load 65(tv4) + 80: 7(fvec4) FAdd 78 79 + 81: 7(fvec4) Load 35(gl_FragColor) + 82: 7(fvec4) FAdd 81 80 + Store 35(gl_FragColor) 82 + 85: 7(fvec4) Load 11(BaseColor) + 86: 84(fvec3) VectorShuffle 85 85 0 1 2 + 87: 7(fvec4) Load 83(r) + 88: 7(fvec4) VectorShuffle 87 86 4 5 6 3 + Store 83(r) 88 + Store 89(i) 16 + Branch 90 + 90: Label + 93: 13(int) Load 89(i) + 94: 13(int) Load 22(Count) + 95: 24(bool) SLessThan 93 94 + LoopMerge 91 None + BranchConditional 95 92 91 + 92: Label + 98: 6(float) Load 97(f) + 99: 7(fvec4) Load 83(r) + 100: 7(fvec4) CompositeInsert 98 99 3 + Store 83(r) 100 + 101: 13(int) Load 89(i) + 102: 13(int) IAdd 101 32 + Store 89(i) 102 + Branch 90 91: Label - 94: 14(int) Load 90(i) - 95: 14(int) Load 23(Count) - 96: 25(bool) SLessThan 94 95 - LoopMerge 92 None - BranchConditional 96 93 92 - 93: Label - 99: 7(float) Load 98(f) - 100: 8(fvec4) Load 84(r) - 101: 8(fvec4) CompositeInsert 99 100 3 - Store 84(r) 101 - 102: 14(int) Load 90(i) - 103: 14(int) IAdd 102 33 - Store 90(i) 103 - Branch 91 - 92: Label - 104: 8(fvec4) Load 84(r) - 105: 85(fvec3) VectorShuffle 104 104 0 1 2 - 106: 8(fvec4) Load 36(gl_FragColor) - 107: 85(fvec3) VectorShuffle 106 106 0 1 2 - 108: 85(fvec3) FAdd 107 105 - 109: 8(fvec4) Load 36(gl_FragColor) - 110: 8(fvec4) VectorShuffle 109 108 4 5 6 3 - Store 36(gl_FragColor) 110 - Store 111(i) 17 - Branch 112 + 103: 7(fvec4) Load 83(r) + 104: 84(fvec3) VectorShuffle 103 103 0 1 2 + 105: 7(fvec4) Load 35(gl_FragColor) + 106: 84(fvec3) VectorShuffle 105 105 0 1 2 + 107: 84(fvec3) FAdd 106 104 + 108: 7(fvec4) Load 35(gl_FragColor) + 109: 7(fvec4) VectorShuffle 108 107 4 5 6 3 + Store 35(gl_FragColor) 109 + Store 110(i) 16 + Branch 111 + 111: Label + 114: 13(int) Load 110(i) + 116: 24(bool) SLessThan 114 115 + LoopMerge 112 None + BranchConditional 116 113 112 + 113: Label + 117: 6(float) Load 97(f) + 118: 7(fvec4) Load 35(gl_FragColor) + 119: 7(fvec4) VectorTimesScalar 118 117 + Store 35(gl_FragColor) 119 + 120: 13(int) Load 110(i) + 121: 13(int) IAdd 120 45 + Store 110(i) 121 + Branch 111 112: Label - 115: 14(int) Load 111(i) - 117: 25(bool) SLessThan 115 116 - LoopMerge 113 None - BranchConditional 117 114 113 - 114: Label - 118: 7(float) Load 98(f) - 119: 8(fvec4) Load 36(gl_FragColor) - 120: 8(fvec4) VectorTimesScalar 119 118 - Store 36(gl_FragColor) 120 - 121: 14(int) Load 111(i) - 122: 14(int) IAdd 121 46 - Store 111(i) 122 - Branch 112 - 113: Label - Branch 6 - 6: Label Return FunctionEnd diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out index 4e6af79f..0af086d2 100644 --- a/Test/baseResults/spv.forwardFun.frag.out +++ b/Test/baseResults/spv.forwardFun.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 58 +// Id's are bound by 57 Source ESSL 100 Capability Shader @@ -14,93 +14,91 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 7 "bar(" - Name 11 "unreachableReturn(" - Name 17 "foo(vf4;" - Name 16 "bar" - Name 19 "color" - Name 21 "BaseColor" - Name 22 "param" - Name 28 "f" - Name 31 "gl_FragColor" - Name 37 "d" - Name 57 "bigColor" - Decorate 19(color) RelaxedPrecision - Decorate 21(BaseColor) RelaxedPrecision - Decorate 21(BaseColor) Smooth - Decorate 28(f) RelaxedPrecision - Decorate 31(gl_FragColor) RelaxedPrecision - Decorate 31(gl_FragColor) BuiltIn FragColor - Decorate 37(d) RelaxedPrecision - Decorate 57(bigColor) RelaxedPrecision - Decorate 57(bigColor) NoStaticUse + Name 6 "bar(" + Name 10 "unreachableReturn(" + Name 16 "foo(vf4;" + Name 15 "bar" + Name 18 "color" + Name 20 "BaseColor" + Name 21 "param" + Name 27 "f" + Name 30 "gl_FragColor" + Name 36 "d" + Name 56 "bigColor" + Decorate 18(color) RelaxedPrecision + Decorate 20(BaseColor) RelaxedPrecision + Decorate 20(BaseColor) Smooth + Decorate 27(f) RelaxedPrecision + Decorate 30(gl_FragColor) RelaxedPrecision + Decorate 30(gl_FragColor) BuiltIn FragColor + Decorate 36(d) RelaxedPrecision + Decorate 56(bigColor) RelaxedPrecision + Decorate 56(bigColor) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 9: TypeFloat 32 - 10: TypeFunction 9(float) - 13: TypeVector 9(float) 4 - 14: TypePointer Function 13(fvec4) - 15: TypeFunction 9(float) 14(ptr) - 20: TypePointer Input 13(fvec4) - 21(BaseColor): 20(ptr) Variable Input - 27: TypePointer Function 9(float) - 30: TypePointer Output 13(fvec4) -31(gl_FragColor): 30(ptr) Variable Output - 36: TypePointer UniformConstant 9(float) - 37(d): 36(ptr) Variable UniformConstant - 39: 9(float) Constant 1082549862 - 40: TypeBool - 44: 9(float) Constant 1067030938 - 47: 9(float) Constant 1083179008 - 56: TypePointer UniformConstant 13(fvec4) - 57(bigColor): 56(ptr) Variable UniformConstant + 8: TypeFloat 32 + 9: TypeFunction 8(float) + 12: TypeVector 8(float) 4 + 13: TypePointer Function 12(fvec4) + 14: TypeFunction 8(float) 13(ptr) + 19: TypePointer Input 12(fvec4) + 20(BaseColor): 19(ptr) Variable Input + 26: TypePointer Function 8(float) + 29: TypePointer Output 12(fvec4) +30(gl_FragColor): 29(ptr) Variable Output + 35: TypePointer UniformConstant 8(float) + 36(d): 35(ptr) Variable UniformConstant + 38: 8(float) Constant 1082549862 + 39: TypeBool + 43: 8(float) Constant 1067030938 + 46: 8(float) Constant 1083179008 + 55: TypePointer UniformConstant 12(fvec4) + 56(bigColor): 55(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 19(color): 14(ptr) Variable Function - 22(param): 14(ptr) Variable Function - 28(f): 27(ptr) Variable Function - 23: 13(fvec4) Load 21(BaseColor) - Store 22(param) 23 - 24: 9(float) FunctionCall 17(foo(vf4;) 22(param) - 25: 13(fvec4) CompositeConstruct 24 24 24 24 - Store 19(color) 25 - 26: 2 FunctionCall 7(bar() - 29: 9(float) FunctionCall 11(unreachableReturn() - Store 28(f) 29 - 32: 13(fvec4) Load 19(color) - 33: 9(float) Load 28(f) - 34: 13(fvec4) VectorTimesScalar 32 33 - Store 31(gl_FragColor) 34 - Branch 6 - 6: Label + 18(color): 13(ptr) Variable Function + 21(param): 13(ptr) Variable Function + 27(f): 26(ptr) Variable Function + 22: 12(fvec4) Load 20(BaseColor) + Store 21(param) 22 + 23: 8(float) FunctionCall 16(foo(vf4;) 21(param) + 24: 12(fvec4) CompositeConstruct 23 23 23 23 + Store 18(color) 24 + 25: 2 FunctionCall 6(bar() + 28: 8(float) FunctionCall 10(unreachableReturn() + Store 27(f) 28 + 31: 12(fvec4) Load 18(color) + 32: 8(float) Load 27(f) + 33: 12(fvec4) VectorTimesScalar 31 32 + Store 30(gl_FragColor) 33 Return FunctionEnd - 7(bar(): 2 Function None 3 - 8: Label + 6(bar(): 2 Function None 3 + 7: Label Return FunctionEnd -11(unreachableReturn(): 9(float) Function None 10 - 12: Label - 35: 2 FunctionCall 7(bar() - 38: 9(float) Load 37(d) - 41: 40(bool) FOrdLessThan 38 39 - SelectionMerge 43 None - BranchConditional 41 42 46 - 42: Label - ReturnValue 44 - 46: Label - ReturnValue 47 - 43: Label - 49: 9(float) Undef - ReturnValue 49 +10(unreachableReturn(): 8(float) Function None 9 + 11: Label + 34: 2 FunctionCall 6(bar() + 37: 8(float) Load 36(d) + 40: 39(bool) FOrdLessThan 37 38 + SelectionMerge 42 None + BranchConditional 40 41 45 + 41: Label + ReturnValue 43 + 45: Label + ReturnValue 46 + 42: Label + 48: 8(float) Undef + ReturnValue 48 FunctionEnd - 17(foo(vf4;): 9(float) Function None 15 - 16(bar): 14(ptr) FunctionParameter - 18: Label - 50: 13(fvec4) Load 16(bar) - 51: 9(float) CompositeExtract 50 0 - 52: 13(fvec4) Load 16(bar) - 53: 9(float) CompositeExtract 52 1 - 54: 9(float) FAdd 51 53 - ReturnValue 54 + 16(foo(vf4;): 8(float) Function None 14 + 15(bar): 13(ptr) FunctionParameter + 17: Label + 49: 12(fvec4) Load 15(bar) + 50: 8(float) CompositeExtract 49 0 + 51: 12(fvec4) Load 15(bar) + 52: 8(float) CompositeExtract 51 1 + 53: 8(float) FAdd 50 52 + ReturnValue 53 FunctionEnd diff --git a/Test/baseResults/spv.functionCall.frag.out b/Test/baseResults/spv.functionCall.frag.out index ebb0c759..42ec4c5f 100644 --- a/Test/baseResults/spv.functionCall.frag.out +++ b/Test/baseResults/spv.functionCall.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 74 +// Id's are bound by 73 Source GLSL 130 Capability Shader @@ -16,113 +16,111 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 12 "foo(vf4;" - Name 11 "bar" - Name 14 "bar(" - Name 17 "unreachableReturn(" - Name 19 "missingReturn(" - Name 22 "h" - Name 31 "d" - Name 52 "color" - Name 54 "BaseColor" - Name 55 "param" - Name 61 "f" - Name 63 "g" - Name 66 "gl_FragColor" - Name 73 "bigColor" - Decorate 54(BaseColor) Smooth - Decorate 66(gl_FragColor) BuiltIn FragColor - Decorate 73(bigColor) NoStaticUse + Name 11 "foo(vf4;" + Name 10 "bar" + Name 13 "bar(" + Name 16 "unreachableReturn(" + Name 18 "missingReturn(" + Name 21 "h" + Name 30 "d" + Name 51 "color" + Name 53 "BaseColor" + Name 54 "param" + Name 60 "f" + Name 62 "g" + Name 65 "gl_FragColor" + Name 72 "bigColor" + Decorate 53(BaseColor) Smooth + Decorate 65(gl_FragColor) BuiltIn FragColor + Decorate 72(bigColor) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 10: TypeFunction 7(float) 9(ptr) - 16: TypeFunction 7(float) - 21: TypePointer PrivateGlobal 7(float) - 22(h): 21(ptr) Variable PrivateGlobal - 23: 7(float) Constant 0 - 30: TypePointer UniformConstant 7(float) - 31(d): 30(ptr) Variable UniformConstant - 33: 7(float) Constant 1082549862 - 34: TypeBool - 38: 7(float) Constant 1067030938 - 41: 7(float) Constant 1083179008 - 49: 7(float) Constant 1081711002 - 53: TypePointer Input 8(fvec4) - 54(BaseColor): 53(ptr) Variable Input - 60: TypePointer Function 7(float) - 65: TypePointer Output 8(fvec4) -66(gl_FragColor): 65(ptr) Variable Output - 72: TypePointer UniformConstant 8(fvec4) - 73(bigColor): 72(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 6(float) 8(ptr) + 15: TypeFunction 6(float) + 20: TypePointer PrivateGlobal 6(float) + 21(h): 20(ptr) Variable PrivateGlobal + 22: 6(float) Constant 0 + 29: TypePointer UniformConstant 6(float) + 30(d): 29(ptr) Variable UniformConstant + 32: 6(float) Constant 1082549862 + 33: TypeBool + 37: 6(float) Constant 1067030938 + 40: 6(float) Constant 1083179008 + 48: 6(float) Constant 1081711002 + 52: TypePointer Input 7(fvec4) + 53(BaseColor): 52(ptr) Variable Input + 59: TypePointer Function 6(float) + 64: TypePointer Output 7(fvec4) +65(gl_FragColor): 64(ptr) Variable Output + 71: TypePointer UniformConstant 7(fvec4) + 72(bigColor): 71(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 52(color): 9(ptr) Variable Function - 55(param): 9(ptr) Variable Function - 61(f): 60(ptr) Variable Function - 63(g): 60(ptr) Variable Function - Store 22(h) 23 - 56: 8(fvec4) Load 54(BaseColor) - Store 55(param) 56 - 57: 7(float) FunctionCall 12(foo(vf4;) 55(param) - 58: 8(fvec4) CompositeConstruct 57 57 57 57 - Store 52(color) 58 - 59: 2 FunctionCall 14(bar() - 62: 7(float) FunctionCall 17(unreachableReturn() - Store 61(f) 62 - 64: 7(float) FunctionCall 19(missingReturn() - Store 63(g) 64 - 67: 8(fvec4) Load 52(color) - 68: 7(float) Load 61(f) - 69: 8(fvec4) VectorTimesScalar 67 68 - 70: 7(float) Load 22(h) - 71: 8(fvec4) VectorTimesScalar 69 70 - Store 66(gl_FragColor) 71 - Branch 6 - 6: Label + 51(color): 8(ptr) Variable Function + 54(param): 8(ptr) Variable Function + 60(f): 59(ptr) Variable Function + 62(g): 59(ptr) Variable Function + Store 21(h) 22 + 55: 7(fvec4) Load 53(BaseColor) + Store 54(param) 55 + 56: 6(float) FunctionCall 11(foo(vf4;) 54(param) + 57: 7(fvec4) CompositeConstruct 56 56 56 56 + Store 51(color) 57 + 58: 2 FunctionCall 13(bar() + 61: 6(float) FunctionCall 16(unreachableReturn() + Store 60(f) 61 + 63: 6(float) FunctionCall 18(missingReturn() + Store 62(g) 63 + 66: 7(fvec4) Load 51(color) + 67: 6(float) Load 60(f) + 68: 7(fvec4) VectorTimesScalar 66 67 + 69: 6(float) Load 21(h) + 70: 7(fvec4) VectorTimesScalar 68 69 + Store 65(gl_FragColor) 70 Return FunctionEnd - 12(foo(vf4;): 7(float) Function None 10 - 11(bar): 9(ptr) FunctionParameter - 13: Label - 24: 8(fvec4) Load 11(bar) - 25: 7(float) CompositeExtract 24 0 - 26: 8(fvec4) Load 11(bar) - 27: 7(float) CompositeExtract 26 1 - 28: 7(float) FAdd 25 27 - ReturnValue 28 + 11(foo(vf4;): 6(float) Function None 9 + 10(bar): 8(ptr) FunctionParameter + 12: Label + 23: 7(fvec4) Load 10(bar) + 24: 6(float) CompositeExtract 23 0 + 25: 7(fvec4) Load 10(bar) + 26: 6(float) CompositeExtract 25 1 + 27: 6(float) FAdd 24 26 + ReturnValue 27 FunctionEnd - 14(bar(): 2 Function None 3 - 15: Label + 13(bar(): 2 Function None 3 + 14: Label Return FunctionEnd -17(unreachableReturn(): 7(float) Function None 16 - 18: Label - 32: 7(float) Load 31(d) - 35: 34(bool) FOrdLessThan 32 33 - SelectionMerge 37 None - BranchConditional 35 36 40 - 36: Label - ReturnValue 38 - 40: Label - ReturnValue 41 - 37: Label - 43: 7(float) Undef - ReturnValue 43 +16(unreachableReturn(): 6(float) Function None 15 + 17: Label + 31: 6(float) Load 30(d) + 34: 33(bool) FOrdLessThan 31 32 + SelectionMerge 36 None + BranchConditional 34 35 39 + 35: Label + ReturnValue 37 + 39: Label + ReturnValue 40 + 36: Label + 42: 6(float) Undef + ReturnValue 42 FunctionEnd -19(missingReturn(): 7(float) Function None 16 - 20: Label - 44: 7(float) Load 31(d) - 45: 34(bool) FOrdLessThan 44 41 - SelectionMerge 47 None - BranchConditional 45 46 47 - 46: Label - 48: 7(float) Load 31(d) - Store 22(h) 48 - ReturnValue 49 - 47: Label - 51: 7(float) Undef - ReturnValue 51 +18(missingReturn(): 6(float) Function None 15 + 19: Label + 43: 6(float) Load 30(d) + 44: 33(bool) FOrdLessThan 43 40 + SelectionMerge 46 None + BranchConditional 44 45 46 + 45: Label + 47: 6(float) Load 30(d) + Store 21(h) 47 + ReturnValue 48 + 46: Label + 50: 6(float) Undef + ReturnValue 50 FunctionEnd diff --git a/Test/baseResults/spv.functionSemantics.frag.out b/Test/baseResults/spv.functionSemantics.frag.out index aba41c35..bc0b07c8 100755 --- a/Test/baseResults/spv.functionSemantics.frag.out +++ b/Test/baseResults/spv.functionSemantics.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 159 +// Id's are bound by 158 Source GLSL 400 Capability Shader @@ -16,225 +16,223 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 16 "foo(i1;i1;i1;i1;i1;i1;" - Name 10 "a" - Name 11 "b" - Name 12 "c" - Name 13 "d" - Name 14 "e" - Name 15 "f" - Name 26 "foo2(f1;vf3;i1;" - Name 23 "a" - Name 24 "b" - Name 25 "r" - Name 29 "foo3(" - Name 31 "sum" - Name 73 "u" - Name 85 "t" - Name 88 "s" - MemberName 88(s) 0 "t" - Name 90 "f" - Name 97 "color" - Name 103 "e" + Name 15 "foo(i1;i1;i1;i1;i1;i1;" + Name 9 "a" + Name 10 "b" + Name 11 "c" + Name 12 "d" + Name 13 "e" + Name 14 "f" + Name 25 "foo2(f1;vf3;i1;" + Name 22 "a" + Name 23 "b" + Name 24 "r" + Name 28 "foo3(" + Name 30 "sum" + Name 72 "u" + Name 84 "t" + Name 87 "s" + MemberName 87(s) 0 "t" + Name 89 "f" + Name 96 "color" + Name 102 "e" + Name 103 "param" Name 104 "param" Name 105 "param" Name 106 "param" - Name 107 "param" - Name 126 "ret" - Name 128 "tempReturn" - Name 133 "tempArg" + Name 125 "ret" + Name 127 "tempReturn" + Name 132 "tempArg" + Name 133 "param" Name 134 "param" Name 135 "param" - Name 136 "param" - Name 139 "arg" - Name 155 "gl_FragColor" - Decorate 155(gl_FragColor) BuiltIn FragColor + Name 138 "arg" + Name 154 "gl_FragColor" + Decorate 154(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 9: TypeFunction 7(int) 8(ptr) 7(int) 8(ptr) 7(int) 8(ptr) 8(ptr) - 18: TypeFloat 32 - 19: TypePointer Function 18(float) - 20: TypeVector 18(float) 3 - 21: TypePointer Function 20(fvec3) - 22: TypeFunction 7(int) 19(ptr) 21(ptr) 8(ptr) - 28: TypeFunction 7(int) - 39: 7(int) Constant 64 - 44: 7(int) Constant 1024 - 62: 18(float) Constant 1077936128 - 66: 18(float) Constant 1084227584 - 72: TypePointer UniformConstant 18(float) - 73(u): 72(ptr) Variable UniformConstant - 75: 18(float) Constant 1078774989 - 76: TypeBool - 81: 7(int) Constant 1000000 - 83: 7(int) Constant 2000000 - 86: 7(int) Constant 2 - 87: TypeVector 7(int) 4 - 88(s): TypeStruct 87(ivec4) - 89: TypePointer Function 88(s) - 91: 7(int) Constant 0 - 92: 7(int) Constant 32 - 93: TypePointer Function 87(ivec4) - 98: 7(int) Constant 1 - 102: 7(int) Constant 8 - 117: 7(int) Constant 128 - 127: TypePointer PrivateGlobal 7(int) - 128(tempReturn): 127(ptr) Variable PrivateGlobal - 129: 18(float) Constant 1082130432 - 130: 18(float) Constant 1065353216 - 131: 18(float) Constant 1073741824 - 132: 20(fvec3) ConstantComposite 130 131 62 - 153: TypeVector 18(float) 4 - 154: TypePointer Output 153(fvec4) -155(gl_FragColor): 154(ptr) Variable Output + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr) + 17: TypeFloat 32 + 18: TypePointer Function 17(float) + 19: TypeVector 17(float) 3 + 20: TypePointer Function 19(fvec3) + 21: TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr) + 27: TypeFunction 6(int) + 38: 6(int) Constant 64 + 43: 6(int) Constant 1024 + 61: 17(float) Constant 1077936128 + 65: 17(float) Constant 1084227584 + 71: TypePointer UniformConstant 17(float) + 72(u): 71(ptr) Variable UniformConstant + 74: 17(float) Constant 1078774989 + 75: TypeBool + 80: 6(int) Constant 1000000 + 82: 6(int) Constant 2000000 + 85: 6(int) Constant 2 + 86: TypeVector 6(int) 4 + 87(s): TypeStruct 86(ivec4) + 88: TypePointer Function 87(s) + 90: 6(int) Constant 0 + 91: 6(int) Constant 32 + 92: TypePointer Function 86(ivec4) + 97: 6(int) Constant 1 + 101: 6(int) Constant 8 + 116: 6(int) Constant 128 + 126: TypePointer PrivateGlobal 6(int) + 127(tempReturn): 126(ptr) Variable PrivateGlobal + 128: 17(float) Constant 1082130432 + 129: 17(float) Constant 1065353216 + 130: 17(float) Constant 1073741824 + 131: 19(fvec3) ConstantComposite 129 130 61 + 152: TypeVector 17(float) 4 + 153: TypePointer Output 152(fvec4) +154(gl_FragColor): 153(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 85(t): 8(ptr) Variable Function - 90(f): 89(ptr) Variable Function - 97(color): 8(ptr) Variable Function - 103(e): 8(ptr) Variable Function - 104(param): 8(ptr) Variable Function - 105(param): 8(ptr) Variable Function - 106(param): 8(ptr) Variable Function - 107(param): 8(ptr) Variable Function - 126(ret): 19(ptr) Variable Function - 133(tempArg): 8(ptr) Variable Function - 134(param): 19(ptr) Variable Function - 135(param): 21(ptr) Variable Function - 136(param): 8(ptr) Variable Function - 139(arg): 19(ptr) Variable Function - Store 85(t) 86 - 94: 93(ptr) AccessChain 90(f) 91 - 95: 87(ivec4) Load 94 - 96: 87(ivec4) CompositeInsert 92 95 1 - Store 94 96 - 99: 7(int) Load 85(t) - 100: 7(int) Load 85(t) - 101: 7(int) IAdd 99 100 - Store 104(param) 98 - Store 105(param) 101 - 108: 93(ptr) AccessChain 90(f) 91 - 109: 87(ivec4) Load 108 - 110: 7(int) CompositeExtract 109 1 - Store 107(param) 110 - 111: 7(int) FunctionCall 16(foo(i1;i1;i1;i1;i1;i1;) 104(param) 86 105(param) 102 106(param) 107(param) - 112: 7(int) Load 106(param) - Store 103(e) 112 - 113: 7(int) Load 107(param) - 114: 93(ptr) AccessChain 90(f) 91 - 115: 87(ivec4) Load 114 - 116: 87(ivec4) CompositeInsert 113 115 1 - Store 114 116 - Store 97(color) 111 - 118: 7(int) Load 103(e) - 119: 93(ptr) AccessChain 90(f) 91 - 120: 87(ivec4) Load 119 - 121: 7(int) CompositeExtract 120 1 - 122: 7(int) IAdd 118 121 - 123: 7(int) IMul 117 122 - 124: 7(int) Load 97(color) - 125: 7(int) IAdd 124 123 - Store 97(color) 125 - Store 134(param) 129 - Store 135(param) 132 - 137: 7(int) FunctionCall 26(foo2(f1;vf3;i1;) 134(param) 135(param) 136(param) - 138: 7(int) Load 136(param) - Store 133(tempArg) 138 - Store 128(tempReturn) 137 - 140: 7(int) Load 133(tempArg) - 141: 18(float) ConvertSToF 140 - Store 139(arg) 141 - 142: 7(int) Load 128(tempReturn) - 143: 18(float) ConvertSToF 142 - Store 126(ret) 143 - 144: 18(float) Load 126(ret) - 145: 18(float) Load 139(arg) - 146: 18(float) FAdd 144 145 - 147: 7(int) ConvertFToS 146 - 148: 7(int) Load 97(color) - 149: 7(int) IAdd 148 147 - Store 97(color) 149 - 150: 7(int) FunctionCall 29(foo3() - 151: 7(int) Load 97(color) - 152: 7(int) IAdd 151 150 - Store 97(color) 152 - 156: 7(int) Load 97(color) - 157: 18(float) ConvertSToF 156 - 158: 153(fvec4) CompositeConstruct 157 157 157 157 - Store 155(gl_FragColor) 158 - Branch 6 - 6: Label + 84(t): 7(ptr) Variable Function + 89(f): 88(ptr) Variable Function + 96(color): 7(ptr) Variable Function + 102(e): 7(ptr) Variable Function + 103(param): 7(ptr) Variable Function + 104(param): 7(ptr) Variable Function + 105(param): 7(ptr) Variable Function + 106(param): 7(ptr) Variable Function + 125(ret): 18(ptr) Variable Function + 132(tempArg): 7(ptr) Variable Function + 133(param): 18(ptr) Variable Function + 134(param): 20(ptr) Variable Function + 135(param): 7(ptr) Variable Function + 138(arg): 18(ptr) Variable Function + Store 84(t) 85 + 93: 92(ptr) AccessChain 89(f) 90 + 94: 86(ivec4) Load 93 + 95: 86(ivec4) CompositeInsert 91 94 1 + Store 93 95 + 98: 6(int) Load 84(t) + 99: 6(int) Load 84(t) + 100: 6(int) IAdd 98 99 + Store 103(param) 97 + Store 104(param) 100 + 107: 92(ptr) AccessChain 89(f) 90 + 108: 86(ivec4) Load 107 + 109: 6(int) CompositeExtract 108 1 + Store 106(param) 109 + 110: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 103(param) 85 104(param) 101 105(param) 106(param) + 111: 6(int) Load 105(param) + Store 102(e) 111 + 112: 6(int) Load 106(param) + 113: 92(ptr) AccessChain 89(f) 90 + 114: 86(ivec4) Load 113 + 115: 86(ivec4) CompositeInsert 112 114 1 + Store 113 115 + Store 96(color) 110 + 117: 6(int) Load 102(e) + 118: 92(ptr) AccessChain 89(f) 90 + 119: 86(ivec4) Load 118 + 120: 6(int) CompositeExtract 119 1 + 121: 6(int) IAdd 117 120 + 122: 6(int) IMul 116 121 + 123: 6(int) Load 96(color) + 124: 6(int) IAdd 123 122 + Store 96(color) 124 + Store 133(param) 128 + Store 134(param) 131 + 136: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 133(param) 134(param) 135(param) + 137: 6(int) Load 135(param) + Store 132(tempArg) 137 + Store 127(tempReturn) 136 + 139: 6(int) Load 132(tempArg) + 140: 17(float) ConvertSToF 139 + Store 138(arg) 140 + 141: 6(int) Load 127(tempReturn) + 142: 17(float) ConvertSToF 141 + Store 125(ret) 142 + 143: 17(float) Load 125(ret) + 144: 17(float) Load 138(arg) + 145: 17(float) FAdd 143 144 + 146: 6(int) ConvertFToS 145 + 147: 6(int) Load 96(color) + 148: 6(int) IAdd 147 146 + Store 96(color) 148 + 149: 6(int) FunctionCall 28(foo3() + 150: 6(int) Load 96(color) + 151: 6(int) IAdd 150 149 + Store 96(color) 151 + 155: 6(int) Load 96(color) + 156: 17(float) ConvertSToF 155 + 157: 152(fvec4) CompositeConstruct 156 156 156 156 + Store 154(gl_FragColor) 157 Return FunctionEnd -16(foo(i1;i1;i1;i1;i1;i1;): 7(int) Function None 9 - 10(a): 8(ptr) FunctionParameter - 11(b): 7(int) FunctionParameter - 12(c): 8(ptr) FunctionParameter - 13(d): 7(int) FunctionParameter - 14(e): 8(ptr) FunctionParameter - 15(f): 8(ptr) FunctionParameter - 17: Label - 31(sum): 8(ptr) Variable Function - 32: 7(int) Load 10(a) - 33: 7(int) IAdd 32 11(b) - 34: 7(int) Load 12(c) - 35: 7(int) IAdd 33 34 - 36: 7(int) IAdd 35 13(d) - 37: 7(int) Load 15(f) - 38: 7(int) IAdd 36 37 - Store 31(sum) 38 - 40: 7(int) Load 10(a) - 41: 7(int) IMul 40 39 - Store 10(a) 41 - 42: 7(int) Load 12(c) - 43: 7(int) IMul 42 39 - Store 12(c) 43 - Store 14(e) 44 - 45: 7(int) Load 15(f) - 46: 7(int) IMul 45 39 - Store 15(f) 46 - 47: 7(int) Load 10(a) - 48: 7(int) IMul 39 11(b) - 49: 7(int) IAdd 47 48 - 50: 7(int) Load 12(c) - 51: 7(int) IAdd 49 50 - 52: 7(int) IMul 39 13(d) - 53: 7(int) IAdd 51 52 - 54: 7(int) Load 14(e) - 55: 7(int) IAdd 53 54 - 56: 7(int) Load 15(f) - 57: 7(int) IAdd 55 56 - 58: 7(int) Load 31(sum) - 59: 7(int) IAdd 58 57 - Store 31(sum) 59 - 60: 7(int) Load 31(sum) - ReturnValue 60 +15(foo(i1;i1;i1;i1;i1;i1;): 6(int) Function None 8 + 9(a): 7(ptr) FunctionParameter + 10(b): 6(int) FunctionParameter + 11(c): 7(ptr) FunctionParameter + 12(d): 6(int) FunctionParameter + 13(e): 7(ptr) FunctionParameter + 14(f): 7(ptr) FunctionParameter + 16: Label + 30(sum): 7(ptr) Variable Function + 31: 6(int) Load 9(a) + 32: 6(int) IAdd 31 10(b) + 33: 6(int) Load 11(c) + 34: 6(int) IAdd 32 33 + 35: 6(int) IAdd 34 12(d) + 36: 6(int) Load 14(f) + 37: 6(int) IAdd 35 36 + Store 30(sum) 37 + 39: 6(int) Load 9(a) + 40: 6(int) IMul 39 38 + Store 9(a) 40 + 41: 6(int) Load 11(c) + 42: 6(int) IMul 41 38 + Store 11(c) 42 + Store 13(e) 43 + 44: 6(int) Load 14(f) + 45: 6(int) IMul 44 38 + Store 14(f) 45 + 46: 6(int) Load 9(a) + 47: 6(int) IMul 38 10(b) + 48: 6(int) IAdd 46 47 + 49: 6(int) Load 11(c) + 50: 6(int) IAdd 48 49 + 51: 6(int) IMul 38 12(d) + 52: 6(int) IAdd 50 51 + 53: 6(int) Load 13(e) + 54: 6(int) IAdd 52 53 + 55: 6(int) Load 14(f) + 56: 6(int) IAdd 54 55 + 57: 6(int) Load 30(sum) + 58: 6(int) IAdd 57 56 + Store 30(sum) 58 + 59: 6(int) Load 30(sum) + ReturnValue 59 FunctionEnd -26(foo2(f1;vf3;i1;): 7(int) Function None 22 - 23(a): 19(ptr) FunctionParameter - 24(b): 21(ptr) FunctionParameter - 25(r): 8(ptr) FunctionParameter - 27: Label - 63: 18(float) Load 23(a) - 64: 18(float) FMul 62 63 - 65: 7(int) ConvertFToS 64 - Store 25(r) 65 - 67: 20(fvec3) Load 24(b) - 68: 18(float) CompositeExtract 67 1 - 69: 18(float) FMul 66 68 - 70: 7(int) ConvertFToS 69 - ReturnValue 70 +25(foo2(f1;vf3;i1;): 6(int) Function None 21 + 22(a): 18(ptr) FunctionParameter + 23(b): 20(ptr) FunctionParameter + 24(r): 7(ptr) FunctionParameter + 26: Label + 62: 17(float) Load 22(a) + 63: 17(float) FMul 61 62 + 64: 6(int) ConvertFToS 63 + Store 24(r) 64 + 66: 19(fvec3) Load 23(b) + 67: 17(float) CompositeExtract 66 1 + 68: 17(float) FMul 65 67 + 69: 6(int) ConvertFToS 68 + ReturnValue 69 FunctionEnd - 29(foo3(): 7(int) Function None 28 - 30: Label - 74: 18(float) Load 73(u) - 77: 76(bool) FOrdGreaterThan 74 75 - SelectionMerge 79 None - BranchConditional 77 78 79 - 78: Label + 28(foo3(): 6(int) Function None 27 + 29: Label + 73: 17(float) Load 72(u) + 76: 75(bool) FOrdGreaterThan 73 74 + SelectionMerge 78 None + BranchConditional 76 77 78 + 77: Label Kill - 79: Label - ReturnValue 83 + 78: Label + ReturnValue 82 FunctionEnd diff --git a/Test/baseResults/spv.length.frag.out b/Test/baseResults/spv.length.frag.out index b56e804d..4db21728 100755 --- a/Test/baseResults/spv.length.frag.out +++ b/Test/baseResults/spv.length.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 34 +// Id's are bound by 33 Source GLSL 120 Capability Shader @@ -14,47 +14,45 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "t" - Name 15 "v" - Name 27 "gl_FragColor" - Name 33 "u" - Decorate 15(v) Smooth - Decorate 27(gl_FragColor) BuiltIn FragColor - Decorate 33(u) NoStaticUse + Name 9 "t" + Name 14 "v" + Name 26 "gl_FragColor" + Name 32 "u" + Decorate 14(v) Smooth + Decorate 26(gl_FragColor) BuiltIn FragColor + Decorate 32(u) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 2 - 9: TypePointer Function 8(fvec2) - 11: TypeInt 32 0 - 12: 11(int) Constant 2 - 13: TypeArray 8(fvec2) 12 - 14: TypePointer Input 13 - 15(v): 14(ptr) Variable Input - 16: TypeInt 32 1 - 17: 16(int) Constant 0 - 18: TypePointer Input 8(fvec2) - 21: 16(int) Constant 1 - 25: TypeVector 7(float) 4 - 26: TypePointer Output 25(fvec4) -27(gl_FragColor): 26(ptr) Variable Output - 28: 7(float) Constant 1106247680 - 29: 25(fvec4) ConstantComposite 28 28 28 28 - 30: 11(int) Constant 3 - 31: TypeArray 25(fvec4) 30 - 32: TypePointer UniformConstant 31 - 33(u): 32(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 10: TypeInt 32 0 + 11: 10(int) Constant 2 + 12: TypeArray 7(fvec2) 11 + 13: TypePointer Input 12 + 14(v): 13(ptr) Variable Input + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: TypePointer Input 7(fvec2) + 20: 15(int) Constant 1 + 24: TypeVector 6(float) 4 + 25: TypePointer Output 24(fvec4) +26(gl_FragColor): 25(ptr) Variable Output + 27: 6(float) Constant 1106247680 + 28: 24(fvec4) ConstantComposite 27 27 27 27 + 29: 10(int) Constant 3 + 30: TypeArray 24(fvec4) 29 + 31: TypePointer UniformConstant 30 + 32(u): 31(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 10(t): 9(ptr) Variable Function - 19: 18(ptr) AccessChain 15(v) 17 - 20: 8(fvec2) Load 19 - 22: 18(ptr) AccessChain 15(v) 21 - 23: 8(fvec2) Load 22 - 24: 8(fvec2) FAdd 20 23 - Store 10(t) 24 - Store 27(gl_FragColor) 29 - Branch 6 - 6: Label + 9(t): 8(ptr) Variable Function + 18: 17(ptr) AccessChain 14(v) 16 + 19: 7(fvec2) Load 18 + 21: 17(ptr) AccessChain 14(v) 20 + 22: 7(fvec2) Load 21 + 23: 7(fvec2) FAdd 19 22 + Store 9(t) 23 + Store 26(gl_FragColor) 28 Return FunctionEnd diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out index 37f124ea..6be94571 100755 --- a/Test/baseResults/spv.localAggregates.frag.out +++ b/Test/baseResults/spv.localAggregates.frag.out @@ -8,7 +8,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 135 +// Id's are bound by 134 Source GLSL 130 Capability Shader @@ -17,205 +17,203 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "s1" - MemberName 9(s1) 0 "i" - MemberName 9(s1) 1 "f" - Name 11 "s2" - MemberName 11(s2) 0 "i" - MemberName 11(s2) 1 "f" - MemberName 11(s2) 2 "s1_1" - MemberName 11(s2) 3 "bleh" - Name 13 "locals2" - Name 14 "s3" - MemberName 14(s3) 0 "s2_1" - MemberName 14(s3) 1 "i" - MemberName 14(s3) 2 "f" - MemberName 14(s3) 3 "s1_1" - Name 16 "foo3" - Name 37 "localFArray" - Name 41 "coord" - Name 48 "localIArray" - Name 67 "x" - Name 69 "localArray" - Name 74 "i" - Name 81 "a" - Name 87 "condition" - Name 95 "color" - Name 105 "gl_FragColor" - Name 125 "sampler" - Name 131 "foo" - Name 132 "foo2" - Name 134 "uFloatArray" - Decorate 41(coord) Smooth - Decorate 95(color) Smooth - Decorate 105(gl_FragColor) BuiltIn FragColor - Decorate 131(foo) NoStaticUse - Decorate 132(foo2) NoStaticUse - Decorate 134(uFloatArray) NoStaticUse + Name 8 "s1" + MemberName 8(s1) 0 "i" + MemberName 8(s1) 1 "f" + Name 10 "s2" + MemberName 10(s2) 0 "i" + MemberName 10(s2) 1 "f" + MemberName 10(s2) 2 "s1_1" + MemberName 10(s2) 3 "bleh" + Name 12 "locals2" + Name 13 "s3" + MemberName 13(s3) 0 "s2_1" + MemberName 13(s3) 1 "i" + MemberName 13(s3) 2 "f" + MemberName 13(s3) 3 "s1_1" + Name 15 "foo3" + Name 36 "localFArray" + Name 40 "coord" + Name 47 "localIArray" + Name 66 "x" + Name 68 "localArray" + Name 73 "i" + Name 80 "a" + Name 86 "condition" + Name 94 "color" + Name 104 "gl_FragColor" + Name 124 "sampler" + Name 130 "foo" + Name 131 "foo2" + Name 133 "uFloatArray" + Decorate 40(coord) Smooth + Decorate 94(color) Smooth + Decorate 104(gl_FragColor) BuiltIn FragColor + Decorate 130(foo) NoStaticUse + Decorate 131(foo2) NoStaticUse + Decorate 133(uFloatArray) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypeFloat 32 - 9(s1): TypeStruct 7(int) 8(float) - 10: TypeVector 8(float) 4 - 11(s2): TypeStruct 7(int) 8(float) 9(s1) 10(fvec4) - 12: TypePointer Function 11(s2) - 14(s3): TypeStruct 11(s2) 7(int) 8(float) 9(s1) - 15: TypePointer UniformConstant 14(s3) - 16(foo3): 15(ptr) Variable UniformConstant - 17: 7(int) Constant 0 - 18: TypePointer UniformConstant 11(s2) - 21: TypePointer UniformConstant 7(int) - 24: TypeBool - 28: 7(int) Constant 2 - 29: 7(int) Constant 1 - 30: 8(float) Constant 1065353216 - 31: TypePointer Function 8(float) - 33: TypeInt 32 0 - 34: 33(int) Constant 16 - 35: TypeArray 8(float) 34 - 36: TypePointer Function 35 - 38: 7(int) Constant 4 - 39: TypeVector 8(float) 2 - 40: TypePointer Input 39(fvec2) - 41(coord): 40(ptr) Variable Input - 45: 33(int) Constant 8 - 46: TypeArray 7(int) 45 - 47: TypePointer Function 46 - 51: TypePointer Function 7(int) - 68: 7(int) Constant 5 - 79: 7(int) Constant 16 - 83: 8(float) Constant 0 - 87(condition): 21(ptr) Variable UniformConstant - 93: 7(int) Constant 3 - 94: TypePointer Input 10(fvec4) - 95(color): 94(ptr) Variable Input - 97: TypePointer Function 10(fvec4) - 104: TypePointer Output 10(fvec4) -105(gl_FragColor): 104(ptr) Variable Output - 122: TypeImage 8(float) 2D sampled format:Unknown - 123: TypeSampledImage 122 - 124: TypePointer UniformConstant 123 - 125(sampler): 124(ptr) Variable UniformConstant - 130: TypePointer UniformConstant 9(s1) - 131(foo): 130(ptr) Variable UniformConstant - 132(foo2): 18(ptr) Variable UniformConstant - 133: TypePointer UniformConstant 35 -134(uFloatArray): 133(ptr) Variable UniformConstant + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8(s1): TypeStruct 6(int) 7(float) + 9: TypeVector 7(float) 4 + 10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4) + 11: TypePointer Function 10(s2) + 13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1) + 14: TypePointer UniformConstant 13(s3) + 15(foo3): 14(ptr) Variable UniformConstant + 16: 6(int) Constant 0 + 17: TypePointer UniformConstant 10(s2) + 20: TypePointer UniformConstant 6(int) + 23: TypeBool + 27: 6(int) Constant 2 + 28: 6(int) Constant 1 + 29: 7(float) Constant 1065353216 + 30: TypePointer Function 7(float) + 32: TypeInt 32 0 + 33: 32(int) Constant 16 + 34: TypeArray 7(float) 33 + 35: TypePointer Function 34 + 37: 6(int) Constant 4 + 38: TypeVector 7(float) 2 + 39: TypePointer Input 38(fvec2) + 40(coord): 39(ptr) Variable Input + 44: 32(int) Constant 8 + 45: TypeArray 6(int) 44 + 46: TypePointer Function 45 + 50: TypePointer Function 6(int) + 67: 6(int) Constant 5 + 78: 6(int) Constant 16 + 82: 7(float) Constant 0 + 86(condition): 20(ptr) Variable UniformConstant + 92: 6(int) Constant 3 + 93: TypePointer Input 9(fvec4) + 94(color): 93(ptr) Variable Input + 96: TypePointer Function 9(fvec4) + 103: TypePointer Output 9(fvec4) +104(gl_FragColor): 103(ptr) Variable Output + 121: TypeImage 7(float) 2D sampled format:Unknown + 122: TypeSampledImage 121 + 123: TypePointer UniformConstant 122 + 124(sampler): 123(ptr) Variable UniformConstant + 129: TypePointer UniformConstant 8(s1) + 130(foo): 129(ptr) Variable UniformConstant + 131(foo2): 17(ptr) Variable UniformConstant + 132: TypePointer UniformConstant 34 +133(uFloatArray): 132(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 13(locals2): 12(ptr) Variable Function - 37(localFArray): 36(ptr) Variable Function - 48(localIArray): 47(ptr) Variable Function - 67(x): 51(ptr) Variable Function - 69(localArray): 36(ptr) Variable Function - 74(i): 51(ptr) Variable Function - 81(a): 36(ptr) Variable Function - 19: 18(ptr) AccessChain 16(foo3) 17 - 20: 11(s2) Load 19 - Store 13(locals2) 20 - 22: 21(ptr) AccessChain 16(foo3) 17 17 - 23: 7(int) Load 22 - 25: 24(bool) SGreaterThan 23 17 - SelectionMerge 27 None - BranchConditional 25 26 53 - 26: Label - 32: 31(ptr) AccessChain 13(locals2) 28 29 - Store 32 30 - 42: 39(fvec2) Load 41(coord) - 43: 8(float) CompositeExtract 42 0 - 44: 31(ptr) AccessChain 37(localFArray) 38 - Store 44 43 - 49: 21(ptr) AccessChain 16(foo3) 17 17 - 50: 7(int) Load 49 - 52: 51(ptr) AccessChain 48(localIArray) 28 - Store 52 50 - Branch 27 - 53: Label - 54: 39(fvec2) Load 41(coord) - 55: 8(float) CompositeExtract 54 0 - 56: 31(ptr) AccessChain 13(locals2) 28 29 - Store 56 55 - 57: 31(ptr) AccessChain 37(localFArray) 38 - Store 57 30 - 58: 51(ptr) AccessChain 48(localIArray) 28 - Store 58 17 - Branch 27 - 27: Label - 59: 51(ptr) AccessChain 48(localIArray) 28 - 60: 7(int) Load 59 - 61: 24(bool) IEqual 60 17 - SelectionMerge 63 None - BranchConditional 61 62 63 - 62: Label - 64: 31(ptr) AccessChain 37(localFArray) 38 - 65: 8(float) Load 64 - 66: 8(float) FAdd 65 30 - Store 64 66 - Branch 63 - 63: Label - Store 67(x) 68 - 70: 7(int) Load 67(x) - 71: 39(fvec2) Load 41(coord) - 72: 8(float) CompositeExtract 71 0 - 73: 31(ptr) AccessChain 69(localArray) 70 - Store 73 72 - Store 74(i) 17 - Branch 75 + 12(locals2): 11(ptr) Variable Function + 36(localFArray): 35(ptr) Variable Function + 47(localIArray): 46(ptr) Variable Function + 66(x): 50(ptr) Variable Function + 68(localArray): 35(ptr) Variable Function + 73(i): 50(ptr) Variable Function + 80(a): 35(ptr) Variable Function + 18: 17(ptr) AccessChain 15(foo3) 16 + 19: 10(s2) Load 18 + Store 12(locals2) 19 + 21: 20(ptr) AccessChain 15(foo3) 16 16 + 22: 6(int) Load 21 + 24: 23(bool) SGreaterThan 22 16 + SelectionMerge 26 None + BranchConditional 24 25 52 + 25: Label + 31: 30(ptr) AccessChain 12(locals2) 27 28 + Store 31 29 + 41: 38(fvec2) Load 40(coord) + 42: 7(float) CompositeExtract 41 0 + 43: 30(ptr) AccessChain 36(localFArray) 37 + Store 43 42 + 48: 20(ptr) AccessChain 15(foo3) 16 16 + 49: 6(int) Load 48 + 51: 50(ptr) AccessChain 47(localIArray) 27 + Store 51 49 + Branch 26 + 52: Label + 53: 38(fvec2) Load 40(coord) + 54: 7(float) CompositeExtract 53 0 + 55: 30(ptr) AccessChain 12(locals2) 27 28 + Store 55 54 + 56: 30(ptr) AccessChain 36(localFArray) 37 + Store 56 29 + 57: 50(ptr) AccessChain 47(localIArray) 27 + Store 57 16 + Branch 26 + 26: Label + 58: 50(ptr) AccessChain 47(localIArray) 27 + 59: 6(int) Load 58 + 60: 23(bool) IEqual 59 16 + SelectionMerge 62 None + BranchConditional 60 61 62 + 61: Label + 63: 30(ptr) AccessChain 36(localFArray) 37 + 64: 7(float) Load 63 + 65: 7(float) FAdd 64 29 + Store 63 65 + Branch 62 + 62: Label + Store 66(x) 67 + 69: 6(int) Load 66(x) + 70: 38(fvec2) Load 40(coord) + 71: 7(float) CompositeExtract 70 0 + 72: 30(ptr) AccessChain 68(localArray) 69 + Store 72 71 + Store 73(i) 16 + Branch 74 + 74: Label + 77: 6(int) Load 73(i) + 79: 23(bool) SLessThan 77 78 + LoopMerge 75 None + BranchConditional 79 76 75 + 76: Label + 81: 6(int) Load 73(i) + 83: 30(ptr) AccessChain 80(a) 81 + Store 83 82 + 84: 6(int) Load 73(i) + 85: 6(int) IAdd 84 28 + Store 73(i) 85 + Branch 74 75: Label - 78: 7(int) Load 74(i) - 80: 24(bool) SLessThan 78 79 - LoopMerge 76 None - BranchConditional 80 77 76 - 77: Label - 82: 7(int) Load 74(i) - 84: 31(ptr) AccessChain 81(a) 82 - Store 84 83 - 85: 7(int) Load 74(i) - 86: 7(int) IAdd 85 29 - Store 74(i) 86 - Branch 75 - 76: Label - 88: 7(int) Load 87(condition) - 89: 24(bool) IEqual 88 29 - SelectionMerge 91 None - BranchConditional 89 90 91 - 90: Label - 92: 35 Load 69(localArray) - Store 81(a) 92 - Branch 91 - 91: Label - 96: 10(fvec4) Load 95(color) - 98: 97(ptr) AccessChain 13(locals2) 93 - Store 98 96 - 99: 39(fvec2) Load 41(coord) - 100: 8(float) CompositeExtract 99 1 - 101: 97(ptr) AccessChain 13(locals2) 93 - 102: 10(fvec4) Load 101 - 103: 10(fvec4) CompositeInsert 100 102 2 - Store 101 103 - 106: 97(ptr) AccessChain 13(locals2) 93 - 107: 10(fvec4) Load 106 - 108: 31(ptr) AccessChain 37(localFArray) 38 - 109: 8(float) Load 108 - 110: 31(ptr) AccessChain 13(locals2) 28 29 - 111: 8(float) Load 110 - 112: 8(float) FAdd 109 111 - 113: 7(int) Load 67(x) - 114: 31(ptr) AccessChain 69(localArray) 113 - 115: 8(float) Load 114 - 116: 8(float) FAdd 112 115 - 117: 7(int) Load 67(x) - 118: 31(ptr) AccessChain 81(a) 117 - 119: 8(float) Load 118 - 120: 8(float) FAdd 116 119 - 121: 10(fvec4) VectorTimesScalar 107 120 - 126: 123 Load 125(sampler) - 127: 39(fvec2) Load 41(coord) - 128: 10(fvec4) ImageSampleImplicitLod 126 127 - 129: 10(fvec4) FMul 121 128 - Store 105(gl_FragColor) 129 - Branch 6 - 6: Label + 87: 6(int) Load 86(condition) + 88: 23(bool) IEqual 87 28 + SelectionMerge 90 None + BranchConditional 88 89 90 + 89: Label + 91: 34 Load 68(localArray) + Store 80(a) 91 + Branch 90 + 90: Label + 95: 9(fvec4) Load 94(color) + 97: 96(ptr) AccessChain 12(locals2) 92 + Store 97 95 + 98: 38(fvec2) Load 40(coord) + 99: 7(float) CompositeExtract 98 1 + 100: 96(ptr) AccessChain 12(locals2) 92 + 101: 9(fvec4) Load 100 + 102: 9(fvec4) CompositeInsert 99 101 2 + Store 100 102 + 105: 96(ptr) AccessChain 12(locals2) 92 + 106: 9(fvec4) Load 105 + 107: 30(ptr) AccessChain 36(localFArray) 37 + 108: 7(float) Load 107 + 109: 30(ptr) AccessChain 12(locals2) 27 28 + 110: 7(float) Load 109 + 111: 7(float) FAdd 108 110 + 112: 6(int) Load 66(x) + 113: 30(ptr) AccessChain 68(localArray) 112 + 114: 7(float) Load 113 + 115: 7(float) FAdd 111 114 + 116: 6(int) Load 66(x) + 117: 30(ptr) AccessChain 80(a) 116 + 118: 7(float) Load 117 + 119: 7(float) FAdd 115 118 + 120: 9(fvec4) VectorTimesScalar 106 119 + 125: 122 Load 124(sampler) + 126: 38(fvec2) Load 40(coord) + 127: 9(fvec4) ImageSampleImplicitLod 125 126 + 128: 9(fvec4) FMul 120 127 + Store 104(gl_FragColor) 128 Return FunctionEnd diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out index 8cc3a1c9..6dc80cb2 100755 --- a/Test/baseResults/spv.loops.frag.out +++ b/Test/baseResults/spv.loops.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 750 +// Id's are bound by 749 Source GLSL 130 Capability Shader @@ -16,1129 +16,1127 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "color" - Name 12 "BaseColor" - Name 48 "d" - Name 52 "bigColor" - Name 63 "bigColor1_1" - Name 93 "d2" - Name 98 "d3" - Name 102 "bigColor1_2" - Name 113 "bigColor1_3" - Name 119 "d4" - Name 130 "i" - Name 137 "Count" - Name 140 "bigColor2" - Name 158 "bigColor3" - Name 163 "i" - Name 178 "i" - Name 216 "i" - Name 241 "i" - Name 269 "i" - Name 306 "bigColor4" - Name 344 "d5" - Name 348 "bigColor5" - Name 366 "d6" - Name 378 "bigColor6" - Name 413 "d7" - Name 447 "bigColor7" - Name 472 "d8" - Name 518 "d9" - Name 550 "d10" - Name 560 "d11" - Name 572 "d12" - Name 600 "bigColor8" - Name 628 "gl_FragColor" - Name 635 "d14" - Name 640 "d15" - Name 658 "d16" - Name 696 "d17" - Name 702 "d18" - Name 733 "d13" - Name 734 "d19" - Name 735 "d20" - Name 736 "d21" - Name 737 "d22" - Name 738 "d23" - Name 739 "d24" - Name 740 "d25" - Name 741 "d26" - Name 742 "d27" - Name 743 "d28" - Name 744 "d29" - Name 745 "d30" - Name 746 "d31" - Name 747 "d32" - Name 748 "d33" - Name 749 "d34" - Decorate 12(BaseColor) Smooth - Decorate 628(gl_FragColor) BuiltIn FragColor - Decorate 733(d13) NoStaticUse - Decorate 734(d19) NoStaticUse - Decorate 735(d20) NoStaticUse - Decorate 736(d21) NoStaticUse - Decorate 737(d22) NoStaticUse - Decorate 738(d23) NoStaticUse - Decorate 739(d24) NoStaticUse - Decorate 740(d25) NoStaticUse - Decorate 741(d26) NoStaticUse - Decorate 742(d27) NoStaticUse - Decorate 743(d28) NoStaticUse - Decorate 744(d29) NoStaticUse - Decorate 745(d30) NoStaticUse - Decorate 746(d31) NoStaticUse - Decorate 747(d32) NoStaticUse - Decorate 748(d33) NoStaticUse - Decorate 749(d34) NoStaticUse + Name 9 "color" + Name 11 "BaseColor" + Name 47 "d" + Name 51 "bigColor" + Name 62 "bigColor1_1" + Name 92 "d2" + Name 97 "d3" + Name 101 "bigColor1_2" + Name 112 "bigColor1_3" + Name 118 "d4" + Name 129 "i" + Name 136 "Count" + Name 139 "bigColor2" + Name 157 "bigColor3" + Name 162 "i" + Name 177 "i" + Name 215 "i" + Name 240 "i" + Name 268 "i" + Name 305 "bigColor4" + Name 343 "d5" + Name 347 "bigColor5" + Name 365 "d6" + Name 377 "bigColor6" + Name 412 "d7" + Name 446 "bigColor7" + Name 471 "d8" + Name 517 "d9" + Name 549 "d10" + Name 559 "d11" + Name 571 "d12" + Name 599 "bigColor8" + Name 627 "gl_FragColor" + Name 634 "d14" + Name 639 "d15" + Name 657 "d16" + Name 695 "d17" + Name 701 "d18" + Name 732 "d13" + Name 733 "d19" + Name 734 "d20" + Name 735 "d21" + Name 736 "d22" + Name 737 "d23" + Name 738 "d24" + Name 739 "d25" + Name 740 "d26" + Name 741 "d27" + Name 742 "d28" + Name 743 "d29" + Name 744 "d30" + Name 745 "d31" + Name 746 "d32" + Name 747 "d33" + Name 748 "d34" + Decorate 11(BaseColor) Smooth + Decorate 627(gl_FragColor) BuiltIn FragColor + Decorate 732(d13) NoStaticUse + Decorate 733(d19) NoStaticUse + Decorate 734(d20) NoStaticUse + Decorate 735(d21) NoStaticUse + Decorate 736(d22) NoStaticUse + Decorate 737(d23) NoStaticUse + Decorate 738(d24) NoStaticUse + Decorate 739(d25) NoStaticUse + Decorate 740(d26) NoStaticUse + Decorate 741(d27) NoStaticUse + Decorate 742(d28) NoStaticUse + Decorate 743(d29) NoStaticUse + Decorate 744(d30) NoStaticUse + Decorate 745(d31) NoStaticUse + Decorate 746(d32) NoStaticUse + Decorate 747(d33) NoStaticUse + Decorate 748(d34) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypePointer Input 8(fvec4) - 12(BaseColor): 11(ptr) Variable Input - 17: TypeBool - 18: 17(bool) ConstantTrue - 21: 7(float) Constant 1051260355 - 25: 8(fvec4) ConstantComposite 21 21 21 21 - 31: 7(float) Constant 1059648963 - 35: 8(fvec4) ConstantComposite 31 31 31 31 - 47: TypePointer UniformConstant 7(float) - 48(d): 47(ptr) Variable UniformConstant - 51: TypePointer UniformConstant 8(fvec4) - 52(bigColor): 51(ptr) Variable UniformConstant - 63(bigColor1_1): 51(ptr) Variable UniformConstant - 82: 7(float) Constant 1109917696 - 85: 7(float) Constant 1065353216 - 93(d2): 47(ptr) Variable UniformConstant - 98(d3): 47(ptr) Variable UniformConstant -102(bigColor1_2): 51(ptr) Variable UniformConstant -113(bigColor1_3): 51(ptr) Variable UniformConstant - 119(d4): 47(ptr) Variable UniformConstant - 128: TypeInt 32 1 - 129: TypePointer Function 128(int) - 131: 128(int) Constant 0 - 136: TypePointer UniformConstant 128(int) - 137(Count): 136(ptr) Variable UniformConstant - 140(bigColor2): 51(ptr) Variable UniformConstant - 145: 128(int) Constant 1 - 158(bigColor3): 51(ptr) Variable UniformConstant - 162: 17(bool) ConstantFalse - 168: 128(int) Constant 42 - 183: 128(int) Constant 100 - 187: 7(float) Constant 1101004800 - 221: 128(int) Constant 120 - 306(bigColor4): 51(ptr) Variable UniformConstant - 344(d5): 47(ptr) Variable UniformConstant - 348(bigColor5): 51(ptr) Variable UniformConstant - 366(d6): 47(ptr) Variable UniformConstant - 378(bigColor6): 51(ptr) Variable UniformConstant - 413(d7): 47(ptr) Variable UniformConstant - 442: 7(float) Constant 0 - 447(bigColor7): 51(ptr) Variable UniformConstant - 472(d8): 47(ptr) Variable UniformConstant - 494: 7(float) Constant 1073741824 - 518(d9): 47(ptr) Variable UniformConstant - 534: 7(float) Constant 1084227584 - 550(d10): 47(ptr) Variable UniformConstant - 560(d11): 47(ptr) Variable UniformConstant - 572(d12): 47(ptr) Variable UniformConstant - 598: 7(float) Constant 1092616192 - 600(bigColor8): 51(ptr) Variable UniformConstant - 627: TypePointer Output 8(fvec4) -628(gl_FragColor): 627(ptr) Variable Output - 635(d14): 47(ptr) Variable UniformConstant - 640(d15): 47(ptr) Variable UniformConstant - 658(d16): 47(ptr) Variable UniformConstant - 696(d17): 47(ptr) Variable UniformConstant - 702(d18): 47(ptr) Variable UniformConstant - 733(d13): 47(ptr) Variable UniformConstant - 734(d19): 47(ptr) Variable UniformConstant - 735(d20): 47(ptr) Variable UniformConstant - 736(d21): 47(ptr) Variable UniformConstant - 737(d22): 47(ptr) Variable UniformConstant - 738(d23): 47(ptr) Variable UniformConstant - 739(d24): 47(ptr) Variable UniformConstant - 740(d25): 47(ptr) Variable UniformConstant - 741(d26): 47(ptr) Variable UniformConstant - 742(d27): 47(ptr) Variable UniformConstant - 743(d28): 47(ptr) Variable UniformConstant - 744(d29): 47(ptr) Variable UniformConstant - 745(d30): 47(ptr) Variable UniformConstant - 746(d31): 47(ptr) Variable UniformConstant - 747(d32): 47(ptr) Variable UniformConstant - 748(d33): 47(ptr) Variable UniformConstant - 749(d34): 47(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 16: TypeBool + 17: 16(bool) ConstantTrue + 20: 6(float) Constant 1051260355 + 24: 7(fvec4) ConstantComposite 20 20 20 20 + 30: 6(float) Constant 1059648963 + 34: 7(fvec4) ConstantComposite 30 30 30 30 + 46: TypePointer UniformConstant 6(float) + 47(d): 46(ptr) Variable UniformConstant + 50: TypePointer UniformConstant 7(fvec4) + 51(bigColor): 50(ptr) Variable UniformConstant + 62(bigColor1_1): 50(ptr) Variable UniformConstant + 81: 6(float) Constant 1109917696 + 84: 6(float) Constant 1065353216 + 92(d2): 46(ptr) Variable UniformConstant + 97(d3): 46(ptr) Variable UniformConstant +101(bigColor1_2): 50(ptr) Variable UniformConstant +112(bigColor1_3): 50(ptr) Variable UniformConstant + 118(d4): 46(ptr) Variable UniformConstant + 127: TypeInt 32 1 + 128: TypePointer Function 127(int) + 130: 127(int) Constant 0 + 135: TypePointer UniformConstant 127(int) + 136(Count): 135(ptr) Variable UniformConstant + 139(bigColor2): 50(ptr) Variable UniformConstant + 144: 127(int) Constant 1 + 157(bigColor3): 50(ptr) Variable UniformConstant + 161: 16(bool) ConstantFalse + 167: 127(int) Constant 42 + 182: 127(int) Constant 100 + 186: 6(float) Constant 1101004800 + 220: 127(int) Constant 120 + 305(bigColor4): 50(ptr) Variable UniformConstant + 343(d5): 46(ptr) Variable UniformConstant + 347(bigColor5): 50(ptr) Variable UniformConstant + 365(d6): 46(ptr) Variable UniformConstant + 377(bigColor6): 50(ptr) Variable UniformConstant + 412(d7): 46(ptr) Variable UniformConstant + 441: 6(float) Constant 0 + 446(bigColor7): 50(ptr) Variable UniformConstant + 471(d8): 46(ptr) Variable UniformConstant + 493: 6(float) Constant 1073741824 + 517(d9): 46(ptr) Variable UniformConstant + 533: 6(float) Constant 1084227584 + 549(d10): 46(ptr) Variable UniformConstant + 559(d11): 46(ptr) Variable UniformConstant + 571(d12): 46(ptr) Variable UniformConstant + 597: 6(float) Constant 1092616192 + 599(bigColor8): 50(ptr) Variable UniformConstant + 626: TypePointer Output 7(fvec4) +627(gl_FragColor): 626(ptr) Variable Output + 634(d14): 46(ptr) Variable UniformConstant + 639(d15): 46(ptr) Variable UniformConstant + 657(d16): 46(ptr) Variable UniformConstant + 695(d17): 46(ptr) Variable UniformConstant + 701(d18): 46(ptr) Variable UniformConstant + 732(d13): 46(ptr) Variable UniformConstant + 733(d19): 46(ptr) Variable UniformConstant + 734(d20): 46(ptr) Variable UniformConstant + 735(d21): 46(ptr) Variable UniformConstant + 736(d22): 46(ptr) Variable UniformConstant + 737(d23): 46(ptr) Variable UniformConstant + 738(d24): 46(ptr) Variable UniformConstant + 739(d25): 46(ptr) Variable UniformConstant + 740(d26): 46(ptr) Variable UniformConstant + 741(d27): 46(ptr) Variable UniformConstant + 742(d28): 46(ptr) Variable UniformConstant + 743(d29): 46(ptr) Variable UniformConstant + 744(d30): 46(ptr) Variable UniformConstant + 745(d31): 46(ptr) Variable UniformConstant + 746(d32): 46(ptr) Variable UniformConstant + 747(d33): 46(ptr) Variable UniformConstant + 748(d34): 46(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 10(color): 9(ptr) Variable Function - 130(i): 129(ptr) Variable Function - 163(i): 129(ptr) Variable Function - 178(i): 129(ptr) Variable Function - 216(i): 129(ptr) Variable Function - 241(i): 129(ptr) Variable Function - 269(i): 129(ptr) Variable Function - 13: 8(fvec4) Load 12(BaseColor) - Store 10(color) 13 - Branch 14 + 9(color): 8(ptr) Variable Function + 129(i): 128(ptr) Variable Function + 162(i): 128(ptr) Variable Function + 177(i): 128(ptr) Variable Function + 215(i): 128(ptr) Variable Function + 240(i): 128(ptr) Variable Function + 268(i): 128(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + LoopMerge 14 None + BranchConditional 17 15 14 + 15: Label + 18: 7(fvec4) Load 9(color) + 19: 6(float) CompositeExtract 18 0 + 21: 16(bool) FOrdLessThan 19 20 + SelectionMerge 23 None + BranchConditional 21 22 23 + 22: Label + 25: 7(fvec4) Load 9(color) + 26: 7(fvec4) FAdd 25 24 + Store 9(color) 26 + Branch 14 + 23: Label + 28: 7(fvec4) Load 9(color) + 29: 6(float) CompositeExtract 28 0 + 31: 16(bool) FOrdLessThan 29 30 + SelectionMerge 33 None + BranchConditional 31 32 33 + 32: Label + 35: 7(fvec4) Load 9(color) + 36: 7(fvec4) FAdd 35 34 + Store 9(color) 36 + Branch 14 + 33: Label + 38: 7(fvec4) Load 9(color) + 39: 7(fvec4) FAdd 38 24 + Store 9(color) 39 + Branch 14 14: Label - LoopMerge 15 None - BranchConditional 18 16 15 - 16: Label - 19: 8(fvec4) Load 10(color) - 20: 7(float) CompositeExtract 19 0 - 22: 17(bool) FOrdLessThan 20 21 - SelectionMerge 24 None - BranchConditional 22 23 24 - 23: Label - 26: 8(fvec4) Load 10(color) - 27: 8(fvec4) FAdd 26 25 - Store 10(color) 27 - Branch 15 - 24: Label - 29: 8(fvec4) Load 10(color) - 30: 7(float) CompositeExtract 29 0 - 32: 17(bool) FOrdLessThan 30 31 - SelectionMerge 34 None - BranchConditional 32 33 34 - 33: Label - 36: 8(fvec4) Load 10(color) - 37: 8(fvec4) FAdd 36 35 - Store 10(color) 37 - Branch 15 - 34: Label - 39: 8(fvec4) Load 10(color) - 40: 8(fvec4) FAdd 39 25 - Store 10(color) 40 - Branch 15 - 15: Label - Branch 42 + Branch 41 + 41: Label + 44: 7(fvec4) Load 9(color) + 45: 6(float) CompositeExtract 44 0 + 48: 6(float) Load 47(d) + 49: 16(bool) FOrdLessThan 45 48 + LoopMerge 42 None + BranchConditional 49 43 42 + 43: Label + 52: 7(fvec4) Load 51(bigColor) + 53: 7(fvec4) Load 9(color) + 54: 7(fvec4) FAdd 53 52 + Store 9(color) 54 + Branch 41 42: Label - 45: 8(fvec4) Load 10(color) - 46: 7(float) CompositeExtract 45 0 - 49: 7(float) Load 48(d) - 50: 17(bool) FOrdLessThan 46 49 - LoopMerge 43 None - BranchConditional 50 44 43 - 44: Label - 53: 8(fvec4) Load 52(bigColor) - 54: 8(fvec4) Load 10(color) - 55: 8(fvec4) FAdd 54 53 - Store 10(color) 55 - Branch 42 - 43: Label - Branch 56 + Branch 55 + 55: Label + 58: 7(fvec4) Load 9(color) + 59: 6(float) CompositeExtract 58 2 + 60: 6(float) Load 47(d) + 61: 16(bool) FOrdLessThan 59 60 + LoopMerge 56 None + BranchConditional 61 57 56 + 57: Label + 63: 7(fvec4) Load 62(bigColor1_1) + 64: 7(fvec4) Load 9(color) + 65: 7(fvec4) FAdd 64 63 + Store 9(color) 65 + 66: 7(fvec4) Load 9(color) + 67: 6(float) CompositeExtract 66 3 + 68: 6(float) Load 47(d) + 69: 16(bool) FOrdLessThan 67 68 + SelectionMerge 71 None + BranchConditional 69 70 71 + 70: Label + Branch 55 + 71: Label + 73: 7(fvec4) Load 62(bigColor1_1) + 74: 7(fvec4) Load 9(color) + 75: 7(fvec4) FAdd 74 73 + Store 9(color) 75 + Branch 55 56: Label - 59: 8(fvec4) Load 10(color) - 60: 7(float) CompositeExtract 59 2 - 61: 7(float) Load 48(d) - 62: 17(bool) FOrdLessThan 60 61 - LoopMerge 57 None - BranchConditional 62 58 57 - 58: Label - 64: 8(fvec4) Load 63(bigColor1_1) - 65: 8(fvec4) Load 10(color) - 66: 8(fvec4) FAdd 65 64 - Store 10(color) 66 - 67: 8(fvec4) Load 10(color) - 68: 7(float) CompositeExtract 67 3 - 69: 7(float) Load 48(d) - 70: 17(bool) FOrdLessThan 68 69 - SelectionMerge 72 None - BranchConditional 70 71 72 - 71: Label - Branch 56 - 72: Label - 74: 8(fvec4) Load 63(bigColor1_1) - 75: 8(fvec4) Load 10(color) - 76: 8(fvec4) FAdd 75 74 - Store 10(color) 76 - Branch 56 - 57: Label - Branch 77 + Branch 76 + 76: Label + 79: 7(fvec4) Load 9(color) + 80: 6(float) CompositeExtract 79 0 + 82: 16(bool) FOrdLessThan 80 81 + LoopMerge 77 None + BranchConditional 82 78 77 + 78: Label + 83: 7(fvec4) Load 9(color) + 85: 7(fvec4) CompositeConstruct 84 84 84 84 + 86: 7(fvec4) FAdd 83 85 + Store 9(color) 86 + Branch 76 77: Label - 80: 8(fvec4) Load 10(color) - 81: 7(float) CompositeExtract 80 0 - 83: 17(bool) FOrdLessThan 81 82 - LoopMerge 78 None - BranchConditional 83 79 78 - 79: Label - 84: 8(fvec4) Load 10(color) - 86: 8(fvec4) CompositeConstruct 85 85 85 85 - 87: 8(fvec4) FAdd 84 86 - Store 10(color) 87 - Branch 77 - 78: Label - Branch 88 + Branch 87 + 87: Label + 90: 7(fvec4) Load 9(color) + 91: 6(float) CompositeExtract 90 3 + 93: 6(float) Load 92(d2) + 94: 16(bool) FOrdLessThan 91 93 + 95: 7(fvec4) Load 9(color) + 96: 6(float) CompositeExtract 95 1 + 98: 6(float) Load 97(d3) + 99: 16(bool) FOrdLessThan 96 98 + 100: 16(bool) LogicalAnd 94 99 + LoopMerge 88 None + BranchConditional 100 89 88 + 89: Label + 102: 7(fvec4) Load 101(bigColor1_2) + 103: 7(fvec4) Load 9(color) + 104: 7(fvec4) FAdd 103 102 + Store 9(color) 104 + Branch 87 88: Label - 91: 8(fvec4) Load 10(color) - 92: 7(float) CompositeExtract 91 3 - 94: 7(float) Load 93(d2) - 95: 17(bool) FOrdLessThan 92 94 - 96: 8(fvec4) Load 10(color) - 97: 7(float) CompositeExtract 96 1 - 99: 7(float) Load 98(d3) - 100: 17(bool) FOrdLessThan 97 99 - 101: 17(bool) LogicalAnd 95 100 - LoopMerge 89 None - BranchConditional 101 90 89 - 90: Label - 103: 8(fvec4) Load 102(bigColor1_2) - 104: 8(fvec4) Load 10(color) - 105: 8(fvec4) FAdd 104 103 - Store 10(color) 105 - Branch 88 - 89: Label - Branch 106 + Branch 105 + 105: Label + 108: 7(fvec4) Load 9(color) + 109: 6(float) CompositeExtract 108 2 + 110: 6(float) Load 97(d3) + 111: 16(bool) FOrdLessThan 109 110 + LoopMerge 106 None + BranchConditional 111 107 106 + 107: Label + 113: 7(fvec4) Load 112(bigColor1_3) + 114: 7(fvec4) Load 9(color) + 115: 7(fvec4) FAdd 114 113 + Store 9(color) 115 + 116: 7(fvec4) Load 9(color) + 117: 6(float) CompositeExtract 116 1 + 119: 6(float) Load 118(d4) + 120: 16(bool) FOrdLessThan 117 119 + SelectionMerge 122 None + BranchConditional 120 121 122 + 121: Label + Branch 106 + 122: Label + 124: 7(fvec4) Load 112(bigColor1_3) + 125: 7(fvec4) Load 9(color) + 126: 7(fvec4) FAdd 125 124 + Store 9(color) 126 + Branch 105 106: Label - 109: 8(fvec4) Load 10(color) - 110: 7(float) CompositeExtract 109 2 - 111: 7(float) Load 98(d3) - 112: 17(bool) FOrdLessThan 110 111 - LoopMerge 107 None - BranchConditional 112 108 107 - 108: Label - 114: 8(fvec4) Load 113(bigColor1_3) - 115: 8(fvec4) Load 10(color) - 116: 8(fvec4) FAdd 115 114 - Store 10(color) 116 - 117: 8(fvec4) Load 10(color) - 118: 7(float) CompositeExtract 117 1 - 120: 7(float) Load 119(d4) - 121: 17(bool) FOrdLessThan 118 120 - SelectionMerge 123 None - BranchConditional 121 122 123 - 122: Label - Branch 107 - 123: Label - 125: 8(fvec4) Load 113(bigColor1_3) - 126: 8(fvec4) Load 10(color) - 127: 8(fvec4) FAdd 126 125 - Store 10(color) 127 - Branch 106 - 107: Label - Store 130(i) 131 - Branch 132 + Store 129(i) 130 + Branch 131 + 131: Label + 134: 127(int) Load 129(i) + 137: 127(int) Load 136(Count) + 138: 16(bool) SLessThan 134 137 + LoopMerge 132 None + BranchConditional 138 133 132 + 133: Label + 140: 7(fvec4) Load 139(bigColor2) + 141: 7(fvec4) Load 9(color) + 142: 7(fvec4) FAdd 141 140 + Store 9(color) 142 + 143: 127(int) Load 129(i) + 145: 127(int) IAdd 143 144 + Store 129(i) 145 + Branch 131 132: Label - 135: 128(int) Load 130(i) - 138: 128(int) Load 137(Count) - 139: 17(bool) SLessThan 135 138 - LoopMerge 133 None - BranchConditional 139 134 133 - 134: Label - 141: 8(fvec4) Load 140(bigColor2) - 142: 8(fvec4) Load 10(color) - 143: 8(fvec4) FAdd 142 141 - Store 10(color) 143 - 144: 128(int) Load 130(i) - 146: 128(int) IAdd 144 145 - Store 130(i) 146 - Branch 132 - 133: Label - Branch 147 - 147: Label - 150: 17(bool) Phi 18 133 162 149 - LoopMerge 148 None - Branch 151 - 151: Label - SelectionMerge 149 None - BranchConditional 150 149 152 - 152: Label - 153: 8(fvec4) Load 10(color) - 154: 7(float) CompositeExtract 153 0 - 155: 7(float) Load 93(d2) - 156: 17(bool) FOrdLessThan 154 155 - SelectionMerge 157 None - BranchConditional 156 157 148 - 157: Label - Branch 149 - 149: Label - 159: 8(fvec4) Load 158(bigColor3) - 160: 8(fvec4) Load 10(color) - 161: 8(fvec4) FAdd 160 159 - Store 10(color) 161 - Branch 147 + Branch 146 + 146: Label + 149: 16(bool) Phi 17 132 161 148 + LoopMerge 147 None + Branch 150 + 150: Label + SelectionMerge 148 None + BranchConditional 149 148 151 + 151: Label + 152: 7(fvec4) Load 9(color) + 153: 6(float) CompositeExtract 152 0 + 154: 6(float) Load 92(d2) + 155: 16(bool) FOrdLessThan 153 154 + SelectionMerge 156 None + BranchConditional 155 156 147 + 156: Label + Branch 148 148: Label - Store 163(i) 131 - Branch 164 + 158: 7(fvec4) Load 157(bigColor3) + 159: 7(fvec4) Load 9(color) + 160: 7(fvec4) FAdd 159 158 + Store 9(color) 160 + Branch 146 + 147: Label + Store 162(i) 130 + Branch 163 + 163: Label + 166: 127(int) Load 162(i) + 168: 16(bool) SLessThan 166 167 + LoopMerge 164 None + BranchConditional 168 165 164 + 165: Label + 169: 6(float) Load 97(d3) + 170: 7(fvec4) Load 9(color) + 171: 6(float) CompositeExtract 170 2 + 172: 6(float) FAdd 171 169 + 173: 7(fvec4) Load 9(color) + 174: 7(fvec4) CompositeInsert 172 173 2 + Store 9(color) 174 + 175: 127(int) Load 162(i) + 176: 127(int) IAdd 175 144 + Store 162(i) 176 + Branch 163 164: Label - 167: 128(int) Load 163(i) - 169: 17(bool) SLessThan 167 168 - LoopMerge 165 None - BranchConditional 169 166 165 - 166: Label - 170: 7(float) Load 98(d3) - 171: 8(fvec4) Load 10(color) - 172: 7(float) CompositeExtract 171 2 - 173: 7(float) FAdd 172 170 - 174: 8(fvec4) Load 10(color) - 175: 8(fvec4) CompositeInsert 173 174 2 - Store 10(color) 175 - 176: 128(int) Load 163(i) - 177: 128(int) IAdd 176 145 - Store 163(i) 177 - Branch 164 - 165: Label - Store 178(i) 131 - Branch 179 + Store 177(i) 130 + Branch 178 + 178: Label + 181: 127(int) Load 177(i) + 183: 16(bool) SLessThan 181 182 + LoopMerge 179 None + BranchConditional 183 180 179 + 180: Label + 184: 7(fvec4) Load 9(color) + 185: 6(float) CompositeExtract 184 2 + 187: 16(bool) FOrdLessThan 185 186 + SelectionMerge 189 None + BranchConditional 187 188 195 + 188: Label + 190: 7(fvec4) Load 9(color) + 191: 6(float) CompositeExtract 190 0 + 192: 6(float) FAdd 191 84 + 193: 7(fvec4) Load 9(color) + 194: 7(fvec4) CompositeInsert 192 193 0 + Store 9(color) 194 + Branch 189 + 195: Label + 196: 7(fvec4) Load 9(color) + 197: 6(float) CompositeExtract 196 1 + 198: 6(float) FAdd 197 84 + 199: 7(fvec4) Load 9(color) + 200: 7(fvec4) CompositeInsert 198 199 1 + Store 9(color) 200 + Branch 189 + 189: Label + 201: 7(fvec4) Load 9(color) + 202: 6(float) CompositeExtract 201 3 + 203: 16(bool) FOrdLessThan 202 186 + SelectionMerge 205 None + BranchConditional 203 204 205 + 204: Label + 206: 7(fvec4) Load 9(color) + 207: 6(float) CompositeExtract 206 2 + 208: 7(fvec4) Load 9(color) + 209: 6(float) CompositeExtract 208 1 + 210: 16(bool) FOrdGreaterThan 207 209 + SelectionMerge 212 None + BranchConditional 210 211 212 + 211: Label + Branch 212 + 212: Label + Branch 205 + 205: Label + 213: 127(int) Load 177(i) + 214: 127(int) IAdd 213 144 + Store 177(i) 214 + Branch 178 179: Label - 182: 128(int) Load 178(i) - 184: 17(bool) SLessThan 182 183 - LoopMerge 180 None - BranchConditional 184 181 180 - 181: Label - 185: 8(fvec4) Load 10(color) - 186: 7(float) CompositeExtract 185 2 - 188: 17(bool) FOrdLessThan 186 187 - SelectionMerge 190 None - BranchConditional 188 189 196 - 189: Label - 191: 8(fvec4) Load 10(color) - 192: 7(float) CompositeExtract 191 0 - 193: 7(float) FAdd 192 85 - 194: 8(fvec4) Load 10(color) - 195: 8(fvec4) CompositeInsert 193 194 0 - Store 10(color) 195 - Branch 190 - 196: Label - 197: 8(fvec4) Load 10(color) - 198: 7(float) CompositeExtract 197 1 - 199: 7(float) FAdd 198 85 - 200: 8(fvec4) Load 10(color) - 201: 8(fvec4) CompositeInsert 199 200 1 - Store 10(color) 201 - Branch 190 - 190: Label - 202: 8(fvec4) Load 10(color) - 203: 7(float) CompositeExtract 202 3 - 204: 17(bool) FOrdLessThan 203 187 - SelectionMerge 206 None - BranchConditional 204 205 206 - 205: Label - 207: 8(fvec4) Load 10(color) - 208: 7(float) CompositeExtract 207 2 - 209: 8(fvec4) Load 10(color) - 210: 7(float) CompositeExtract 209 1 - 211: 17(bool) FOrdGreaterThan 208 210 - SelectionMerge 213 None - BranchConditional 211 212 213 - 212: Label - Branch 213 - 213: Label - Branch 206 - 206: Label - 214: 128(int) Load 178(i) - 215: 128(int) IAdd 214 145 - Store 178(i) 215 - Branch 179 - 180: Label - Store 216(i) 131 - Branch 217 + Store 215(i) 130 + Branch 216 + 216: Label + 219: 127(int) Load 215(i) + 221: 16(bool) SLessThan 219 220 + LoopMerge 217 None + BranchConditional 221 218 217 + 218: Label + 222: 7(fvec4) Load 9(color) + 223: 6(float) CompositeExtract 222 2 + 224: 16(bool) FOrdLessThan 223 186 + SelectionMerge 226 None + BranchConditional 224 225 232 + 225: Label + 227: 7(fvec4) Load 9(color) + 228: 6(float) CompositeExtract 227 0 + 229: 6(float) FAdd 228 84 + 230: 7(fvec4) Load 9(color) + 231: 7(fvec4) CompositeInsert 229 230 0 + Store 9(color) 231 + Branch 226 + 232: Label + 233: 7(fvec4) Load 9(color) + 234: 6(float) CompositeExtract 233 1 + 235: 6(float) FAdd 234 84 + 236: 7(fvec4) Load 9(color) + 237: 7(fvec4) CompositeInsert 235 236 1 + Store 9(color) 237 + Branch 226 + 226: Label + 238: 127(int) Load 215(i) + 239: 127(int) IAdd 238 144 + Store 215(i) 239 + Branch 216 217: Label - 220: 128(int) Load 216(i) - 222: 17(bool) SLessThan 220 221 - LoopMerge 218 None - BranchConditional 222 219 218 - 219: Label - 223: 8(fvec4) Load 10(color) - 224: 7(float) CompositeExtract 223 2 - 225: 17(bool) FOrdLessThan 224 187 - SelectionMerge 227 None - BranchConditional 225 226 233 - 226: Label - 228: 8(fvec4) Load 10(color) - 229: 7(float) CompositeExtract 228 0 - 230: 7(float) FAdd 229 85 - 231: 8(fvec4) Load 10(color) - 232: 8(fvec4) CompositeInsert 230 231 0 - Store 10(color) 232 - Branch 227 - 233: Label - 234: 8(fvec4) Load 10(color) - 235: 7(float) CompositeExtract 234 1 - 236: 7(float) FAdd 235 85 - 237: 8(fvec4) Load 10(color) - 238: 8(fvec4) CompositeInsert 236 237 1 - Store 10(color) 238 - Branch 227 - 227: Label - 239: 128(int) Load 216(i) - 240: 128(int) IAdd 239 145 - Store 216(i) 240 - Branch 217 - 218: Label - Store 241(i) 131 - Branch 242 + Store 240(i) 130 + Branch 241 + 241: Label + 244: 127(int) Load 240(i) + 245: 16(bool) SLessThan 244 167 + LoopMerge 242 None + BranchConditional 245 243 242 + 243: Label + 246: 6(float) Load 97(d3) + 247: 7(fvec4) Load 9(color) + 248: 6(float) CompositeExtract 247 2 + 249: 6(float) FAdd 248 246 + 250: 7(fvec4) Load 9(color) + 251: 7(fvec4) CompositeInsert 249 250 2 + Store 9(color) 251 + 252: 7(fvec4) Load 9(color) + 253: 6(float) CompositeExtract 252 0 + 254: 6(float) Load 118(d4) + 255: 16(bool) FOrdLessThan 253 254 + SelectionMerge 257 None + BranchConditional 255 256 257 + 256: Label + 258: 127(int) Load 240(i) + 259: 127(int) IAdd 258 144 + Store 240(i) 259 + Branch 241 + 257: Label + 261: 7(fvec4) Load 9(color) + 262: 6(float) CompositeExtract 261 3 + 263: 6(float) FAdd 262 84 + 264: 7(fvec4) Load 9(color) + 265: 7(fvec4) CompositeInsert 263 264 3 + Store 9(color) 265 + 266: 127(int) Load 240(i) + 267: 127(int) IAdd 266 144 + Store 240(i) 267 + Branch 241 242: Label - 245: 128(int) Load 241(i) - 246: 17(bool) SLessThan 245 168 - LoopMerge 243 None - BranchConditional 246 244 243 - 244: Label - 247: 7(float) Load 98(d3) - 248: 8(fvec4) Load 10(color) - 249: 7(float) CompositeExtract 248 2 - 250: 7(float) FAdd 249 247 - 251: 8(fvec4) Load 10(color) - 252: 8(fvec4) CompositeInsert 250 251 2 - Store 10(color) 252 - 253: 8(fvec4) Load 10(color) - 254: 7(float) CompositeExtract 253 0 - 255: 7(float) Load 119(d4) - 256: 17(bool) FOrdLessThan 254 255 - SelectionMerge 258 None - BranchConditional 256 257 258 - 257: Label - 259: 128(int) Load 241(i) - 260: 128(int) IAdd 259 145 - Store 241(i) 260 - Branch 242 - 258: Label - 262: 8(fvec4) Load 10(color) - 263: 7(float) CompositeExtract 262 3 - 264: 7(float) FAdd 263 85 - 265: 8(fvec4) Load 10(color) - 266: 8(fvec4) CompositeInsert 264 265 3 - Store 10(color) 266 - 267: 128(int) Load 241(i) - 268: 128(int) IAdd 267 145 - Store 241(i) 268 - Branch 242 - 243: Label - Store 269(i) 131 - Branch 270 + Store 268(i) 130 + Branch 269 + 269: Label + 272: 127(int) Load 268(i) + 273: 16(bool) SLessThan 272 167 + LoopMerge 270 None + BranchConditional 273 271 270 + 271: Label + 274: 6(float) Load 97(d3) + 275: 7(fvec4) Load 9(color) + 276: 6(float) CompositeExtract 275 2 + 277: 6(float) FAdd 276 274 + 278: 7(fvec4) Load 9(color) + 279: 7(fvec4) CompositeInsert 277 278 2 + Store 9(color) 279 + 280: 7(fvec4) Load 9(color) + 281: 6(float) CompositeExtract 280 0 + 282: 6(float) Load 118(d4) + 283: 16(bool) FOrdLessThan 281 282 + SelectionMerge 285 None + BranchConditional 283 284 285 + 284: Label + Branch 270 + 285: Label + 287: 7(fvec4) Load 9(color) + 288: 6(float) CompositeExtract 287 3 + 289: 6(float) FAdd 288 84 + 290: 7(fvec4) Load 9(color) + 291: 7(fvec4) CompositeInsert 289 290 3 + Store 9(color) 291 + 292: 127(int) Load 268(i) + 293: 127(int) IAdd 292 144 + Store 268(i) 293 + Branch 269 270: Label - 273: 128(int) Load 269(i) - 274: 17(bool) SLessThan 273 168 - LoopMerge 271 None - BranchConditional 274 272 271 - 272: Label - 275: 7(float) Load 98(d3) - 276: 8(fvec4) Load 10(color) - 277: 7(float) CompositeExtract 276 2 - 278: 7(float) FAdd 277 275 - 279: 8(fvec4) Load 10(color) - 280: 8(fvec4) CompositeInsert 278 279 2 - Store 10(color) 280 - 281: 8(fvec4) Load 10(color) - 282: 7(float) CompositeExtract 281 0 - 283: 7(float) Load 119(d4) - 284: 17(bool) FOrdLessThan 282 283 - SelectionMerge 286 None - BranchConditional 284 285 286 - 285: Label - Branch 271 - 286: Label - 288: 8(fvec4) Load 10(color) - 289: 7(float) CompositeExtract 288 3 - 290: 7(float) FAdd 289 85 - 291: 8(fvec4) Load 10(color) - 292: 8(fvec4) CompositeInsert 290 291 3 - Store 10(color) 292 - 293: 128(int) Load 269(i) - 294: 128(int) IAdd 293 145 - Store 269(i) 294 - Branch 270 - 271: Label - Branch 295 - 295: Label - 298: 17(bool) Phi 18 271 162 314 162 322 - LoopMerge 296 None - Branch 299 - 299: Label - SelectionMerge 297 None - BranchConditional 298 297 300 - 300: Label - 301: 8(fvec4) Load 10(color) - 302: 7(float) CompositeExtract 301 2 - 303: 7(float) Load 119(d4) - 304: 17(bool) FOrdLessThan 302 303 - SelectionMerge 305 None - BranchConditional 304 305 296 - 305: Label - Branch 297 - 297: Label - 307: 8(fvec4) Load 306(bigColor4) - 308: 8(fvec4) Load 10(color) - 309: 8(fvec4) FAdd 308 307 - Store 10(color) 309 - 310: 8(fvec4) Load 10(color) - 311: 7(float) CompositeExtract 310 0 - 312: 7(float) Load 119(d4) - 313: 17(bool) FOrdLessThan 311 312 - SelectionMerge 315 None - BranchConditional 313 314 315 - 314: Label - Branch 295 - 315: Label - 317: 8(fvec4) Load 10(color) - 318: 7(float) CompositeExtract 317 1 - 319: 7(float) Load 119(d4) - 320: 17(bool) FOrdLessThan 318 319 - SelectionMerge 322 None - BranchConditional 320 321 329 - 321: Label - 323: 7(float) Load 119(d4) - 324: 8(fvec4) Load 10(color) - 325: 7(float) CompositeExtract 324 1 - 326: 7(float) FAdd 325 323 - 327: 8(fvec4) Load 10(color) - 328: 8(fvec4) CompositeInsert 326 327 1 - Store 10(color) 328 - Branch 322 - 329: Label - 330: 7(float) Load 119(d4) - 331: 8(fvec4) Load 10(color) - 332: 7(float) CompositeExtract 331 0 - 333: 7(float) FAdd 332 330 - 334: 8(fvec4) Load 10(color) - 335: 8(fvec4) CompositeInsert 333 334 0 - Store 10(color) 335 - Branch 322 - 322: Label - Branch 295 + Branch 294 + 294: Label + 297: 16(bool) Phi 17 270 161 313 161 321 + LoopMerge 295 None + Branch 298 + 298: Label + SelectionMerge 296 None + BranchConditional 297 296 299 + 299: Label + 300: 7(fvec4) Load 9(color) + 301: 6(float) CompositeExtract 300 2 + 302: 6(float) Load 118(d4) + 303: 16(bool) FOrdLessThan 301 302 + SelectionMerge 304 None + BranchConditional 303 304 295 + 304: Label + Branch 296 296: Label - Branch 336 - 336: Label - 339: 17(bool) Phi 18 296 162 357 - LoopMerge 337 None - Branch 340 - 340: Label - SelectionMerge 338 None - BranchConditional 339 338 341 - 341: Label - 342: 8(fvec4) Load 10(color) - 343: 7(float) CompositeExtract 342 0 - 345: 7(float) Load 344(d5) - 346: 17(bool) FOrdLessThan 343 345 - SelectionMerge 347 None - BranchConditional 346 347 337 - 347: Label - Branch 338 - 338: Label - 349: 8(fvec4) Load 348(bigColor5) - 350: 8(fvec4) Load 10(color) - 351: 8(fvec4) FAdd 350 349 - Store 10(color) 351 - 352: 8(fvec4) Load 10(color) - 353: 7(float) CompositeExtract 352 1 - 354: 7(float) Load 344(d5) - 355: 17(bool) FOrdLessThan 353 354 - SelectionMerge 357 None - BranchConditional 355 356 357 - 356: Label - 358: 7(float) Load 344(d5) - 359: 8(fvec4) Load 10(color) - 360: 7(float) CompositeExtract 359 1 - 361: 7(float) FAdd 360 358 - 362: 8(fvec4) Load 10(color) - 363: 8(fvec4) CompositeInsert 361 362 1 - Store 10(color) 363 - Branch 357 - 357: Label - Branch 336 + 306: 7(fvec4) Load 305(bigColor4) + 307: 7(fvec4) Load 9(color) + 308: 7(fvec4) FAdd 307 306 + Store 9(color) 308 + 309: 7(fvec4) Load 9(color) + 310: 6(float) CompositeExtract 309 0 + 311: 6(float) Load 118(d4) + 312: 16(bool) FOrdLessThan 310 311 + SelectionMerge 314 None + BranchConditional 312 313 314 + 313: Label + Branch 294 + 314: Label + 316: 7(fvec4) Load 9(color) + 317: 6(float) CompositeExtract 316 1 + 318: 6(float) Load 118(d4) + 319: 16(bool) FOrdLessThan 317 318 + SelectionMerge 321 None + BranchConditional 319 320 328 + 320: Label + 322: 6(float) Load 118(d4) + 323: 7(fvec4) Load 9(color) + 324: 6(float) CompositeExtract 323 1 + 325: 6(float) FAdd 324 322 + 326: 7(fvec4) Load 9(color) + 327: 7(fvec4) CompositeInsert 325 326 1 + Store 9(color) 327 + Branch 321 + 328: Label + 329: 6(float) Load 118(d4) + 330: 7(fvec4) Load 9(color) + 331: 6(float) CompositeExtract 330 0 + 332: 6(float) FAdd 331 329 + 333: 7(fvec4) Load 9(color) + 334: 7(fvec4) CompositeInsert 332 333 0 + Store 9(color) 334 + Branch 321 + 321: Label + Branch 294 + 295: Label + Branch 335 + 335: Label + 338: 16(bool) Phi 17 295 161 356 + LoopMerge 336 None + Branch 339 + 339: Label + SelectionMerge 337 None + BranchConditional 338 337 340 + 340: Label + 341: 7(fvec4) Load 9(color) + 342: 6(float) CompositeExtract 341 0 + 344: 6(float) Load 343(d5) + 345: 16(bool) FOrdLessThan 342 344 + SelectionMerge 346 None + BranchConditional 345 346 336 + 346: Label + Branch 337 337: Label - 364: 8(fvec4) Load 10(color) - 365: 7(float) CompositeExtract 364 0 - 367: 7(float) Load 366(d6) - 368: 17(bool) FOrdLessThan 365 367 - SelectionMerge 370 None - BranchConditional 368 369 382 - 369: Label - Branch 371 + 348: 7(fvec4) Load 347(bigColor5) + 349: 7(fvec4) Load 9(color) + 350: 7(fvec4) FAdd 349 348 + Store 9(color) 350 + 351: 7(fvec4) Load 9(color) + 352: 6(float) CompositeExtract 351 1 + 353: 6(float) Load 343(d5) + 354: 16(bool) FOrdLessThan 352 353 + SelectionMerge 356 None + BranchConditional 354 355 356 + 355: Label + 357: 6(float) Load 343(d5) + 358: 7(fvec4) Load 9(color) + 359: 6(float) CompositeExtract 358 1 + 360: 6(float) FAdd 359 357 + 361: 7(fvec4) Load 9(color) + 362: 7(fvec4) CompositeInsert 360 361 1 + Store 9(color) 362 + Branch 356 + 356: Label + Branch 335 + 336: Label + 363: 7(fvec4) Load 9(color) + 364: 6(float) CompositeExtract 363 0 + 366: 6(float) Load 365(d6) + 367: 16(bool) FOrdLessThan 364 366 + SelectionMerge 369 None + BranchConditional 367 368 381 + 368: Label + Branch 370 + 370: Label + 373: 7(fvec4) Load 9(color) + 374: 6(float) CompositeExtract 373 1 + 375: 6(float) Load 365(d6) + 376: 16(bool) FOrdLessThan 374 375 + LoopMerge 371 None + BranchConditional 376 372 371 + 372: Label + 378: 7(fvec4) Load 377(bigColor6) + 379: 7(fvec4) Load 9(color) + 380: 7(fvec4) FAdd 379 378 + Store 9(color) 380 + Branch 370 371: Label - 374: 8(fvec4) Load 10(color) - 375: 7(float) CompositeExtract 374 1 - 376: 7(float) Load 366(d6) - 377: 17(bool) FOrdLessThan 375 376 - LoopMerge 372 None - BranchConditional 377 373 372 - 373: Label - 379: 8(fvec4) Load 378(bigColor6) - 380: 8(fvec4) Load 10(color) - 381: 8(fvec4) FAdd 380 379 - Store 10(color) 381 - Branch 371 - 372: Label - Branch 370 + Branch 369 + 381: Label + Branch 382 382: Label - Branch 383 + 385: 7(fvec4) Load 9(color) + 386: 6(float) CompositeExtract 385 2 + 387: 6(float) Load 365(d6) + 388: 16(bool) FOrdLessThan 386 387 + LoopMerge 383 None + BranchConditional 388 384 383 + 384: Label + 389: 7(fvec4) Load 377(bigColor6) + 390: 6(float) CompositeExtract 389 2 + 391: 7(fvec4) Load 9(color) + 392: 6(float) CompositeExtract 391 2 + 393: 6(float) FAdd 392 390 + 394: 7(fvec4) Load 9(color) + 395: 7(fvec4) CompositeInsert 393 394 2 + Store 9(color) 395 + Branch 382 383: Label - 386: 8(fvec4) Load 10(color) - 387: 7(float) CompositeExtract 386 2 - 388: 7(float) Load 366(d6) - 389: 17(bool) FOrdLessThan 387 388 - LoopMerge 384 None - BranchConditional 389 385 384 - 385: Label - 390: 8(fvec4) Load 378(bigColor6) - 391: 7(float) CompositeExtract 390 2 - 392: 8(fvec4) Load 10(color) - 393: 7(float) CompositeExtract 392 2 - 394: 7(float) FAdd 393 391 - 395: 8(fvec4) Load 10(color) - 396: 8(fvec4) CompositeInsert 394 395 2 - Store 10(color) 396 - Branch 383 - 384: Label - Branch 370 - 370: Label - 397: 8(fvec4) Load 10(color) - 398: 7(float) CompositeExtract 397 0 - 399: 7(float) Load 366(d6) - 400: 17(bool) FOrdLessThan 398 399 - SelectionMerge 402 None - BranchConditional 400 401 419 - 401: Label - Branch 403 + Branch 369 + 369: Label + 396: 7(fvec4) Load 9(color) + 397: 6(float) CompositeExtract 396 0 + 398: 6(float) Load 365(d6) + 399: 16(bool) FOrdLessThan 397 398 + SelectionMerge 401 None + BranchConditional 399 400 418 + 400: Label + Branch 402 + 402: Label + 405: 7(fvec4) Load 9(color) + 406: 6(float) CompositeExtract 405 1 + 407: 6(float) Load 365(d6) + 408: 16(bool) FOrdLessThan 406 407 + LoopMerge 403 None + BranchConditional 408 404 403 + 404: Label + 409: 7(fvec4) Load 377(bigColor6) + 410: 7(fvec4) Load 9(color) + 411: 7(fvec4) FAdd 410 409 + Store 9(color) 411 + 413: 6(float) Load 412(d7) + 414: 16(bool) FOrdLessThan 413 84 + SelectionMerge 416 None + BranchConditional 414 415 416 + 415: Label + Branch 403 + 416: Label + Branch 402 403: Label - 406: 8(fvec4) Load 10(color) - 407: 7(float) CompositeExtract 406 1 - 408: 7(float) Load 366(d6) - 409: 17(bool) FOrdLessThan 407 408 - LoopMerge 404 None - BranchConditional 409 405 404 - 405: Label - 410: 8(fvec4) Load 378(bigColor6) - 411: 8(fvec4) Load 10(color) - 412: 8(fvec4) FAdd 411 410 - Store 10(color) 412 - 414: 7(float) Load 413(d7) - 415: 17(bool) FOrdLessThan 414 85 - SelectionMerge 417 None - BranchConditional 415 416 417 - 416: Label - Branch 404 - 417: Label - Branch 403 - 404: Label - Branch 402 + Branch 401 + 418: Label + Branch 419 419: Label - Branch 420 + 422: 7(fvec4) Load 9(color) + 423: 6(float) CompositeExtract 422 2 + 424: 6(float) Load 365(d6) + 425: 16(bool) FOrdLessThan 423 424 + LoopMerge 420 None + BranchConditional 425 421 420 + 421: Label + 426: 7(fvec4) Load 377(bigColor6) + 427: 6(float) CompositeExtract 426 2 + 428: 7(fvec4) Load 9(color) + 429: 6(float) CompositeExtract 428 2 + 430: 6(float) FAdd 429 427 + 431: 7(fvec4) Load 9(color) + 432: 7(fvec4) CompositeInsert 430 431 2 + Store 9(color) 432 + Branch 419 420: Label - 423: 8(fvec4) Load 10(color) - 424: 7(float) CompositeExtract 423 2 - 425: 7(float) Load 366(d6) - 426: 17(bool) FOrdLessThan 424 425 - LoopMerge 421 None - BranchConditional 426 422 421 - 422: Label - 427: 8(fvec4) Load 378(bigColor6) - 428: 7(float) CompositeExtract 427 2 - 429: 8(fvec4) Load 10(color) - 430: 7(float) CompositeExtract 429 2 - 431: 7(float) FAdd 430 428 - 432: 8(fvec4) Load 10(color) - 433: 8(fvec4) CompositeInsert 431 432 2 - Store 10(color) 433 - Branch 420 - 421: Label - Branch 402 - 402: Label - Branch 434 - 434: Label - 437: 17(bool) Phi 18 402 162 454 - LoopMerge 435 None - Branch 438 - 438: Label - SelectionMerge 436 None - BranchConditional 437 436 439 + Branch 401 + 401: Label + Branch 433 + 433: Label + 436: 16(bool) Phi 17 401 161 453 + LoopMerge 434 None + Branch 437 + 437: Label + SelectionMerge 435 None + BranchConditional 436 435 438 + 438: Label + SelectionMerge 439 None + BranchConditional 17 439 434 439: Label - SelectionMerge 440 None - BranchConditional 18 440 435 - 440: Label - Branch 436 - 436: Label - 441: 7(float) Load 413(d7) - 443: 17(bool) FOrdLessThan 441 442 - SelectionMerge 445 None - BranchConditional 443 444 445 - 444: Label Branch 435 - 445: Label - 448: 8(fvec4) Load 447(bigColor7) - 449: 8(fvec4) Load 10(color) - 450: 8(fvec4) FAdd 449 448 - Store 10(color) 450 - 451: 7(float) Load 413(d7) - 452: 17(bool) FOrdLessThan 451 85 - SelectionMerge 454 None - BranchConditional 452 453 454 - 453: Label - 455: 8(fvec4) Load 10(color) - 456: 7(float) CompositeExtract 455 2 - 457: 7(float) FAdd 456 85 - 458: 8(fvec4) Load 10(color) - 459: 8(fvec4) CompositeInsert 457 458 2 - Store 10(color) 459 - Branch 435 - 454: Label - 461: 8(fvec4) Load 12(BaseColor) - 462: 8(fvec4) Load 10(color) - 463: 8(fvec4) FAdd 462 461 - Store 10(color) 463 - Branch 434 435: Label - Branch 464 - 464: Label - 467: 17(bool) Phi 18 435 162 487 - LoopMerge 465 None - Branch 468 - 468: Label - SelectionMerge 466 None - BranchConditional 467 466 469 - 469: Label - 470: 8(fvec4) Load 10(color) - 471: 7(float) CompositeExtract 470 2 - 473: 7(float) Load 472(d8) - 474: 17(bool) FOrdLessThan 471 473 - SelectionMerge 475 None - BranchConditional 474 475 465 - 475: Label - Branch 466 - 466: Label - 476: 7(float) Load 472(d8) - 477: 17(bool) FOrdLessThan 476 442 - SelectionMerge 479 None - BranchConditional 477 478 479 - 478: Label + 440: 6(float) Load 412(d7) + 442: 16(bool) FOrdLessThan 440 441 + SelectionMerge 444 None + BranchConditional 442 443 444 + 443: Label + Branch 434 + 444: Label + 447: 7(fvec4) Load 446(bigColor7) + 448: 7(fvec4) Load 9(color) + 449: 7(fvec4) FAdd 448 447 + Store 9(color) 449 + 450: 6(float) Load 412(d7) + 451: 16(bool) FOrdLessThan 450 84 + SelectionMerge 453 None + BranchConditional 451 452 453 + 452: Label + 454: 7(fvec4) Load 9(color) + 455: 6(float) CompositeExtract 454 2 + 456: 6(float) FAdd 455 84 + 457: 7(fvec4) Load 9(color) + 458: 7(fvec4) CompositeInsert 456 457 2 + Store 9(color) 458 + Branch 434 + 453: Label + 460: 7(fvec4) Load 11(BaseColor) + 461: 7(fvec4) Load 9(color) + 462: 7(fvec4) FAdd 461 460 + Store 9(color) 462 + Branch 433 + 434: Label + Branch 463 + 463: Label + 466: 16(bool) Phi 17 434 161 486 + LoopMerge 464 None + Branch 467 + 467: Label + SelectionMerge 465 None + BranchConditional 466 465 468 + 468: Label + 469: 7(fvec4) Load 9(color) + 470: 6(float) CompositeExtract 469 2 + 472: 6(float) Load 471(d8) + 473: 16(bool) FOrdLessThan 470 472 + SelectionMerge 474 None + BranchConditional 473 474 464 + 474: Label Branch 465 - 479: Label - 481: 8(fvec4) Load 447(bigColor7) - 482: 8(fvec4) Load 10(color) - 483: 8(fvec4) FAdd 482 481 - Store 10(color) 483 - 484: 7(float) Load 472(d8) - 485: 17(bool) FOrdLessThan 484 85 - SelectionMerge 487 None - BranchConditional 485 486 487 - 486: Label - 488: 8(fvec4) Load 10(color) - 489: 7(float) CompositeExtract 488 2 - 490: 7(float) FAdd 489 85 - 491: 8(fvec4) Load 10(color) - 492: 8(fvec4) CompositeInsert 490 491 2 - Store 10(color) 492 - 493: 7(float) Load 472(d8) - 495: 17(bool) FOrdLessThan 493 494 - SelectionMerge 497 None - BranchConditional 495 496 503 - 496: Label - 498: 8(fvec4) Load 10(color) - 499: 7(float) CompositeExtract 498 1 - 500: 7(float) FAdd 499 85 - 501: 8(fvec4) Load 10(color) - 502: 8(fvec4) CompositeInsert 500 501 1 - Store 10(color) 502 - Branch 497 - 503: Label - 504: 8(fvec4) Load 10(color) - 505: 7(float) CompositeExtract 504 0 - 506: 7(float) FAdd 505 85 - 507: 8(fvec4) Load 10(color) - 508: 8(fvec4) CompositeInsert 506 507 0 - Store 10(color) 508 - Branch 497 - 497: Label - Branch 465 - 487: Label - 510: 8(fvec4) Load 12(BaseColor) - 511: 8(fvec4) Load 10(color) - 512: 8(fvec4) FAdd 511 510 - Store 10(color) 512 - Branch 464 465: Label - Branch 513 + 475: 6(float) Load 471(d8) + 476: 16(bool) FOrdLessThan 475 441 + SelectionMerge 478 None + BranchConditional 476 477 478 + 477: Label + Branch 464 + 478: Label + 480: 7(fvec4) Load 446(bigColor7) + 481: 7(fvec4) Load 9(color) + 482: 7(fvec4) FAdd 481 480 + Store 9(color) 482 + 483: 6(float) Load 471(d8) + 484: 16(bool) FOrdLessThan 483 84 + SelectionMerge 486 None + BranchConditional 484 485 486 + 485: Label + 487: 7(fvec4) Load 9(color) + 488: 6(float) CompositeExtract 487 2 + 489: 6(float) FAdd 488 84 + 490: 7(fvec4) Load 9(color) + 491: 7(fvec4) CompositeInsert 489 490 2 + Store 9(color) 491 + 492: 6(float) Load 471(d8) + 494: 16(bool) FOrdLessThan 492 493 + SelectionMerge 496 None + BranchConditional 494 495 502 + 495: Label + 497: 7(fvec4) Load 9(color) + 498: 6(float) CompositeExtract 497 1 + 499: 6(float) FAdd 498 84 + 500: 7(fvec4) Load 9(color) + 501: 7(fvec4) CompositeInsert 499 500 1 + Store 9(color) 501 + Branch 496 + 502: Label + 503: 7(fvec4) Load 9(color) + 504: 6(float) CompositeExtract 503 0 + 505: 6(float) FAdd 504 84 + 506: 7(fvec4) Load 9(color) + 507: 7(fvec4) CompositeInsert 505 506 0 + Store 9(color) 507 + Branch 496 + 496: Label + Branch 464 + 486: Label + 509: 7(fvec4) Load 11(BaseColor) + 510: 7(fvec4) Load 9(color) + 511: 7(fvec4) FAdd 510 509 + Store 9(color) 511 + Branch 463 + 464: Label + Branch 512 + 512: Label + 515: 7(fvec4) Load 9(color) + 516: 6(float) CompositeExtract 515 3 + 518: 6(float) Load 517(d9) + 519: 16(bool) FOrdLessThan 516 518 + LoopMerge 513 None + BranchConditional 519 514 513 + 514: Label + 520: 6(float) Load 517(d9) + 521: 6(float) Load 471(d8) + 522: 16(bool) FOrdGreaterThan 520 521 + SelectionMerge 524 None + BranchConditional 522 523 524 + 523: Label + 525: 7(fvec4) Load 9(color) + 526: 6(float) CompositeExtract 525 0 + 527: 6(float) Load 412(d7) + 528: 16(bool) FOrdLessThanEqual 526 527 + SelectionMerge 530 None + BranchConditional 528 529 530 + 529: Label + 531: 7(fvec4) Load 9(color) + 532: 6(float) CompositeExtract 531 2 + 534: 16(bool) FOrdEqual 532 533 + SelectionMerge 536 None + BranchConditional 534 535 542 + 535: Label + 537: 7(fvec4) Load 9(color) + 538: 6(float) CompositeExtract 537 3 + 539: 6(float) FAdd 538 84 + 540: 7(fvec4) Load 9(color) + 541: 7(fvec4) CompositeInsert 539 540 3 + Store 9(color) 541 + Branch 536 + 542: Label + Branch 513 + 536: Label + Branch 530 + 530: Label + Branch 524 + 524: Label + Branch 512 513: Label - 516: 8(fvec4) Load 10(color) - 517: 7(float) CompositeExtract 516 3 - 519: 7(float) Load 518(d9) - 520: 17(bool) FOrdLessThan 517 519 - LoopMerge 514 None - BranchConditional 520 515 514 - 515: Label - 521: 7(float) Load 518(d9) - 522: 7(float) Load 472(d8) - 523: 17(bool) FOrdGreaterThan 521 522 - SelectionMerge 525 None - BranchConditional 523 524 525 - 524: Label - 526: 8(fvec4) Load 10(color) - 527: 7(float) CompositeExtract 526 0 - 528: 7(float) Load 413(d7) - 529: 17(bool) FOrdLessThanEqual 527 528 - SelectionMerge 531 None - BranchConditional 529 530 531 - 530: Label - 532: 8(fvec4) Load 10(color) - 533: 7(float) CompositeExtract 532 2 - 535: 17(bool) FOrdEqual 533 534 - SelectionMerge 537 None - BranchConditional 535 536 543 - 536: Label - 538: 8(fvec4) Load 10(color) - 539: 7(float) CompositeExtract 538 3 - 540: 7(float) FAdd 539 85 - 541: 8(fvec4) Load 10(color) - 542: 8(fvec4) CompositeInsert 540 541 3 - Store 10(color) 542 - Branch 537 - 543: Label - Branch 514 - 537: Label - Branch 531 - 531: Label - Branch 525 - 525: Label - Branch 513 - 514: Label - Branch 545 + Branch 544 + 544: Label + 547: 7(fvec4) Load 9(color) + 548: 6(float) CompositeExtract 547 2 + 550: 6(float) Load 549(d10) + 551: 16(bool) FOrdLessThan 548 550 + LoopMerge 545 None + BranchConditional 551 546 545 + 546: Label + 552: 7(fvec4) Load 9(color) + 553: 6(float) CompositeExtract 552 1 + 554: 6(float) FAdd 553 84 + 555: 7(fvec4) Load 9(color) + 556: 7(fvec4) CompositeInsert 554 555 1 + Store 9(color) 556 + 557: 7(fvec4) Load 9(color) + 558: 6(float) CompositeExtract 557 1 + 560: 6(float) Load 559(d11) + 561: 16(bool) FOrdLessThan 558 560 + SelectionMerge 563 None + BranchConditional 561 562 563 + 562: Label + 564: 7(fvec4) Load 9(color) + 565: 6(float) CompositeExtract 564 2 + 566: 6(float) FAdd 565 84 + 567: 7(fvec4) Load 9(color) + 568: 7(fvec4) CompositeInsert 566 567 2 + Store 9(color) 568 + 569: 7(fvec4) Load 9(color) + 570: 6(float) CompositeExtract 569 3 + 572: 6(float) Load 571(d12) + 573: 16(bool) FOrdLessThan 570 572 + SelectionMerge 575 None + BranchConditional 573 574 581 + 574: Label + 576: 7(fvec4) Load 9(color) + 577: 6(float) CompositeExtract 576 3 + 578: 6(float) FAdd 577 84 + 579: 7(fvec4) Load 9(color) + 580: 7(fvec4) CompositeInsert 578 579 3 + Store 9(color) 580 + Branch 575 + 581: Label + 582: 7(fvec4) Load 9(color) + 583: 6(float) CompositeExtract 582 0 + 584: 6(float) FAdd 583 84 + 585: 7(fvec4) Load 9(color) + 586: 7(fvec4) CompositeInsert 584 585 0 + Store 9(color) 586 + Branch 575 + 575: Label + Branch 544 + 563: Label + 588: 7(fvec4) Load 9(color) + 589: 7(fvec4) CompositeConstruct 84 84 84 84 + 590: 7(fvec4) FAdd 588 589 + Store 9(color) 590 + Branch 545 545: Label - 548: 8(fvec4) Load 10(color) - 549: 7(float) CompositeExtract 548 2 - 551: 7(float) Load 550(d10) - 552: 17(bool) FOrdLessThan 549 551 - LoopMerge 546 None - BranchConditional 552 547 546 - 547: Label - 553: 8(fvec4) Load 10(color) - 554: 7(float) CompositeExtract 553 1 - 555: 7(float) FAdd 554 85 - 556: 8(fvec4) Load 10(color) - 557: 8(fvec4) CompositeInsert 555 556 1 - Store 10(color) 557 - 558: 8(fvec4) Load 10(color) - 559: 7(float) CompositeExtract 558 1 - 561: 7(float) Load 560(d11) - 562: 17(bool) FOrdLessThan 559 561 - SelectionMerge 564 None - BranchConditional 562 563 564 - 563: Label - 565: 8(fvec4) Load 10(color) - 566: 7(float) CompositeExtract 565 2 - 567: 7(float) FAdd 566 85 - 568: 8(fvec4) Load 10(color) - 569: 8(fvec4) CompositeInsert 567 568 2 - Store 10(color) 569 - 570: 8(fvec4) Load 10(color) - 571: 7(float) CompositeExtract 570 3 - 573: 7(float) Load 572(d12) - 574: 17(bool) FOrdLessThan 571 573 - SelectionMerge 576 None - BranchConditional 574 575 582 - 575: Label - 577: 8(fvec4) Load 10(color) - 578: 7(float) CompositeExtract 577 3 - 579: 7(float) FAdd 578 85 - 580: 8(fvec4) Load 10(color) - 581: 8(fvec4) CompositeInsert 579 580 3 - Store 10(color) 581 - Branch 576 - 582: Label - 583: 8(fvec4) Load 10(color) - 584: 7(float) CompositeExtract 583 0 - 585: 7(float) FAdd 584 85 - 586: 8(fvec4) Load 10(color) - 587: 8(fvec4) CompositeInsert 585 586 0 - Store 10(color) 587 - Branch 576 - 576: Label - Branch 545 - 564: Label - 589: 8(fvec4) Load 10(color) - 590: 8(fvec4) CompositeConstruct 85 85 85 85 - 591: 8(fvec4) FAdd 589 590 - Store 10(color) 591 - Branch 546 - 546: Label - Branch 593 + Branch 592 + 592: Label + 595: 7(fvec4) Load 9(color) + 596: 6(float) CompositeExtract 595 0 + 598: 16(bool) FOrdLessThan 596 597 + LoopMerge 593 None + BranchConditional 598 594 593 + 594: Label + 600: 7(fvec4) Load 599(bigColor8) + 601: 7(fvec4) Load 9(color) + 602: 7(fvec4) FAdd 601 600 + Store 9(color) 602 + 603: 7(fvec4) Load 9(color) + 604: 6(float) CompositeExtract 603 2 + 605: 6(float) Load 471(d8) + 606: 16(bool) FOrdLessThan 604 605 + SelectionMerge 608 None + BranchConditional 606 607 608 + 607: Label + 609: 7(fvec4) Load 9(color) + 610: 6(float) CompositeExtract 609 3 + 611: 6(float) Load 365(d6) + 612: 16(bool) FOrdLessThan 610 611 + SelectionMerge 614 None + BranchConditional 612 613 614 + 613: Label + Branch 592 + 614: Label + Branch 608 + 608: Label + 616: 7(fvec4) Load 599(bigColor8) + 617: 6(float) CompositeExtract 616 0 + 618: 7(fvec4) Load 9(color) + 619: 6(float) CompositeExtract 618 1 + 620: 6(float) FAdd 619 617 + 621: 7(fvec4) Load 9(color) + 622: 7(fvec4) CompositeInsert 620 621 1 + Store 9(color) 622 + Branch 592 593: Label - 596: 8(fvec4) Load 10(color) - 597: 7(float) CompositeExtract 596 0 - 599: 17(bool) FOrdLessThan 597 598 - LoopMerge 594 None - BranchConditional 599 595 594 - 595: Label - 601: 8(fvec4) Load 600(bigColor8) - 602: 8(fvec4) Load 10(color) - 603: 8(fvec4) FAdd 602 601 - Store 10(color) 603 - 604: 8(fvec4) Load 10(color) - 605: 7(float) CompositeExtract 604 2 - 606: 7(float) Load 472(d8) - 607: 17(bool) FOrdLessThan 605 606 - SelectionMerge 609 None - BranchConditional 607 608 609 - 608: Label - 610: 8(fvec4) Load 10(color) - 611: 7(float) CompositeExtract 610 3 - 612: 7(float) Load 366(d6) - 613: 17(bool) FOrdLessThan 611 612 - SelectionMerge 615 None - BranchConditional 613 614 615 - 614: Label - Branch 593 - 615: Label - Branch 609 - 609: Label - 617: 8(fvec4) Load 600(bigColor8) - 618: 7(float) CompositeExtract 617 0 - 619: 8(fvec4) Load 10(color) - 620: 7(float) CompositeExtract 619 1 - 621: 7(float) FAdd 620 618 - 622: 8(fvec4) Load 10(color) - 623: 8(fvec4) CompositeInsert 621 622 1 - Store 10(color) 623 - Branch 593 - 594: Label - 624: 8(fvec4) Load 10(color) - 625: 8(fvec4) CompositeConstruct 85 85 85 85 - 626: 8(fvec4) FAdd 624 625 - Store 10(color) 626 - 629: 8(fvec4) Load 10(color) - Store 628(gl_FragColor) 629 - Branch 630 + 623: 7(fvec4) Load 9(color) + 624: 7(fvec4) CompositeConstruct 84 84 84 84 + 625: 7(fvec4) FAdd 623 624 + Store 9(color) 625 + 628: 7(fvec4) Load 9(color) + Store 627(gl_FragColor) 628 + Branch 629 + 629: Label + 632: 7(fvec4) Load 9(color) + 633: 6(float) CompositeExtract 632 0 + 635: 6(float) Load 634(d14) + 636: 16(bool) FOrdLessThan 633 635 + LoopMerge 630 None + BranchConditional 636 631 630 + 631: Label + 637: 7(fvec4) Load 9(color) + 638: 6(float) CompositeExtract 637 1 + 640: 6(float) Load 639(d15) + 641: 16(bool) FOrdLessThan 638 640 + SelectionMerge 643 None + BranchConditional 641 642 645 + 642: Label + Return + 645: Label + 646: 7(fvec4) Load 9(color) + 647: 7(fvec4) CompositeConstruct 84 84 84 84 + 648: 7(fvec4) FAdd 646 647 + Store 9(color) 648 + Branch 643 + 643: Label + Branch 629 630: Label - 633: 8(fvec4) Load 10(color) - 634: 7(float) CompositeExtract 633 0 - 636: 7(float) Load 635(d14) - 637: 17(bool) FOrdLessThan 634 636 - LoopMerge 631 None - BranchConditional 637 632 631 - 632: Label - 638: 8(fvec4) Load 10(color) - 639: 7(float) CompositeExtract 638 1 - 641: 7(float) Load 640(d15) - 642: 17(bool) FOrdLessThan 639 641 - SelectionMerge 644 None - BranchConditional 642 643 646 - 643: Label - Branch 6 - 646: Label - 647: 8(fvec4) Load 10(color) - 648: 8(fvec4) CompositeConstruct 85 85 85 85 - 649: 8(fvec4) FAdd 647 648 - Store 10(color) 649 - Branch 644 - 644: Label - Branch 630 - 631: Label - 650: 8(fvec4) Load 10(color) - 651: 8(fvec4) CompositeConstruct 85 85 85 85 - 652: 8(fvec4) FAdd 650 651 - Store 10(color) 652 - Branch 653 + 649: 7(fvec4) Load 9(color) + 650: 7(fvec4) CompositeConstruct 84 84 84 84 + 651: 7(fvec4) FAdd 649 650 + Store 9(color) 651 + Branch 652 + 652: Label + 655: 7(fvec4) Load 9(color) + 656: 6(float) CompositeExtract 655 3 + 658: 6(float) Load 657(d16) + 659: 16(bool) FOrdLessThan 656 658 + LoopMerge 653 None + BranchConditional 659 654 653 + 654: Label + 660: 7(fvec4) Load 9(color) + 661: 6(float) CompositeExtract 660 3 + 662: 6(float) FAdd 661 84 + 663: 7(fvec4) Load 9(color) + 664: 7(fvec4) CompositeInsert 662 663 3 + Store 9(color) 664 + Branch 652 653: Label - 656: 8(fvec4) Load 10(color) - 657: 7(float) CompositeExtract 656 3 - 659: 7(float) Load 658(d16) - 660: 17(bool) FOrdLessThan 657 659 - LoopMerge 654 None - BranchConditional 660 655 654 - 655: Label - 661: 8(fvec4) Load 10(color) - 662: 7(float) CompositeExtract 661 3 - 663: 7(float) FAdd 662 85 - 664: 8(fvec4) Load 10(color) - 665: 8(fvec4) CompositeInsert 663 664 3 - Store 10(color) 665 - Branch 653 - 654: Label - Branch 666 + Branch 665 + 665: Label + 668: 7(fvec4) Load 9(color) + 669: 6(float) CompositeExtract 668 3 + 670: 6(float) Load 92(d2) + 671: 16(bool) FOrdLessThan 669 670 + 672: 7(fvec4) Load 9(color) + 673: 6(float) CompositeExtract 672 1 + 674: 6(float) Load 97(d3) + 675: 16(bool) FOrdLessThan 673 674 + 676: 16(bool) LogicalAnd 671 675 + LoopMerge 666 None + BranchConditional 676 667 666 + 667: Label + 677: 7(fvec4) Load 101(bigColor1_2) + 678: 7(fvec4) Load 9(color) + 679: 7(fvec4) FAdd 678 677 + Store 9(color) 679 + 680: 7(fvec4) Load 9(color) + 681: 6(float) CompositeExtract 680 2 + 682: 6(float) Load 97(d3) + 683: 16(bool) FOrdLessThan 681 682 + SelectionMerge 685 None + BranchConditional 683 684 685 + 684: Label + Return + 685: Label + Branch 665 666: Label - 669: 8(fvec4) Load 10(color) - 670: 7(float) CompositeExtract 669 3 - 671: 7(float) Load 93(d2) - 672: 17(bool) FOrdLessThan 670 671 - 673: 8(fvec4) Load 10(color) - 674: 7(float) CompositeExtract 673 1 - 675: 7(float) Load 98(d3) - 676: 17(bool) FOrdLessThan 674 675 - 677: 17(bool) LogicalAnd 672 676 - LoopMerge 667 None - BranchConditional 677 668 667 - 668: Label - 678: 8(fvec4) Load 102(bigColor1_2) - 679: 8(fvec4) Load 10(color) - 680: 8(fvec4) FAdd 679 678 - Store 10(color) 680 - 681: 8(fvec4) Load 10(color) - 682: 7(float) CompositeExtract 681 2 - 683: 7(float) Load 98(d3) - 684: 17(bool) FOrdLessThan 682 683 - SelectionMerge 686 None - BranchConditional 684 685 686 - 685: Label - Branch 6 - 686: Label - Branch 666 - 667: Label - Branch 688 - 688: Label - 691: 17(bool) Phi 18 667 162 706 - LoopMerge 689 None - Branch 692 - 692: Label - SelectionMerge 690 None - BranchConditional 691 690 693 - 693: Label - 694: 8(fvec4) Load 10(color) - 695: 7(float) CompositeExtract 694 0 - 697: 7(float) Load 696(d17) - 698: 17(bool) FOrdLessThan 695 697 - SelectionMerge 699 None - BranchConditional 698 699 689 - 699: Label - Branch 690 - 690: Label - 700: 8(fvec4) Load 10(color) - 701: 7(float) CompositeExtract 700 1 - 703: 7(float) Load 702(d18) - 704: 17(bool) FOrdLessThan 701 703 - SelectionMerge 706 None - BranchConditional 704 705 706 - 705: Label - Branch 6 - 706: Label - 708: 8(fvec4) Load 10(color) - 709: 8(fvec4) CompositeConstruct 85 85 85 85 - 710: 8(fvec4) FAdd 708 709 - Store 10(color) 710 - Branch 688 + Branch 687 + 687: Label + 690: 16(bool) Phi 17 666 161 705 + LoopMerge 688 None + Branch 691 + 691: Label + SelectionMerge 689 None + BranchConditional 690 689 692 + 692: Label + 693: 7(fvec4) Load 9(color) + 694: 6(float) CompositeExtract 693 0 + 696: 6(float) Load 695(d17) + 697: 16(bool) FOrdLessThan 694 696 + SelectionMerge 698 None + BranchConditional 697 698 688 + 698: Label + Branch 689 689: Label - Branch 711 - 711: Label - 714: 8(fvec4) Load 10(color) - 715: 7(float) CompositeExtract 714 1 - 716: 7(float) Load 658(d16) - 717: 17(bool) FOrdLessThan 715 716 - LoopMerge 712 None - BranchConditional 717 713 712 - 713: Label - 718: 8(fvec4) Load 10(color) - 719: 7(float) CompositeExtract 718 3 - 720: 7(float) Load 658(d16) - 721: 17(bool) FOrdLessThan 719 720 - SelectionMerge 723 None - BranchConditional 721 722 725 - 722: Label + 699: 7(fvec4) Load 9(color) + 700: 6(float) CompositeExtract 699 1 + 702: 6(float) Load 701(d18) + 703: 16(bool) FOrdLessThan 700 702 + SelectionMerge 705 None + BranchConditional 703 704 705 + 704: Label + Return + 705: Label + 707: 7(fvec4) Load 9(color) + 708: 7(fvec4) CompositeConstruct 84 84 84 84 + 709: 7(fvec4) FAdd 707 708 + Store 9(color) 709 + Branch 687 + 688: Label + Branch 710 + 710: Label + 713: 7(fvec4) Load 9(color) + 714: 6(float) CompositeExtract 713 1 + 715: 6(float) Load 657(d16) + 716: 16(bool) FOrdLessThan 714 715 + LoopMerge 711 None + BranchConditional 716 712 711 + 712: Label + 717: 7(fvec4) Load 9(color) + 718: 6(float) CompositeExtract 717 3 + 719: 6(float) Load 657(d16) + 720: 16(bool) FOrdLessThan 718 719 + SelectionMerge 722 None + BranchConditional 720 721 724 + 721: Label Kill - 725: Label - 726: 8(fvec4) Load 10(color) - 727: 8(fvec4) CompositeConstruct 85 85 85 85 - 728: 8(fvec4) FAdd 726 727 - Store 10(color) 728 - Branch 723 - 723: Label - Branch 711 - 712: Label - 729: 8(fvec4) Load 10(color) - 730: 8(fvec4) CompositeConstruct 85 85 85 85 - 731: 8(fvec4) FAdd 729 730 - Store 10(color) 731 - 732: 8(fvec4) Load 10(color) - Store 628(gl_FragColor) 732 - Branch 6 - 6: Label + 724: Label + 725: 7(fvec4) Load 9(color) + 726: 7(fvec4) CompositeConstruct 84 84 84 84 + 727: 7(fvec4) FAdd 725 726 + Store 9(color) 727 + Branch 722 + 722: Label + Branch 710 + 711: Label + 728: 7(fvec4) Load 9(color) + 729: 7(fvec4) CompositeConstruct 84 84 84 84 + 730: 7(fvec4) FAdd 728 729 + Store 9(color) 730 + 731: 7(fvec4) Load 9(color) + Store 627(gl_FragColor) 731 Return FunctionEnd diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out index d9af6e93..3871d858 100755 --- a/Test/baseResults/spv.loopsArtificial.frag.out +++ b/Test/baseResults/spv.loopsArtificial.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 196 +// Id's are bound by 195 Source GLSL 130 Capability Shader @@ -16,344 +16,342 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "color" - Name 12 "BaseColor" - Name 25 "d4" - Name 30 "bigColor4" - Name 84 "d13" - Name 149 "gl_FragColor" - Name 151 "bigColor" - Name 152 "bigColor1_1" - Name 153 "bigColor1_2" - Name 154 "bigColor1_3" - Name 155 "bigColor2" - Name 156 "bigColor3" - Name 157 "bigColor5" - Name 158 "bigColor6" - Name 159 "bigColor7" - Name 160 "bigColor8" - Name 161 "d" - Name 162 "d2" - Name 163 "d3" - Name 164 "d5" - Name 165 "d6" - Name 166 "d7" - Name 167 "d8" - Name 168 "d9" - Name 169 "d10" - Name 170 "d11" - Name 171 "d12" - Name 172 "d14" - Name 173 "d15" - Name 174 "d16" - Name 175 "d17" - Name 176 "d18" - Name 177 "d19" - Name 178 "d20" - Name 179 "d21" - Name 180 "d22" - Name 181 "d23" - Name 182 "d24" - Name 183 "d25" - Name 184 "d26" - Name 185 "d27" - Name 186 "d28" - Name 187 "d29" - Name 188 "d30" - Name 189 "d31" - Name 190 "d32" - Name 191 "d33" - Name 192 "d34" - Name 195 "Count" - Decorate 12(BaseColor) Smooth - Decorate 149(gl_FragColor) BuiltIn FragColor - Decorate 151(bigColor) NoStaticUse - Decorate 152(bigColor1_1) NoStaticUse - Decorate 153(bigColor1_2) NoStaticUse - Decorate 154(bigColor1_3) NoStaticUse - Decorate 155(bigColor2) NoStaticUse - Decorate 156(bigColor3) NoStaticUse - Decorate 157(bigColor5) NoStaticUse - Decorate 158(bigColor6) NoStaticUse - Decorate 159(bigColor7) NoStaticUse - Decorate 160(bigColor8) NoStaticUse - Decorate 161(d) NoStaticUse - Decorate 162(d2) NoStaticUse - Decorate 163(d3) NoStaticUse - Decorate 164(d5) NoStaticUse - Decorate 165(d6) NoStaticUse - Decorate 166(d7) NoStaticUse - Decorate 167(d8) NoStaticUse - Decorate 168(d9) NoStaticUse - Decorate 169(d10) NoStaticUse - Decorate 170(d11) NoStaticUse - Decorate 171(d12) NoStaticUse - Decorate 172(d14) NoStaticUse - Decorate 173(d15) NoStaticUse - Decorate 174(d16) NoStaticUse - Decorate 175(d17) NoStaticUse - Decorate 176(d18) NoStaticUse - Decorate 177(d19) NoStaticUse - Decorate 178(d20) NoStaticUse - Decorate 179(d21) NoStaticUse - Decorate 180(d22) NoStaticUse - Decorate 181(d23) NoStaticUse - Decorate 182(d24) NoStaticUse - Decorate 183(d25) NoStaticUse - Decorate 184(d26) NoStaticUse - Decorate 185(d27) NoStaticUse - Decorate 186(d28) NoStaticUse - Decorate 187(d29) NoStaticUse - Decorate 188(d30) NoStaticUse - Decorate 189(d31) NoStaticUse - Decorate 190(d32) NoStaticUse - Decorate 191(d33) NoStaticUse - Decorate 192(d34) NoStaticUse - Decorate 195(Count) NoStaticUse + Name 9 "color" + Name 11 "BaseColor" + Name 24 "d4" + Name 29 "bigColor4" + Name 83 "d13" + Name 148 "gl_FragColor" + Name 150 "bigColor" + Name 151 "bigColor1_1" + Name 152 "bigColor1_2" + Name 153 "bigColor1_3" + Name 154 "bigColor2" + Name 155 "bigColor3" + Name 156 "bigColor5" + Name 157 "bigColor6" + Name 158 "bigColor7" + Name 159 "bigColor8" + Name 160 "d" + Name 161 "d2" + Name 162 "d3" + Name 163 "d5" + Name 164 "d6" + Name 165 "d7" + Name 166 "d8" + Name 167 "d9" + Name 168 "d10" + Name 169 "d11" + Name 170 "d12" + Name 171 "d14" + Name 172 "d15" + Name 173 "d16" + Name 174 "d17" + Name 175 "d18" + Name 176 "d19" + Name 177 "d20" + Name 178 "d21" + Name 179 "d22" + Name 180 "d23" + Name 181 "d24" + Name 182 "d25" + Name 183 "d26" + Name 184 "d27" + Name 185 "d28" + Name 186 "d29" + Name 187 "d30" + Name 188 "d31" + Name 189 "d32" + Name 190 "d33" + Name 191 "d34" + Name 194 "Count" + Decorate 11(BaseColor) Smooth + Decorate 148(gl_FragColor) BuiltIn FragColor + Decorate 150(bigColor) NoStaticUse + Decorate 151(bigColor1_1) NoStaticUse + Decorate 152(bigColor1_2) NoStaticUse + Decorate 153(bigColor1_3) NoStaticUse + Decorate 154(bigColor2) NoStaticUse + Decorate 155(bigColor3) NoStaticUse + Decorate 156(bigColor5) NoStaticUse + Decorate 157(bigColor6) NoStaticUse + Decorate 158(bigColor7) NoStaticUse + Decorate 159(bigColor8) NoStaticUse + Decorate 160(d) NoStaticUse + Decorate 161(d2) NoStaticUse + Decorate 162(d3) NoStaticUse + Decorate 163(d5) NoStaticUse + Decorate 164(d6) NoStaticUse + Decorate 165(d7) NoStaticUse + Decorate 166(d8) NoStaticUse + Decorate 167(d9) NoStaticUse + Decorate 168(d10) NoStaticUse + Decorate 169(d11) NoStaticUse + Decorate 170(d12) NoStaticUse + Decorate 171(d14) NoStaticUse + Decorate 172(d15) NoStaticUse + Decorate 173(d16) NoStaticUse + Decorate 174(d17) NoStaticUse + Decorate 175(d18) NoStaticUse + Decorate 176(d19) NoStaticUse + Decorate 177(d20) NoStaticUse + Decorate 178(d21) NoStaticUse + Decorate 179(d22) NoStaticUse + Decorate 180(d23) NoStaticUse + Decorate 181(d24) NoStaticUse + Decorate 182(d25) NoStaticUse + Decorate 183(d26) NoStaticUse + Decorate 184(d27) NoStaticUse + Decorate 185(d28) NoStaticUse + Decorate 186(d29) NoStaticUse + Decorate 187(d30) NoStaticUse + Decorate 188(d31) NoStaticUse + Decorate 189(d32) NoStaticUse + Decorate 190(d33) NoStaticUse + Decorate 191(d34) NoStaticUse + Decorate 194(Count) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypePointer Input 8(fvec4) - 12(BaseColor): 11(ptr) Variable Input - 18: TypeBool - 19: 18(bool) ConstantTrue - 24: TypePointer UniformConstant 7(float) - 25(d4): 24(ptr) Variable UniformConstant - 29: TypePointer UniformConstant 8(fvec4) - 30(bigColor4): 29(ptr) Variable UniformConstant - 40: 7(float) Constant 1073741824 - 54: 7(float) Constant 1065353216 - 58: 18(bool) ConstantFalse - 84(d13): 24(ptr) Variable UniformConstant - 148: TypePointer Output 8(fvec4) -149(gl_FragColor): 148(ptr) Variable Output - 151(bigColor): 29(ptr) Variable UniformConstant -152(bigColor1_1): 29(ptr) Variable UniformConstant -153(bigColor1_2): 29(ptr) Variable UniformConstant -154(bigColor1_3): 29(ptr) Variable UniformConstant - 155(bigColor2): 29(ptr) Variable UniformConstant - 156(bigColor3): 29(ptr) Variable UniformConstant - 157(bigColor5): 29(ptr) Variable UniformConstant - 158(bigColor6): 29(ptr) Variable UniformConstant - 159(bigColor7): 29(ptr) Variable UniformConstant - 160(bigColor8): 29(ptr) Variable UniformConstant - 161(d): 24(ptr) Variable UniformConstant - 162(d2): 24(ptr) Variable UniformConstant - 163(d3): 24(ptr) Variable UniformConstant - 164(d5): 24(ptr) Variable UniformConstant - 165(d6): 24(ptr) Variable UniformConstant - 166(d7): 24(ptr) Variable UniformConstant - 167(d8): 24(ptr) Variable UniformConstant - 168(d9): 24(ptr) Variable UniformConstant - 169(d10): 24(ptr) Variable UniformConstant - 170(d11): 24(ptr) Variable UniformConstant - 171(d12): 24(ptr) Variable UniformConstant - 172(d14): 24(ptr) Variable UniformConstant - 173(d15): 24(ptr) Variable UniformConstant - 174(d16): 24(ptr) Variable UniformConstant - 175(d17): 24(ptr) Variable UniformConstant - 176(d18): 24(ptr) Variable UniformConstant - 177(d19): 24(ptr) Variable UniformConstant - 178(d20): 24(ptr) Variable UniformConstant - 179(d21): 24(ptr) Variable UniformConstant - 180(d22): 24(ptr) Variable UniformConstant - 181(d23): 24(ptr) Variable UniformConstant - 182(d24): 24(ptr) Variable UniformConstant - 183(d25): 24(ptr) Variable UniformConstant - 184(d26): 24(ptr) Variable UniformConstant - 185(d27): 24(ptr) Variable UniformConstant - 186(d28): 24(ptr) Variable UniformConstant - 187(d29): 24(ptr) Variable UniformConstant - 188(d30): 24(ptr) Variable UniformConstant - 189(d31): 24(ptr) Variable UniformConstant - 190(d32): 24(ptr) Variable UniformConstant - 191(d33): 24(ptr) Variable UniformConstant - 192(d34): 24(ptr) Variable UniformConstant - 193: TypeInt 32 1 - 194: TypePointer UniformConstant 193(int) - 195(Count): 194(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 17: TypeBool + 18: 17(bool) ConstantTrue + 23: TypePointer UniformConstant 6(float) + 24(d4): 23(ptr) Variable UniformConstant + 28: TypePointer UniformConstant 7(fvec4) + 29(bigColor4): 28(ptr) Variable UniformConstant + 39: 6(float) Constant 1073741824 + 53: 6(float) Constant 1065353216 + 57: 17(bool) ConstantFalse + 83(d13): 23(ptr) Variable UniformConstant + 147: TypePointer Output 7(fvec4) +148(gl_FragColor): 147(ptr) Variable Output + 150(bigColor): 28(ptr) Variable UniformConstant +151(bigColor1_1): 28(ptr) Variable UniformConstant +152(bigColor1_2): 28(ptr) Variable UniformConstant +153(bigColor1_3): 28(ptr) Variable UniformConstant + 154(bigColor2): 28(ptr) Variable UniformConstant + 155(bigColor3): 28(ptr) Variable UniformConstant + 156(bigColor5): 28(ptr) Variable UniformConstant + 157(bigColor6): 28(ptr) Variable UniformConstant + 158(bigColor7): 28(ptr) Variable UniformConstant + 159(bigColor8): 28(ptr) Variable UniformConstant + 160(d): 23(ptr) Variable UniformConstant + 161(d2): 23(ptr) Variable UniformConstant + 162(d3): 23(ptr) Variable UniformConstant + 163(d5): 23(ptr) Variable UniformConstant + 164(d6): 23(ptr) Variable UniformConstant + 165(d7): 23(ptr) Variable UniformConstant + 166(d8): 23(ptr) Variable UniformConstant + 167(d9): 23(ptr) Variable UniformConstant + 168(d10): 23(ptr) Variable UniformConstant + 169(d11): 23(ptr) Variable UniformConstant + 170(d12): 23(ptr) Variable UniformConstant + 171(d14): 23(ptr) Variable UniformConstant + 172(d15): 23(ptr) Variable UniformConstant + 173(d16): 23(ptr) Variable UniformConstant + 174(d17): 23(ptr) Variable UniformConstant + 175(d18): 23(ptr) Variable UniformConstant + 176(d19): 23(ptr) Variable UniformConstant + 177(d20): 23(ptr) Variable UniformConstant + 178(d21): 23(ptr) Variable UniformConstant + 179(d22): 23(ptr) Variable UniformConstant + 180(d23): 23(ptr) Variable UniformConstant + 181(d24): 23(ptr) Variable UniformConstant + 182(d25): 23(ptr) Variable UniformConstant + 183(d26): 23(ptr) Variable UniformConstant + 184(d27): 23(ptr) Variable UniformConstant + 185(d28): 23(ptr) Variable UniformConstant + 186(d29): 23(ptr) Variable UniformConstant + 187(d30): 23(ptr) Variable UniformConstant + 188(d31): 23(ptr) Variable UniformConstant + 189(d32): 23(ptr) Variable UniformConstant + 190(d33): 23(ptr) Variable UniformConstant + 191(d34): 23(ptr) Variable UniformConstant + 192: TypeInt 32 1 + 193: TypePointer UniformConstant 192(int) + 194(Count): 193(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 10(color): 9(ptr) Variable Function - 13: 8(fvec4) Load 12(BaseColor) - Store 10(color) 13 - Branch 14 - 14: Label - 17: 18(bool) Phi 19 5 58 50 58 65 - LoopMerge 15 None - Branch 20 - 20: Label - SelectionMerge 16 None - BranchConditional 17 16 21 - 21: Label - 22: 8(fvec4) Load 10(color) - 23: 7(float) CompositeExtract 22 2 - 26: 7(float) Load 25(d4) - 27: 18(bool) FOrdLessThan 23 26 - SelectionMerge 28 None - BranchConditional 27 28 15 - 28: Label - Branch 16 - 16: Label - 31: 8(fvec4) Load 30(bigColor4) - 32: 8(fvec4) Load 10(color) - 33: 8(fvec4) FAdd 32 31 - Store 10(color) 33 - 34: 8(fvec4) Load 10(color) - 35: 7(float) CompositeExtract 34 0 - 36: 7(float) Load 25(d4) - 37: 18(bool) FOrdLessThan 35 36 - SelectionMerge 39 None - BranchConditional 37 38 39 - 38: Label - 41: 8(fvec4) Load 10(color) - 42: 7(float) CompositeExtract 41 2 - 43: 7(float) FAdd 42 40 - 44: 8(fvec4) Load 10(color) - 45: 8(fvec4) CompositeInsert 43 44 2 - Store 10(color) 45 - 46: 8(fvec4) Load 10(color) - 47: 7(float) CompositeExtract 46 2 - 48: 7(float) Load 25(d4) - 49: 18(bool) FOrdLessThan 47 48 - SelectionMerge 51 None - BranchConditional 49 50 51 - 50: Label - 52: 8(fvec4) Load 10(color) - 53: 7(float) CompositeExtract 52 0 - 55: 7(float) FAdd 53 54 - 56: 8(fvec4) Load 10(color) - 57: 8(fvec4) CompositeInsert 55 56 0 - Store 10(color) 57 - Branch 14 - 51: Label - Branch 39 - 39: Label - 60: 8(fvec4) Load 10(color) - 61: 7(float) CompositeExtract 60 1 - 62: 7(float) Load 25(d4) - 63: 18(bool) FOrdLessThan 61 62 - SelectionMerge 65 None - BranchConditional 63 64 72 - 64: Label - 66: 7(float) Load 25(d4) - 67: 8(fvec4) Load 10(color) - 68: 7(float) CompositeExtract 67 1 - 69: 7(float) FAdd 68 66 - 70: 8(fvec4) Load 10(color) - 71: 8(fvec4) CompositeInsert 69 70 1 - Store 10(color) 71 - Branch 65 - 72: Label - 73: 7(float) Load 25(d4) - 74: 8(fvec4) Load 10(color) - 75: 7(float) CompositeExtract 74 0 - 76: 7(float) FAdd 75 73 - 77: 8(fvec4) Load 10(color) - 78: 8(fvec4) CompositeInsert 76 77 0 - Store 10(color) 78 - Branch 65 - 65: Label - Branch 14 + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + 16: 17(bool) Phi 18 5 57 49 57 64 + LoopMerge 14 None + Branch 19 + 19: Label + SelectionMerge 15 None + BranchConditional 16 15 20 + 20: Label + 21: 7(fvec4) Load 9(color) + 22: 6(float) CompositeExtract 21 2 + 25: 6(float) Load 24(d4) + 26: 17(bool) FOrdLessThan 22 25 + SelectionMerge 27 None + BranchConditional 26 27 14 + 27: Label + Branch 15 15: Label - Branch 79 + 30: 7(fvec4) Load 29(bigColor4) + 31: 7(fvec4) Load 9(color) + 32: 7(fvec4) FAdd 31 30 + Store 9(color) 32 + 33: 7(fvec4) Load 9(color) + 34: 6(float) CompositeExtract 33 0 + 35: 6(float) Load 24(d4) + 36: 17(bool) FOrdLessThan 34 35 + SelectionMerge 38 None + BranchConditional 36 37 38 + 37: Label + 40: 7(fvec4) Load 9(color) + 41: 6(float) CompositeExtract 40 2 + 42: 6(float) FAdd 41 39 + 43: 7(fvec4) Load 9(color) + 44: 7(fvec4) CompositeInsert 42 43 2 + Store 9(color) 44 + 45: 7(fvec4) Load 9(color) + 46: 6(float) CompositeExtract 45 2 + 47: 6(float) Load 24(d4) + 48: 17(bool) FOrdLessThan 46 47 + SelectionMerge 50 None + BranchConditional 48 49 50 + 49: Label + 51: 7(fvec4) Load 9(color) + 52: 6(float) CompositeExtract 51 0 + 54: 6(float) FAdd 52 53 + 55: 7(fvec4) Load 9(color) + 56: 7(fvec4) CompositeInsert 54 55 0 + Store 9(color) 56 + Branch 13 + 50: Label + Branch 38 + 38: Label + 59: 7(fvec4) Load 9(color) + 60: 6(float) CompositeExtract 59 1 + 61: 6(float) Load 24(d4) + 62: 17(bool) FOrdLessThan 60 61 + SelectionMerge 64 None + BranchConditional 62 63 71 + 63: Label + 65: 6(float) Load 24(d4) + 66: 7(fvec4) Load 9(color) + 67: 6(float) CompositeExtract 66 1 + 68: 6(float) FAdd 67 65 + 69: 7(fvec4) Load 9(color) + 70: 7(fvec4) CompositeInsert 68 69 1 + Store 9(color) 70 + Branch 64 + 71: Label + 72: 6(float) Load 24(d4) + 73: 7(fvec4) Load 9(color) + 74: 6(float) CompositeExtract 73 0 + 75: 6(float) FAdd 74 72 + 76: 7(fvec4) Load 9(color) + 77: 7(fvec4) CompositeInsert 75 76 0 + Store 9(color) 77 + Branch 64 + 64: Label + Branch 13 + 14: Label + Branch 78 + 78: Label + 81: 7(fvec4) Load 9(color) + 82: 6(float) CompositeExtract 81 3 + 84: 6(float) Load 83(d13) + 85: 17(bool) FOrdLessThan 82 84 + LoopMerge 79 None + BranchConditional 85 80 79 + 80: Label + 86: 7(fvec4) Load 9(color) + 87: 6(float) CompositeExtract 86 2 + 88: 6(float) Load 83(d13) + 89: 17(bool) FOrdLessThan 87 88 + SelectionMerge 91 None + BranchConditional 89 90 95 + 90: Label + 92: 7(fvec4) Load 9(color) + 93: 7(fvec4) CompositeConstruct 53 53 53 53 + 94: 7(fvec4) FAdd 92 93 + Store 9(color) 94 + Branch 91 + 95: Label + 96: 7(fvec4) Load 9(color) + 97: 7(fvec4) CompositeConstruct 53 53 53 53 + 98: 7(fvec4) FSub 96 97 + Store 9(color) 98 + Branch 91 + 91: Label + 99: 7(fvec4) Load 29(bigColor4) + 100: 7(fvec4) Load 9(color) + 101: 7(fvec4) FAdd 100 99 + Store 9(color) 101 + 102: 7(fvec4) Load 9(color) + 103: 6(float) CompositeExtract 102 0 + 104: 6(float) Load 24(d4) + 105: 17(bool) FOrdLessThan 103 104 + SelectionMerge 107 None + BranchConditional 105 106 107 + 106: Label + 108: 7(fvec4) Load 9(color) + 109: 6(float) CompositeExtract 108 2 + 110: 6(float) FAdd 109 39 + 111: 7(fvec4) Load 9(color) + 112: 7(fvec4) CompositeInsert 110 111 2 + Store 9(color) 112 + 113: 7(fvec4) Load 9(color) + 114: 6(float) CompositeExtract 113 2 + 115: 6(float) Load 24(d4) + 116: 17(bool) FOrdLessThan 114 115 + SelectionMerge 118 None + BranchConditional 116 117 118 + 117: Label + 119: 7(fvec4) Load 9(color) + 120: 6(float) CompositeExtract 119 0 + 121: 6(float) FAdd 120 53 + 122: 7(fvec4) Load 9(color) + 123: 7(fvec4) CompositeInsert 121 122 0 + Store 9(color) 123 + Branch 78 + 118: Label + Branch 107 + 107: Label + 125: 7(fvec4) Load 9(color) + 126: 6(float) CompositeExtract 125 1 + 127: 6(float) Load 24(d4) + 128: 17(bool) FOrdLessThan 126 127 + SelectionMerge 130 None + BranchConditional 128 129 137 + 129: Label + 131: 6(float) Load 24(d4) + 132: 7(fvec4) Load 9(color) + 133: 6(float) CompositeExtract 132 1 + 134: 6(float) FAdd 133 131 + 135: 7(fvec4) Load 9(color) + 136: 7(fvec4) CompositeInsert 134 135 1 + Store 9(color) 136 + Branch 130 + 137: Label + 138: 6(float) Load 24(d4) + 139: 7(fvec4) Load 9(color) + 140: 6(float) CompositeExtract 139 0 + 141: 6(float) FAdd 140 138 + 142: 7(fvec4) Load 9(color) + 143: 7(fvec4) CompositeInsert 141 142 0 + Store 9(color) 143 + Branch 130 + 130: Label + Branch 78 79: Label - 82: 8(fvec4) Load 10(color) - 83: 7(float) CompositeExtract 82 3 - 85: 7(float) Load 84(d13) - 86: 18(bool) FOrdLessThan 83 85 - LoopMerge 80 None - BranchConditional 86 81 80 - 81: Label - 87: 8(fvec4) Load 10(color) - 88: 7(float) CompositeExtract 87 2 - 89: 7(float) Load 84(d13) - 90: 18(bool) FOrdLessThan 88 89 - SelectionMerge 92 None - BranchConditional 90 91 96 - 91: Label - 93: 8(fvec4) Load 10(color) - 94: 8(fvec4) CompositeConstruct 54 54 54 54 - 95: 8(fvec4) FAdd 93 94 - Store 10(color) 95 - Branch 92 - 96: Label - 97: 8(fvec4) Load 10(color) - 98: 8(fvec4) CompositeConstruct 54 54 54 54 - 99: 8(fvec4) FSub 97 98 - Store 10(color) 99 - Branch 92 - 92: Label - 100: 8(fvec4) Load 30(bigColor4) - 101: 8(fvec4) Load 10(color) - 102: 8(fvec4) FAdd 101 100 - Store 10(color) 102 - 103: 8(fvec4) Load 10(color) - 104: 7(float) CompositeExtract 103 0 - 105: 7(float) Load 25(d4) - 106: 18(bool) FOrdLessThan 104 105 - SelectionMerge 108 None - BranchConditional 106 107 108 - 107: Label - 109: 8(fvec4) Load 10(color) - 110: 7(float) CompositeExtract 109 2 - 111: 7(float) FAdd 110 40 - 112: 8(fvec4) Load 10(color) - 113: 8(fvec4) CompositeInsert 111 112 2 - Store 10(color) 113 - 114: 8(fvec4) Load 10(color) - 115: 7(float) CompositeExtract 114 2 - 116: 7(float) Load 25(d4) - 117: 18(bool) FOrdLessThan 115 116 - SelectionMerge 119 None - BranchConditional 117 118 119 - 118: Label - 120: 8(fvec4) Load 10(color) - 121: 7(float) CompositeExtract 120 0 - 122: 7(float) FAdd 121 54 - 123: 8(fvec4) Load 10(color) - 124: 8(fvec4) CompositeInsert 122 123 0 - Store 10(color) 124 - Branch 79 - 119: Label - Branch 108 - 108: Label - 126: 8(fvec4) Load 10(color) - 127: 7(float) CompositeExtract 126 1 - 128: 7(float) Load 25(d4) - 129: 18(bool) FOrdLessThan 127 128 - SelectionMerge 131 None - BranchConditional 129 130 138 - 130: Label - 132: 7(float) Load 25(d4) - 133: 8(fvec4) Load 10(color) - 134: 7(float) CompositeExtract 133 1 - 135: 7(float) FAdd 134 132 - 136: 8(fvec4) Load 10(color) - 137: 8(fvec4) CompositeInsert 135 136 1 - Store 10(color) 137 - Branch 131 - 138: Label - 139: 7(float) Load 25(d4) - 140: 8(fvec4) Load 10(color) - 141: 7(float) CompositeExtract 140 0 - 142: 7(float) FAdd 141 139 - 143: 8(fvec4) Load 10(color) - 144: 8(fvec4) CompositeInsert 142 143 0 - Store 10(color) 144 - Branch 131 - 131: Label - Branch 79 - 80: Label - 145: 8(fvec4) Load 10(color) - 146: 8(fvec4) CompositeConstruct 54 54 54 54 - 147: 8(fvec4) FAdd 145 146 - Store 10(color) 147 - 150: 8(fvec4) Load 10(color) - Store 149(gl_FragColor) 150 - Branch 6 - 6: Label + 144: 7(fvec4) Load 9(color) + 145: 7(fvec4) CompositeConstruct 53 53 53 53 + 146: 7(fvec4) FAdd 144 145 + Store 9(color) 146 + 149: 7(fvec4) Load 9(color) + Store 148(gl_FragColor) 149 Return FunctionEnd diff --git a/Test/baseResults/spv.matFun.vert.out b/Test/baseResults/spv.matFun.vert.out index 4ba2e089..e46f7962 100755 --- a/Test/baseResults/spv.matFun.vert.out +++ b/Test/baseResults/spv.matFun.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 94 +// Id's are bound by 93 Source GLSL 130 Capability Shader @@ -13,128 +13,126 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 15 "xf(mf33;vf3;" - Name 13 "m" - Name 14 "v" - Name 22 "Mat3(mf44;" - Name 21 "m" - Name 27 "mxv(mf44;vf3;" - Name 25 "m4" - Name 26 "v" - Name 64 "param" - Name 70 "gl_Position" - Name 72 "m4" - Name 74 "v3" - Name 75 "param" - Name 77 "param" - Name 81 "m3" - Name 82 "param" - Name 84 "param" - Name 93 "gl_VertexID" - Decorate 70(gl_Position) BuiltIn Position - Decorate 93(gl_VertexID) BuiltIn VertexId - Decorate 93(gl_VertexID) NoStaticUse + Name 14 "xf(mf33;vf3;" + Name 12 "m" + Name 13 "v" + Name 21 "Mat3(mf44;" + Name 20 "m" + Name 26 "mxv(mf44;vf3;" + Name 24 "m4" + Name 25 "v" + Name 63 "param" + Name 69 "gl_Position" + Name 71 "m4" + Name 73 "v3" + Name 74 "param" + Name 76 "param" + Name 80 "m3" + Name 81 "param" + Name 83 "param" + Name 92 "gl_VertexID" + Decorate 69(gl_Position) BuiltIn Position + Decorate 92(gl_VertexID) BuiltIn VertexId + Decorate 92(gl_VertexID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 3 - 9: TypeMatrix 8(fvec3) 3 - 10: TypePointer Function 9 - 11: TypePointer Function 8(fvec3) - 12: TypeFunction 8(fvec3) 10(ptr) 11(ptr) - 17: TypeVector 7(float) 4 - 18: TypeMatrix 17(fvec4) 4 - 19: TypePointer Function 18 - 20: TypeFunction 9 19(ptr) - 24: TypeFunction 8(fvec3) 19(ptr) 11(ptr) - 33: TypeInt 32 1 - 34: 33(int) Constant 0 - 35: TypePointer Function 17(fvec4) - 39: 33(int) Constant 1 - 43: 33(int) Constant 2 - 47: 7(float) Constant 1065353216 - 48: 7(float) Constant 0 - 69: TypePointer Output 17(fvec4) - 70(gl_Position): 69(ptr) Variable Output - 71: TypePointer UniformConstant 18 - 72(m4): 71(ptr) Variable UniformConstant - 73: TypePointer Input 8(fvec3) - 74(v3): 73(ptr) Variable Input - 80: TypePointer UniformConstant 9 - 81(m3): 80(ptr) Variable UniformConstant - 92: TypePointer Input 33(int) - 93(gl_VertexID): 92(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeMatrix 7(fvec3) 3 + 9: TypePointer Function 8 + 10: TypePointer Function 7(fvec3) + 11: TypeFunction 7(fvec3) 9(ptr) 10(ptr) + 16: TypeVector 6(float) 4 + 17: TypeMatrix 16(fvec4) 4 + 18: TypePointer Function 17 + 19: TypeFunction 8 18(ptr) + 23: TypeFunction 7(fvec3) 18(ptr) 10(ptr) + 32: TypeInt 32 1 + 33: 32(int) Constant 0 + 34: TypePointer Function 16(fvec4) + 38: 32(int) Constant 1 + 42: 32(int) Constant 2 + 46: 6(float) Constant 1065353216 + 47: 6(float) Constant 0 + 68: TypePointer Output 16(fvec4) + 69(gl_Position): 68(ptr) Variable Output + 70: TypePointer UniformConstant 17 + 71(m4): 70(ptr) Variable UniformConstant + 72: TypePointer Input 7(fvec3) + 73(v3): 72(ptr) Variable Input + 79: TypePointer UniformConstant 8 + 80(m3): 79(ptr) Variable UniformConstant + 91: TypePointer Input 32(int) + 92(gl_VertexID): 91(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 75(param): 19(ptr) Variable Function - 77(param): 11(ptr) Variable Function - 82(param): 10(ptr) Variable Function - 84(param): 11(ptr) Variable Function - 76: 18 Load 72(m4) - Store 75(param) 76 - 78: 8(fvec3) Load 74(v3) - Store 77(param) 78 - 79: 8(fvec3) FunctionCall 27(mxv(mf44;vf3;) 75(param) 77(param) - 83: 9 Load 81(m3) - Store 82(param) 83 - 85: 8(fvec3) Load 74(v3) - Store 84(param) 85 - 86: 8(fvec3) FunctionCall 15(xf(mf33;vf3;) 82(param) 84(param) - 87: 8(fvec3) FAdd 79 86 - 88: 7(float) CompositeExtract 87 0 - 89: 7(float) CompositeExtract 87 1 - 90: 7(float) CompositeExtract 87 2 - 91: 17(fvec4) CompositeConstruct 88 89 90 47 - Store 70(gl_Position) 91 - Branch 6 - 6: Label + 74(param): 18(ptr) Variable Function + 76(param): 10(ptr) Variable Function + 81(param): 9(ptr) Variable Function + 83(param): 10(ptr) Variable Function + 75: 17 Load 71(m4) + Store 74(param) 75 + 77: 7(fvec3) Load 73(v3) + Store 76(param) 77 + 78: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 74(param) 76(param) + 82: 8 Load 80(m3) + Store 81(param) 82 + 84: 7(fvec3) Load 73(v3) + Store 83(param) 84 + 85: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 81(param) 83(param) + 86: 7(fvec3) FAdd 78 85 + 87: 6(float) CompositeExtract 86 0 + 88: 6(float) CompositeExtract 86 1 + 89: 6(float) CompositeExtract 86 2 + 90: 16(fvec4) CompositeConstruct 87 88 89 46 + Store 69(gl_Position) 90 Return FunctionEnd -15(xf(mf33;vf3;): 8(fvec3) Function None 12 - 13(m): 10(ptr) FunctionParameter - 14(v): 11(ptr) FunctionParameter - 16: Label - 29: 8(fvec3) Load 14(v) - 30: 9 Load 13(m) - 31: 8(fvec3) VectorTimesMatrix 29 30 - ReturnValue 31 +14(xf(mf33;vf3;): 7(fvec3) Function None 11 + 12(m): 9(ptr) FunctionParameter + 13(v): 10(ptr) FunctionParameter + 15: Label + 28: 7(fvec3) Load 13(v) + 29: 8 Load 12(m) + 30: 7(fvec3) VectorTimesMatrix 28 29 + ReturnValue 30 FunctionEnd - 22(Mat3(mf44;): 9 Function None 20 - 21(m): 19(ptr) FunctionParameter - 23: Label - 36: 35(ptr) AccessChain 21(m) 34 - 37: 17(fvec4) Load 36 - 38: 8(fvec3) VectorShuffle 37 37 0 1 2 - 40: 35(ptr) AccessChain 21(m) 39 - 41: 17(fvec4) Load 40 - 42: 8(fvec3) VectorShuffle 41 41 0 1 2 - 44: 35(ptr) AccessChain 21(m) 43 - 45: 17(fvec4) Load 44 - 46: 8(fvec3) VectorShuffle 45 45 0 1 2 - 49: 7(float) CompositeExtract 38 0 - 50: 7(float) CompositeExtract 38 1 - 51: 7(float) CompositeExtract 38 2 - 52: 7(float) CompositeExtract 42 0 - 53: 7(float) CompositeExtract 42 1 - 54: 7(float) CompositeExtract 42 2 - 55: 7(float) CompositeExtract 46 0 - 56: 7(float) CompositeExtract 46 1 - 57: 7(float) CompositeExtract 46 2 - 58: 8(fvec3) CompositeConstruct 49 50 51 - 59: 8(fvec3) CompositeConstruct 52 53 54 - 60: 8(fvec3) CompositeConstruct 55 56 57 - 61: 9 CompositeConstruct 58 59 60 - ReturnValue 61 + 21(Mat3(mf44;): 8 Function None 19 + 20(m): 18(ptr) FunctionParameter + 22: Label + 35: 34(ptr) AccessChain 20(m) 33 + 36: 16(fvec4) Load 35 + 37: 7(fvec3) VectorShuffle 36 36 0 1 2 + 39: 34(ptr) AccessChain 20(m) 38 + 40: 16(fvec4) Load 39 + 41: 7(fvec3) VectorShuffle 40 40 0 1 2 + 43: 34(ptr) AccessChain 20(m) 42 + 44: 16(fvec4) Load 43 + 45: 7(fvec3) VectorShuffle 44 44 0 1 2 + 48: 6(float) CompositeExtract 37 0 + 49: 6(float) CompositeExtract 37 1 + 50: 6(float) CompositeExtract 37 2 + 51: 6(float) CompositeExtract 41 0 + 52: 6(float) CompositeExtract 41 1 + 53: 6(float) CompositeExtract 41 2 + 54: 6(float) CompositeExtract 45 0 + 55: 6(float) CompositeExtract 45 1 + 56: 6(float) CompositeExtract 45 2 + 57: 7(fvec3) CompositeConstruct 48 49 50 + 58: 7(fvec3) CompositeConstruct 51 52 53 + 59: 7(fvec3) CompositeConstruct 54 55 56 + 60: 8 CompositeConstruct 57 58 59 + ReturnValue 60 FunctionEnd -27(mxv(mf44;vf3;): 8(fvec3) Function None 24 - 25(m4): 19(ptr) FunctionParameter - 26(v): 11(ptr) FunctionParameter - 28: Label - 64(param): 19(ptr) Variable Function - 63: 8(fvec3) Load 26(v) - 65: 18 Load 25(m4) - Store 64(param) 65 - 66: 9 FunctionCall 22(Mat3(mf44;) 64(param) - 67: 8(fvec3) VectorTimesMatrix 63 66 - ReturnValue 67 +26(mxv(mf44;vf3;): 7(fvec3) Function None 23 + 24(m4): 18(ptr) FunctionParameter + 25(v): 10(ptr) FunctionParameter + 27: Label + 63(param): 18(ptr) Variable Function + 62: 7(fvec3) Load 25(v) + 64: 17 Load 24(m4) + Store 63(param) 64 + 65: 8 FunctionCall 21(Mat3(mf44;) 63(param) + 66: 7(fvec3) VectorTimesMatrix 62 65 + ReturnValue 66 FunctionEnd diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out index 1e862e1c..ef635657 100644 --- a/Test/baseResults/spv.newTexture.frag.out +++ b/Test/baseResults/spv.newTexture.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 256 +// Id's are bound by 255 Source GLSL 430 Capability Shader @@ -16,330 +16,328 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "v" - Name 14 "s2D" - Name 18 "c2D" - Name 24 "s3D" - Name 27 "c4D" - Name 35 "s2DArray" - Name 39 "c3D" - Name 48 "s2DShadow" - Name 56 "c1D" - Name 68 "ic3D" - Name 71 "ic1D" - Name 78 "ic2D" - Name 103 "sCube" - Name 114 "s2DArrayShadow" - Name 142 "iv" - Name 146 "is2D" - Name 181 "is3D" - Name 193 "isCube" - Name 205 "is2DArray" - Name 215 "iv2" - Name 219 "sCubeShadow" - Name 224 "FragData" - Name 236 "is2Dms" - Name 241 "us2D" - Name 245 "us3D" - Name 249 "usCube" - Name 253 "us2DArray" - Name 255 "ic4D" - Decorate 18(c2D) Smooth - Decorate 27(c4D) Smooth - Decorate 39(c3D) Smooth - Decorate 56(c1D) Smooth - Decorate 68(ic3D) Flat - Decorate 71(ic1D) Flat - Decorate 78(ic2D) Flat - Decorate 236(is2Dms) NoStaticUse - Decorate 241(us2D) NoStaticUse - Decorate 245(us3D) NoStaticUse - Decorate 249(usCube) NoStaticUse - Decorate 253(us2DArray) NoStaticUse - Decorate 255(ic4D) Flat - Decorate 255(ic4D) NoStaticUse + Name 9 "v" + Name 13 "s2D" + Name 17 "c2D" + Name 23 "s3D" + Name 26 "c4D" + Name 34 "s2DArray" + Name 38 "c3D" + Name 47 "s2DShadow" + Name 55 "c1D" + Name 67 "ic3D" + Name 70 "ic1D" + Name 77 "ic2D" + Name 102 "sCube" + Name 113 "s2DArrayShadow" + Name 141 "iv" + Name 145 "is2D" + Name 180 "is3D" + Name 192 "isCube" + Name 204 "is2DArray" + Name 214 "iv2" + Name 218 "sCubeShadow" + Name 223 "FragData" + Name 235 "is2Dms" + Name 240 "us2D" + Name 244 "us3D" + Name 248 "usCube" + Name 252 "us2DArray" + Name 254 "ic4D" + Decorate 17(c2D) Smooth + Decorate 26(c4D) Smooth + Decorate 38(c3D) Smooth + Decorate 55(c1D) Smooth + Decorate 67(ic3D) Flat + Decorate 70(ic1D) Flat + Decorate 77(ic2D) Flat + Decorate 235(is2Dms) NoStaticUse + Decorate 240(us2D) NoStaticUse + Decorate 244(us3D) NoStaticUse + Decorate 248(usCube) NoStaticUse + Decorate 252(us2DArray) NoStaticUse + Decorate 254(ic4D) Flat + Decorate 254(ic4D) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypeImage 7(float) 2D sampled format:Unknown - 12: TypeSampledImage 11 - 13: TypePointer UniformConstant 12 - 14(s2D): 13(ptr) Variable UniformConstant - 16: TypeVector 7(float) 2 - 17: TypePointer Input 16(fvec2) - 18(c2D): 17(ptr) Variable Input - 21: TypeImage 7(float) 3D sampled format:Unknown - 22: TypeSampledImage 21 - 23: TypePointer UniformConstant 22 - 24(s3D): 23(ptr) Variable UniformConstant - 26: TypePointer Input 8(fvec4) - 27(c4D): 26(ptr) Variable Input - 32: TypeImage 7(float) 2D array sampled format:Unknown - 33: TypeSampledImage 32 - 34: TypePointer UniformConstant 33 - 35(s2DArray): 34(ptr) Variable UniformConstant - 37: TypeVector 7(float) 3 - 38: TypePointer Input 37(fvec3) - 39(c3D): 38(ptr) Variable Input - 41: 7(float) Constant 1067030938 - 45: TypeImage 7(float) 2D depth sampled format:Unknown - 46: TypeSampledImage 45 - 47: TypePointer UniformConstant 46 - 48(s2DShadow): 47(ptr) Variable UniformConstant - 51: TypeInt 32 1 - 52: TypeVector 51(int) 2 - 53: 51(int) Constant 3 - 54: 52(ivec2) ConstantComposite 53 53 - 55: TypePointer Input 7(float) - 56(c1D): 55(ptr) Variable Input - 66: TypeVector 51(int) 3 - 67: TypePointer Input 66(ivec3) - 68(ic3D): 67(ptr) Variable Input - 70: TypePointer Input 51(int) - 71(ic1D): 70(ptr) Variable Input - 77: TypePointer Input 52(ivec2) - 78(ic2D): 77(ptr) Variable Input - 80: 51(int) Constant 4 - 100: TypeImage 7(float) Cube sampled format:Unknown - 101: TypeSampledImage 100 - 102: TypePointer UniformConstant 101 - 103(sCube): 102(ptr) Variable UniformConstant - 111: TypeImage 7(float) 2D depth array sampled format:Unknown - 112: TypeSampledImage 111 - 113: TypePointer UniformConstant 112 -114(s2DArrayShadow): 113(ptr) Variable UniformConstant - 140: TypeVector 51(int) 4 - 141: TypePointer Function 140(ivec4) - 143: TypeImage 51(int) 2D sampled format:Unknown - 144: TypeSampledImage 143 - 145: TypePointer UniformConstant 144 - 146(is2D): 145(ptr) Variable UniformConstant - 178: TypeImage 51(int) 3D sampled format:Unknown - 179: TypeSampledImage 178 - 180: TypePointer UniformConstant 179 - 181(is3D): 180(ptr) Variable UniformConstant - 184: 7(float) Constant 1082549862 - 190: TypeImage 51(int) Cube sampled format:Unknown - 191: TypeSampledImage 190 - 192: TypePointer UniformConstant 191 - 193(isCube): 192(ptr) Variable UniformConstant - 202: TypeImage 51(int) 2D array sampled format:Unknown - 203: TypeSampledImage 202 - 204: TypePointer UniformConstant 203 - 205(is2DArray): 204(ptr) Variable UniformConstant - 214: TypePointer Function 52(ivec2) - 216: TypeImage 7(float) Cube depth sampled format:Unknown - 217: TypeSampledImage 216 - 218: TypePointer UniformConstant 217 -219(sCubeShadow): 218(ptr) Variable UniformConstant - 221: 51(int) Constant 2 - 223: TypePointer Output 8(fvec4) - 224(FragData): 223(ptr) Variable Output - 228: 7(float) Constant 0 - 233: TypeImage 51(int) 2D multi-sampled sampled format:Unknown - 234: TypeSampledImage 233 - 235: TypePointer UniformConstant 234 - 236(is2Dms): 235(ptr) Variable UniformConstant - 237: TypeInt 32 0 - 238: TypeImage 237(int) 2D sampled format:Unknown - 239: TypeSampledImage 238 - 240: TypePointer UniformConstant 239 - 241(us2D): 240(ptr) Variable UniformConstant - 242: TypeImage 237(int) 3D sampled format:Unknown - 243: TypeSampledImage 242 - 244: TypePointer UniformConstant 243 - 245(us3D): 244(ptr) Variable UniformConstant - 246: TypeImage 237(int) Cube sampled format:Unknown - 247: TypeSampledImage 246 - 248: TypePointer UniformConstant 247 - 249(usCube): 248(ptr) Variable UniformConstant - 250: TypeImage 237(int) 2D array sampled format:Unknown - 251: TypeSampledImage 250 - 252: TypePointer UniformConstant 251 - 253(us2DArray): 252(ptr) Variable UniformConstant - 254: TypePointer Input 140(ivec4) - 255(ic4D): 254(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(s2D): 12(ptr) Variable UniformConstant + 15: TypeVector 6(float) 2 + 16: TypePointer Input 15(fvec2) + 17(c2D): 16(ptr) Variable Input + 20: TypeImage 6(float) 3D sampled format:Unknown + 21: TypeSampledImage 20 + 22: TypePointer UniformConstant 21 + 23(s3D): 22(ptr) Variable UniformConstant + 25: TypePointer Input 7(fvec4) + 26(c4D): 25(ptr) Variable Input + 31: TypeImage 6(float) 2D array sampled format:Unknown + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 + 34(s2DArray): 33(ptr) Variable UniformConstant + 36: TypeVector 6(float) 3 + 37: TypePointer Input 36(fvec3) + 38(c3D): 37(ptr) Variable Input + 40: 6(float) Constant 1067030938 + 44: TypeImage 6(float) 2D depth sampled format:Unknown + 45: TypeSampledImage 44 + 46: TypePointer UniformConstant 45 + 47(s2DShadow): 46(ptr) Variable UniformConstant + 50: TypeInt 32 1 + 51: TypeVector 50(int) 2 + 52: 50(int) Constant 3 + 53: 51(ivec2) ConstantComposite 52 52 + 54: TypePointer Input 6(float) + 55(c1D): 54(ptr) Variable Input + 65: TypeVector 50(int) 3 + 66: TypePointer Input 65(ivec3) + 67(ic3D): 66(ptr) Variable Input + 69: TypePointer Input 50(int) + 70(ic1D): 69(ptr) Variable Input + 76: TypePointer Input 51(ivec2) + 77(ic2D): 76(ptr) Variable Input + 79: 50(int) Constant 4 + 99: TypeImage 6(float) Cube sampled format:Unknown + 100: TypeSampledImage 99 + 101: TypePointer UniformConstant 100 + 102(sCube): 101(ptr) Variable UniformConstant + 110: TypeImage 6(float) 2D depth array sampled format:Unknown + 111: TypeSampledImage 110 + 112: TypePointer UniformConstant 111 +113(s2DArrayShadow): 112(ptr) Variable UniformConstant + 139: TypeVector 50(int) 4 + 140: TypePointer Function 139(ivec4) + 142: TypeImage 50(int) 2D sampled format:Unknown + 143: TypeSampledImage 142 + 144: TypePointer UniformConstant 143 + 145(is2D): 144(ptr) Variable UniformConstant + 177: TypeImage 50(int) 3D sampled format:Unknown + 178: TypeSampledImage 177 + 179: TypePointer UniformConstant 178 + 180(is3D): 179(ptr) Variable UniformConstant + 183: 6(float) Constant 1082549862 + 189: TypeImage 50(int) Cube sampled format:Unknown + 190: TypeSampledImage 189 + 191: TypePointer UniformConstant 190 + 192(isCube): 191(ptr) Variable UniformConstant + 201: TypeImage 50(int) 2D array sampled format:Unknown + 202: TypeSampledImage 201 + 203: TypePointer UniformConstant 202 + 204(is2DArray): 203(ptr) Variable UniformConstant + 213: TypePointer Function 51(ivec2) + 215: TypeImage 6(float) Cube depth sampled format:Unknown + 216: TypeSampledImage 215 + 217: TypePointer UniformConstant 216 +218(sCubeShadow): 217(ptr) Variable UniformConstant + 220: 50(int) Constant 2 + 222: TypePointer Output 7(fvec4) + 223(FragData): 222(ptr) Variable Output + 227: 6(float) Constant 0 + 232: TypeImage 50(int) 2D multi-sampled sampled format:Unknown + 233: TypeSampledImage 232 + 234: TypePointer UniformConstant 233 + 235(is2Dms): 234(ptr) Variable UniformConstant + 236: TypeInt 32 0 + 237: TypeImage 236(int) 2D sampled format:Unknown + 238: TypeSampledImage 237 + 239: TypePointer UniformConstant 238 + 240(us2D): 239(ptr) Variable UniformConstant + 241: TypeImage 236(int) 3D sampled format:Unknown + 242: TypeSampledImage 241 + 243: TypePointer UniformConstant 242 + 244(us3D): 243(ptr) Variable UniformConstant + 245: TypeImage 236(int) Cube sampled format:Unknown + 246: TypeSampledImage 245 + 247: TypePointer UniformConstant 246 + 248(usCube): 247(ptr) Variable UniformConstant + 249: TypeImage 236(int) 2D array sampled format:Unknown + 250: TypeSampledImage 249 + 251: TypePointer UniformConstant 250 + 252(us2DArray): 251(ptr) Variable UniformConstant + 253: TypePointer Input 139(ivec4) + 254(ic4D): 253(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 10(v): 9(ptr) Variable Function - 142(iv): 141(ptr) Variable Function - 215(iv2): 214(ptr) Variable Function - 15: 12 Load 14(s2D) - 19: 16(fvec2) Load 18(c2D) - 20: 8(fvec4) ImageSampleImplicitLod 15 19 - Store 10(v) 20 - 25: 22 Load 24(s3D) - 28: 8(fvec4) Load 27(c4D) - 29: 8(fvec4) ImageSampleProjImplicitLod 25 28 - 30: 8(fvec4) Load 10(v) - 31: 8(fvec4) FAdd 30 29 - Store 10(v) 31 - 36: 33 Load 35(s2DArray) - 40: 37(fvec3) Load 39(c3D) - 42: 8(fvec4) ImageSampleExplicitLod 36 40 41 - 43: 8(fvec4) Load 10(v) - 44: 8(fvec4) FAdd 43 42 - Store 10(v) 44 - 49: 46 Load 48(s2DShadow) - 50: 37(fvec3) Load 39(c3D) - 57: 7(float) Load 56(c1D) - 58: 7(float) CompositeExtract 50 2 - 59: 7(float) ImageSampleDrefImplicitLod 49 50 58 57 54 - 60: 8(fvec4) Load 10(v) - 61: 7(float) CompositeExtract 60 1 - 62: 7(float) FAdd 61 59 - 63: 8(fvec4) Load 10(v) - 64: 8(fvec4) CompositeInsert 62 63 1 - Store 10(v) 64 - 65: 22 Load 24(s3D) - 69: 66(ivec3) Load 68(ic3D) - 72: 51(int) Load 71(ic1D) - 73: 8(fvec4) ImageFetch 65 69 - 74: 8(fvec4) Load 10(v) - 75: 8(fvec4) FAdd 74 73 - Store 10(v) 75 - 76: 12 Load 14(s2D) - 79: 52(ivec2) Load 78(ic2D) - 81: 8(fvec4) ImageFetch 76 79 80 - 82: 8(fvec4) Load 10(v) - 83: 8(fvec4) FAdd 82 81 - Store 10(v) 83 - 84: 46 Load 48(s2DShadow) - 85: 37(fvec3) Load 39(c3D) - 86: 7(float) Load 56(c1D) - 87: 7(float) CompositeExtract 85 2 - 88: 7(float) ImageSampleDrefExplicitLod 84 85 87 86 54 - 89: 8(fvec4) Load 10(v) - 90: 7(float) CompositeExtract 89 1 - 91: 7(float) FAdd 90 88 - 92: 8(fvec4) Load 10(v) - 93: 8(fvec4) CompositeInsert 91 92 1 - Store 10(v) 93 - 94: 12 Load 14(s2D) - 95: 37(fvec3) Load 39(c3D) - 96: 7(float) Load 56(c1D) - 97: 8(fvec4) ImageSampleProjExplicitLod 94 95 96 54 - 98: 8(fvec4) Load 10(v) - 99: 8(fvec4) FAdd 98 97 - Store 10(v) 99 - 104: 101 Load 103(sCube) - 105: 37(fvec3) Load 39(c3D) - 106: 37(fvec3) Load 39(c3D) - 107: 37(fvec3) Load 39(c3D) - 108: 8(fvec4) ImageSampleExplicitLod 104 105 106 107 - 109: 8(fvec4) Load 10(v) - 110: 8(fvec4) FAdd 109 108 - Store 10(v) 110 - 115: 112 Load 114(s2DArrayShadow) - 116: 8(fvec4) Load 27(c4D) - 117: 16(fvec2) Load 18(c2D) - 118: 16(fvec2) Load 18(c2D) - 119: 7(float) CompositeExtract 116 3 - 120: 7(float) ImageSampleDrefExplicitLod 115 116 119 117 118 54 - 121: 8(fvec4) Load 10(v) - 122: 7(float) CompositeExtract 121 0 - 123: 7(float) FAdd 122 120 - 124: 8(fvec4) Load 10(v) - 125: 8(fvec4) CompositeInsert 123 124 0 - Store 10(v) 125 - 126: 22 Load 24(s3D) - 127: 8(fvec4) Load 27(c4D) - 128: 37(fvec3) Load 39(c3D) - 129: 37(fvec3) Load 39(c3D) - 130: 8(fvec4) ImageSampleProjExplicitLod 126 127 128 129 - 131: 8(fvec4) Load 10(v) - 132: 8(fvec4) FAdd 131 130 - Store 10(v) 132 - 133: 12 Load 14(s2D) - 134: 37(fvec3) Load 39(c3D) - 135: 16(fvec2) Load 18(c2D) - 136: 16(fvec2) Load 18(c2D) - 137: 8(fvec4) ImageSampleProjExplicitLod 133 134 135 136 54 - 138: 8(fvec4) Load 10(v) - 139: 8(fvec4) FAdd 138 137 - Store 10(v) 139 - 147: 144 Load 146(is2D) - 148: 16(fvec2) Load 18(c2D) - 149: 140(ivec4) ImageSampleImplicitLod 147 148 - Store 142(iv) 149 - 150: 140(ivec4) Load 142(iv) - 151: 8(fvec4) ConvertSToF 150 - 152: 8(fvec4) Load 10(v) - 153: 8(fvec4) FAdd 152 151 - Store 10(v) 153 - 154: 144 Load 146(is2D) - 155: 8(fvec4) Load 27(c4D) - 156: 140(ivec4) ImageSampleProjImplicitLod 154 155 54 - Store 142(iv) 156 - 157: 140(ivec4) Load 142(iv) - 158: 8(fvec4) ConvertSToF 157 - 159: 8(fvec4) Load 10(v) - 160: 8(fvec4) FAdd 159 158 - Store 10(v) 160 - 161: 144 Load 146(is2D) - 162: 37(fvec3) Load 39(c3D) - 163: 7(float) Load 56(c1D) - 164: 140(ivec4) ImageSampleProjExplicitLod 161 162 163 - Store 142(iv) 164 - 165: 140(ivec4) Load 142(iv) - 166: 8(fvec4) ConvertSToF 165 - 167: 8(fvec4) Load 10(v) - 168: 8(fvec4) FAdd 167 166 - Store 10(v) 168 - 169: 144 Load 146(is2D) - 170: 37(fvec3) Load 39(c3D) - 171: 16(fvec2) Load 18(c2D) - 172: 16(fvec2) Load 18(c2D) - 173: 140(ivec4) ImageSampleProjExplicitLod 169 170 171 172 - Store 142(iv) 173 - 174: 140(ivec4) Load 142(iv) - 175: 8(fvec4) ConvertSToF 174 - 176: 8(fvec4) Load 10(v) - 177: 8(fvec4) FAdd 176 175 - Store 10(v) 177 - 182: 179 Load 181(is3D) - 183: 37(fvec3) Load 39(c3D) - 185: 140(ivec4) ImageSampleImplicitLod 182 183 184 - Store 142(iv) 185 - 186: 140(ivec4) Load 142(iv) - 187: 8(fvec4) ConvertSToF 186 - 188: 8(fvec4) Load 10(v) - 189: 8(fvec4) FAdd 188 187 - Store 10(v) 189 - 194: 191 Load 193(isCube) - 195: 37(fvec3) Load 39(c3D) - 196: 7(float) Load 56(c1D) - 197: 140(ivec4) ImageSampleExplicitLod 194 195 196 - Store 142(iv) 197 - 198: 140(ivec4) Load 142(iv) - 199: 8(fvec4) ConvertSToF 198 - 200: 8(fvec4) Load 10(v) - 201: 8(fvec4) FAdd 200 199 - Store 10(v) 201 - 206: 203 Load 205(is2DArray) - 207: 66(ivec3) Load 68(ic3D) - 208: 51(int) Load 71(ic1D) - 209: 140(ivec4) ImageFetch 206 207 - Store 142(iv) 209 - 210: 140(ivec4) Load 142(iv) - 211: 8(fvec4) ConvertSToF 210 - 212: 8(fvec4) Load 10(v) - 213: 8(fvec4) FAdd 212 211 - Store 10(v) 213 - 220: 217 Load 219(sCubeShadow) - 222: 52(ivec2) ImageQuerySizeLod 220 221 - Store 215(iv2) 222 - 225: 8(fvec4) Load 10(v) - 226: 52(ivec2) Load 215(iv2) - 227: 16(fvec2) ConvertSToF 226 - 229: 7(float) CompositeExtract 227 0 - 230: 7(float) CompositeExtract 227 1 - 231: 8(fvec4) CompositeConstruct 229 230 228 228 - 232: 8(fvec4) FAdd 225 231 - Store 224(FragData) 232 - Branch 6 - 6: Label + 9(v): 8(ptr) Variable Function + 141(iv): 140(ptr) Variable Function + 214(iv2): 213(ptr) Variable Function + 14: 11 Load 13(s2D) + 18: 15(fvec2) Load 17(c2D) + 19: 7(fvec4) ImageSampleImplicitLod 14 18 + Store 9(v) 19 + 24: 21 Load 23(s3D) + 27: 7(fvec4) Load 26(c4D) + 28: 7(fvec4) ImageSampleProjImplicitLod 24 27 + 29: 7(fvec4) Load 9(v) + 30: 7(fvec4) FAdd 29 28 + Store 9(v) 30 + 35: 32 Load 34(s2DArray) + 39: 36(fvec3) Load 38(c3D) + 41: 7(fvec4) ImageSampleExplicitLod 35 39 40 + 42: 7(fvec4) Load 9(v) + 43: 7(fvec4) FAdd 42 41 + Store 9(v) 43 + 48: 45 Load 47(s2DShadow) + 49: 36(fvec3) Load 38(c3D) + 56: 6(float) Load 55(c1D) + 57: 6(float) CompositeExtract 49 2 + 58: 6(float) ImageSampleDrefImplicitLod 48 49 57 56 53 + 59: 7(fvec4) Load 9(v) + 60: 6(float) CompositeExtract 59 1 + 61: 6(float) FAdd 60 58 + 62: 7(fvec4) Load 9(v) + 63: 7(fvec4) CompositeInsert 61 62 1 + Store 9(v) 63 + 64: 21 Load 23(s3D) + 68: 65(ivec3) Load 67(ic3D) + 71: 50(int) Load 70(ic1D) + 72: 7(fvec4) ImageFetch 64 68 + 73: 7(fvec4) Load 9(v) + 74: 7(fvec4) FAdd 73 72 + Store 9(v) 74 + 75: 11 Load 13(s2D) + 78: 51(ivec2) Load 77(ic2D) + 80: 7(fvec4) ImageFetch 75 78 79 + 81: 7(fvec4) Load 9(v) + 82: 7(fvec4) FAdd 81 80 + Store 9(v) 82 + 83: 45 Load 47(s2DShadow) + 84: 36(fvec3) Load 38(c3D) + 85: 6(float) Load 55(c1D) + 86: 6(float) CompositeExtract 84 2 + 87: 6(float) ImageSampleDrefExplicitLod 83 84 86 85 53 + 88: 7(fvec4) Load 9(v) + 89: 6(float) CompositeExtract 88 1 + 90: 6(float) FAdd 89 87 + 91: 7(fvec4) Load 9(v) + 92: 7(fvec4) CompositeInsert 90 91 1 + Store 9(v) 92 + 93: 11 Load 13(s2D) + 94: 36(fvec3) Load 38(c3D) + 95: 6(float) Load 55(c1D) + 96: 7(fvec4) ImageSampleProjExplicitLod 93 94 95 53 + 97: 7(fvec4) Load 9(v) + 98: 7(fvec4) FAdd 97 96 + Store 9(v) 98 + 103: 100 Load 102(sCube) + 104: 36(fvec3) Load 38(c3D) + 105: 36(fvec3) Load 38(c3D) + 106: 36(fvec3) Load 38(c3D) + 107: 7(fvec4) ImageSampleExplicitLod 103 104 105 106 + 108: 7(fvec4) Load 9(v) + 109: 7(fvec4) FAdd 108 107 + Store 9(v) 109 + 114: 111 Load 113(s2DArrayShadow) + 115: 7(fvec4) Load 26(c4D) + 116: 15(fvec2) Load 17(c2D) + 117: 15(fvec2) Load 17(c2D) + 118: 6(float) CompositeExtract 115 3 + 119: 6(float) ImageSampleDrefExplicitLod 114 115 118 116 117 53 + 120: 7(fvec4) Load 9(v) + 121: 6(float) CompositeExtract 120 0 + 122: 6(float) FAdd 121 119 + 123: 7(fvec4) Load 9(v) + 124: 7(fvec4) CompositeInsert 122 123 0 + Store 9(v) 124 + 125: 21 Load 23(s3D) + 126: 7(fvec4) Load 26(c4D) + 127: 36(fvec3) Load 38(c3D) + 128: 36(fvec3) Load 38(c3D) + 129: 7(fvec4) ImageSampleProjExplicitLod 125 126 127 128 + 130: 7(fvec4) Load 9(v) + 131: 7(fvec4) FAdd 130 129 + Store 9(v) 131 + 132: 11 Load 13(s2D) + 133: 36(fvec3) Load 38(c3D) + 134: 15(fvec2) Load 17(c2D) + 135: 15(fvec2) Load 17(c2D) + 136: 7(fvec4) ImageSampleProjExplicitLod 132 133 134 135 53 + 137: 7(fvec4) Load 9(v) + 138: 7(fvec4) FAdd 137 136 + Store 9(v) 138 + 146: 143 Load 145(is2D) + 147: 15(fvec2) Load 17(c2D) + 148: 139(ivec4) ImageSampleImplicitLod 146 147 + Store 141(iv) 148 + 149: 139(ivec4) Load 141(iv) + 150: 7(fvec4) ConvertSToF 149 + 151: 7(fvec4) Load 9(v) + 152: 7(fvec4) FAdd 151 150 + Store 9(v) 152 + 153: 143 Load 145(is2D) + 154: 7(fvec4) Load 26(c4D) + 155: 139(ivec4) ImageSampleProjImplicitLod 153 154 53 + Store 141(iv) 155 + 156: 139(ivec4) Load 141(iv) + 157: 7(fvec4) ConvertSToF 156 + 158: 7(fvec4) Load 9(v) + 159: 7(fvec4) FAdd 158 157 + Store 9(v) 159 + 160: 143 Load 145(is2D) + 161: 36(fvec3) Load 38(c3D) + 162: 6(float) Load 55(c1D) + 163: 139(ivec4) ImageSampleProjExplicitLod 160 161 162 + Store 141(iv) 163 + 164: 139(ivec4) Load 141(iv) + 165: 7(fvec4) ConvertSToF 164 + 166: 7(fvec4) Load 9(v) + 167: 7(fvec4) FAdd 166 165 + Store 9(v) 167 + 168: 143 Load 145(is2D) + 169: 36(fvec3) Load 38(c3D) + 170: 15(fvec2) Load 17(c2D) + 171: 15(fvec2) Load 17(c2D) + 172: 139(ivec4) ImageSampleProjExplicitLod 168 169 170 171 + Store 141(iv) 172 + 173: 139(ivec4) Load 141(iv) + 174: 7(fvec4) ConvertSToF 173 + 175: 7(fvec4) Load 9(v) + 176: 7(fvec4) FAdd 175 174 + Store 9(v) 176 + 181: 178 Load 180(is3D) + 182: 36(fvec3) Load 38(c3D) + 184: 139(ivec4) ImageSampleImplicitLod 181 182 183 + Store 141(iv) 184 + 185: 139(ivec4) Load 141(iv) + 186: 7(fvec4) ConvertSToF 185 + 187: 7(fvec4) Load 9(v) + 188: 7(fvec4) FAdd 187 186 + Store 9(v) 188 + 193: 190 Load 192(isCube) + 194: 36(fvec3) Load 38(c3D) + 195: 6(float) Load 55(c1D) + 196: 139(ivec4) ImageSampleExplicitLod 193 194 195 + Store 141(iv) 196 + 197: 139(ivec4) Load 141(iv) + 198: 7(fvec4) ConvertSToF 197 + 199: 7(fvec4) Load 9(v) + 200: 7(fvec4) FAdd 199 198 + Store 9(v) 200 + 205: 202 Load 204(is2DArray) + 206: 65(ivec3) Load 67(ic3D) + 207: 50(int) Load 70(ic1D) + 208: 139(ivec4) ImageFetch 205 206 + Store 141(iv) 208 + 209: 139(ivec4) Load 141(iv) + 210: 7(fvec4) ConvertSToF 209 + 211: 7(fvec4) Load 9(v) + 212: 7(fvec4) FAdd 211 210 + Store 9(v) 212 + 219: 216 Load 218(sCubeShadow) + 221: 51(ivec2) ImageQuerySizeLod 219 220 + Store 214(iv2) 221 + 224: 7(fvec4) Load 9(v) + 225: 51(ivec2) Load 214(iv2) + 226: 15(fvec2) ConvertSToF 225 + 228: 6(float) CompositeExtract 226 0 + 229: 6(float) CompositeExtract 226 1 + 230: 7(fvec4) CompositeConstruct 228 229 227 227 + 231: 7(fvec4) FAdd 224 230 + Store 223(FragData) 231 Return FunctionEnd diff --git a/Test/baseResults/spv.nonSquare.vert.out b/Test/baseResults/spv.nonSquare.vert.out index fe27f56b..69034909 100755 --- a/Test/baseResults/spv.nonSquare.vert.out +++ b/Test/baseResults/spv.nonSquare.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 91 +// Id's are bound by 90 Source GLSL 120 Capability Shader @@ -13,109 +13,107 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 10 "a" - Name 13 "v3" - Name 17 "m23" - Name 20 "b" - Name 23 "m32" - Name 29 "gl_Position" - Name 56 "v4" - Decorate 29(gl_Position) BuiltIn Position - Decorate 75 NoStaticUse - Decorate 79 NoStaticUse - Decorate 90 NoStaticUse + Name 9 "a" + Name 12 "v3" + Name 16 "m23" + Name 19 "b" + Name 22 "m32" + Name 28 "gl_Position" + Name 55 "v4" + Decorate 28(gl_Position) BuiltIn Position + Decorate 74 NoStaticUse + Decorate 78 NoStaticUse + Decorate 89 NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 2 - 9: TypePointer Function 8(fvec2) - 11: TypeVector 7(float) 3 - 12: TypePointer Input 11(fvec3) - 13(v3): 12(ptr) Variable Input - 15: TypeMatrix 11(fvec3) 2 - 16: TypePointer Function 15 - 21: TypeMatrix 8(fvec2) 3 - 22: TypePointer UniformConstant 21 - 23(m32): 22(ptr) Variable UniformConstant - 27: TypeVector 7(float) 4 - 28: TypePointer Output 27(fvec4) - 29(gl_Position): 28(ptr) Variable Output - 32: TypeMatrix 11(fvec3) 3 - 36: 7(float) Constant 0 - 41: TypeMatrix 27(fvec4) 4 - 42: 7(float) Constant 1077936128 - 43: 7(float) Constant 1086324736 - 44: 27(fvec4) ConstantComposite 42 43 36 36 - 45: 7(float) Constant 1091567616 - 46: 7(float) Constant 1094713344 - 47: 27(fvec4) ConstantComposite 45 46 36 36 - 48: 7(float) Constant 1097859072 - 49: 7(float) Constant 1099956224 - 50: 27(fvec4) ConstantComposite 48 49 36 36 - 51: 7(float) Constant 1101529088 - 52: 7(float) Constant 1103101952 - 53: 27(fvec4) ConstantComposite 51 52 36 36 - 54: 41 ConstantComposite 44 47 50 53 - 55: TypePointer Input 27(fvec4) - 56(v4): 55(ptr) Variable Input - 60: 7(float) Constant 1112014848 - 61: 7(float) Constant 1121714176 - 62: 7(float) Constant 1126825984 - 63: 7(float) Constant 1130758144 - 64: 27(fvec4) ConstantComposite 60 61 62 63 - 66: 7(float) Constant 1106247680 - 67: 7(float) Constant 1114636288 - 68: 27(fvec4) ConstantComposite 66 67 36 36 - 70: 7(float) Constant 1101004800 - 71: 7(float) Constant 1092616192 - 72: 7(float) Constant 1084227584 - 73: 27(fvec4) ConstantComposite 70 71 43 72 - 75: 8(fvec2) ConstantComposite 71 70 - 76: TypeMatrix 27(fvec4) 2 - 77: 27(fvec4) ConstantComposite 42 36 36 36 - 78: 27(fvec4) ConstantComposite 36 42 36 36 - 79: 76 ConstantComposite 77 78 - 80: TypeMatrix 8(fvec2) 4 - 81: 7(float) Constant 1065353216 - 82: 7(float) Constant 1073741824 - 83: 8(fvec2) ConstantComposite 81 82 - 84: 7(float) Constant 1082130432 - 85: 8(fvec2) ConstantComposite 42 84 - 86: 8(fvec2) ConstantComposite 72 43 - 87: 7(float) Constant 1088421888 - 88: 7(float) Constant 1090519040 - 89: 8(fvec2) ConstantComposite 87 88 - 90: 80 ConstantComposite 83 85 86 89 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 10: TypeVector 6(float) 3 + 11: TypePointer Input 10(fvec3) + 12(v3): 11(ptr) Variable Input + 14: TypeMatrix 10(fvec3) 2 + 15: TypePointer Function 14 + 20: TypeMatrix 7(fvec2) 3 + 21: TypePointer UniformConstant 20 + 22(m32): 21(ptr) Variable UniformConstant + 26: TypeVector 6(float) 4 + 27: TypePointer Output 26(fvec4) + 28(gl_Position): 27(ptr) Variable Output + 31: TypeMatrix 10(fvec3) 3 + 35: 6(float) Constant 0 + 40: TypeMatrix 26(fvec4) 4 + 41: 6(float) Constant 1077936128 + 42: 6(float) Constant 1086324736 + 43: 26(fvec4) ConstantComposite 41 42 35 35 + 44: 6(float) Constant 1091567616 + 45: 6(float) Constant 1094713344 + 46: 26(fvec4) ConstantComposite 44 45 35 35 + 47: 6(float) Constant 1097859072 + 48: 6(float) Constant 1099956224 + 49: 26(fvec4) ConstantComposite 47 48 35 35 + 50: 6(float) Constant 1101529088 + 51: 6(float) Constant 1103101952 + 52: 26(fvec4) ConstantComposite 50 51 35 35 + 53: 40 ConstantComposite 43 46 49 52 + 54: TypePointer Input 26(fvec4) + 55(v4): 54(ptr) Variable Input + 59: 6(float) Constant 1112014848 + 60: 6(float) Constant 1121714176 + 61: 6(float) Constant 1126825984 + 62: 6(float) Constant 1130758144 + 63: 26(fvec4) ConstantComposite 59 60 61 62 + 65: 6(float) Constant 1106247680 + 66: 6(float) Constant 1114636288 + 67: 26(fvec4) ConstantComposite 65 66 35 35 + 69: 6(float) Constant 1101004800 + 70: 6(float) Constant 1092616192 + 71: 6(float) Constant 1084227584 + 72: 26(fvec4) ConstantComposite 69 70 42 71 + 74: 7(fvec2) ConstantComposite 70 69 + 75: TypeMatrix 26(fvec4) 2 + 76: 26(fvec4) ConstantComposite 41 35 35 35 + 77: 26(fvec4) ConstantComposite 35 41 35 35 + 78: 75 ConstantComposite 76 77 + 79: TypeMatrix 7(fvec2) 4 + 80: 6(float) Constant 1065353216 + 81: 6(float) Constant 1073741824 + 82: 7(fvec2) ConstantComposite 80 81 + 83: 6(float) Constant 1082130432 + 84: 7(fvec2) ConstantComposite 41 83 + 85: 7(fvec2) ConstantComposite 71 42 + 86: 6(float) Constant 1088421888 + 87: 6(float) Constant 1090519040 + 88: 7(fvec2) ConstantComposite 86 87 + 89: 79 ConstantComposite 82 84 85 88 4(main): 2 Function None 3 5: Label - 10(a): 9(ptr) Variable Function - 17(m23): 16(ptr) Variable Function - 20(b): 9(ptr) Variable Function - 14: 11(fvec3) Load 13(v3) - 18: 15 Load 17(m23) - 19: 8(fvec2) VectorTimesMatrix 14 18 - Store 10(a) 19 - 24: 21 Load 23(m32) - 25: 11(fvec3) Load 13(v3) - 26: 8(fvec2) MatrixTimesVector 24 25 - Store 20(b) 26 - 30: 15 Load 17(m23) - 31: 21 Load 23(m32) - 33: 32 MatrixTimesMatrix 30 31 - 34: 11(fvec3) Load 13(v3) - 35: 11(fvec3) MatrixTimesVector 33 34 - 37: 7(float) CompositeExtract 35 0 - 38: 7(float) CompositeExtract 35 1 - 39: 7(float) CompositeExtract 35 2 - 40: 27(fvec4) CompositeConstruct 37 38 39 36 - 57: 27(fvec4) Load 56(v4) - 58: 27(fvec4) MatrixTimesVector 54 57 - 59: 27(fvec4) FAdd 40 58 - 65: 27(fvec4) FAdd 59 64 - 69: 27(fvec4) FAdd 65 68 - 74: 27(fvec4) FAdd 69 73 - Store 29(gl_Position) 74 - Branch 6 - 6: Label + 9(a): 8(ptr) Variable Function + 16(m23): 15(ptr) Variable Function + 19(b): 8(ptr) Variable Function + 13: 10(fvec3) Load 12(v3) + 17: 14 Load 16(m23) + 18: 7(fvec2) VectorTimesMatrix 13 17 + Store 9(a) 18 + 23: 20 Load 22(m32) + 24: 10(fvec3) Load 12(v3) + 25: 7(fvec2) MatrixTimesVector 23 24 + Store 19(b) 25 + 29: 14 Load 16(m23) + 30: 20 Load 22(m32) + 32: 31 MatrixTimesMatrix 29 30 + 33: 10(fvec3) Load 12(v3) + 34: 10(fvec3) MatrixTimesVector 32 33 + 36: 6(float) CompositeExtract 34 0 + 37: 6(float) CompositeExtract 34 1 + 38: 6(float) CompositeExtract 34 2 + 39: 26(fvec4) CompositeConstruct 36 37 38 35 + 56: 26(fvec4) Load 55(v4) + 57: 26(fvec4) MatrixTimesVector 53 56 + 58: 26(fvec4) FAdd 39 57 + 64: 26(fvec4) FAdd 58 63 + 68: 26(fvec4) FAdd 64 67 + 73: 26(fvec4) FAdd 68 72 + Store 28(gl_Position) 73 Return FunctionEnd diff --git a/Test/baseResults/spv.precision.frag.out b/Test/baseResults/spv.precision.frag.out index 71f6e773..042faa44 100755 --- a/Test/baseResults/spv.precision.frag.out +++ b/Test/baseResults/spv.precision.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 111 +// Id's are bound by 110 Source ESSL 300 Capability Shader @@ -14,164 +14,162 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 13 "foo(vf3;" - Name 12 "mv3" - Name 20 "boolfun(vb2;" - Name 19 "bv2" - Name 24 "highfin" - Name 37 "sum" - Name 39 "uniform_medium" - Name 41 "uniform_high" - Name 47 "uniform_low" - Name 52 "arg1" - Name 54 "arg2" - Name 56 "d" - Name 58 "lowfin" - Name 60 "mediumfin" - Name 64 "global_highp" - Name 68 "local_highp" - Name 72 "mediumfout" - Name 101 "ub2" - Name 102 "param" - Decorate 24(highfin) Smooth - Decorate 37(sum) RelaxedPrecision - Decorate 39(uniform_medium) RelaxedPrecision - Decorate 47(uniform_low) RelaxedPrecision - Decorate 52(arg1) RelaxedPrecision - Decorate 54(arg2) RelaxedPrecision - Decorate 56(d) RelaxedPrecision - Decorate 58(lowfin) RelaxedPrecision - Decorate 58(lowfin) Smooth - Decorate 60(mediumfin) RelaxedPrecision - Decorate 60(mediumfin) Smooth - Decorate 72(mediumfout) RelaxedPrecision + Name 12 "foo(vf3;" + Name 11 "mv3" + Name 19 "boolfun(vb2;" + Name 18 "bv2" + Name 23 "highfin" + Name 36 "sum" + Name 38 "uniform_medium" + Name 40 "uniform_high" + Name 46 "uniform_low" + Name 51 "arg1" + Name 53 "arg2" + Name 55 "d" + Name 57 "lowfin" + Name 59 "mediumfin" + Name 63 "global_highp" + Name 67 "local_highp" + Name 71 "mediumfout" + Name 100 "ub2" + Name 101 "param" + Decorate 23(highfin) Smooth + Decorate 36(sum) RelaxedPrecision + Decorate 38(uniform_medium) RelaxedPrecision + Decorate 46(uniform_low) RelaxedPrecision + Decorate 51(arg1) RelaxedPrecision + Decorate 53(arg2) RelaxedPrecision + Decorate 55(d) RelaxedPrecision + Decorate 57(lowfin) RelaxedPrecision + Decorate 57(lowfin) Smooth + Decorate 59(mediumfin) RelaxedPrecision + Decorate 59(mediumfin) Smooth + Decorate 71(mediumfout) RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 3 - 9: TypePointer Function 8(fvec3) - 10: TypeVector 7(float) 2 - 11: TypeFunction 10(fvec2) 9(ptr) - 15: TypeBool - 16: TypeVector 15(bool) 2 - 17: TypePointer Function 16(bvec2) - 18: TypeFunction 15(bool) 17(ptr) - 22: TypeVector 7(float) 4 - 23: TypePointer Input 22(fvec4) - 24(highfin): 23(ptr) Variable Input - 29: 15(bool) ConstantFalse - 30: 15(bool) ConstantTrue - 31: 16(bvec2) ConstantComposite 29 30 - 35: TypeInt 32 1 - 36: TypePointer Function 35(int) - 38: TypePointer UniformConstant 35(int) -39(uniform_medium): 38(ptr) Variable UniformConstant -41(uniform_high): 38(ptr) Variable UniformConstant - 47(uniform_low): 38(ptr) Variable UniformConstant - 51: TypePointer Function 7(float) - 53: 7(float) Constant 1078774989 - 55: 7(float) Constant 1232730691 - 57: TypePointer Input 7(float) - 58(lowfin): 57(ptr) Variable Input - 60(mediumfin): 57(ptr) Variable Input - 63: TypePointer PrivateGlobal 7(float) -64(global_highp): 63(ptr) Variable PrivateGlobal - 67: TypePointer Function 22(fvec4) - 71: TypePointer Output 22(fvec4) - 72(mediumfout): 71(ptr) Variable Output - 81: 35(int) Constant 4 - 83: TypeVector 35(int) 2 - 100: TypePointer UniformConstant 16(bvec2) - 101(ub2): 100(ptr) Variable UniformConstant - 108: 7(float) Constant 1065353216 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypePointer Function 7(fvec3) + 9: TypeVector 6(float) 2 + 10: TypeFunction 9(fvec2) 8(ptr) + 14: TypeBool + 15: TypeVector 14(bool) 2 + 16: TypePointer Function 15(bvec2) + 17: TypeFunction 14(bool) 16(ptr) + 21: TypeVector 6(float) 4 + 22: TypePointer Input 21(fvec4) + 23(highfin): 22(ptr) Variable Input + 28: 14(bool) ConstantFalse + 29: 14(bool) ConstantTrue + 30: 15(bvec2) ConstantComposite 28 29 + 34: TypeInt 32 1 + 35: TypePointer Function 34(int) + 37: TypePointer UniformConstant 34(int) +38(uniform_medium): 37(ptr) Variable UniformConstant +40(uniform_high): 37(ptr) Variable UniformConstant + 46(uniform_low): 37(ptr) Variable UniformConstant + 50: TypePointer Function 6(float) + 52: 6(float) Constant 1078774989 + 54: 6(float) Constant 1232730691 + 56: TypePointer Input 6(float) + 57(lowfin): 56(ptr) Variable Input + 59(mediumfin): 56(ptr) Variable Input + 62: TypePointer PrivateGlobal 6(float) +63(global_highp): 62(ptr) Variable PrivateGlobal + 66: TypePointer Function 21(fvec4) + 70: TypePointer Output 21(fvec4) + 71(mediumfout): 70(ptr) Variable Output + 80: 34(int) Constant 4 + 82: TypeVector 34(int) 2 + 99: TypePointer UniformConstant 15(bvec2) + 100(ub2): 99(ptr) Variable UniformConstant + 107: 6(float) Constant 1065353216 4(main): 2 Function None 3 5: Label - 37(sum): 36(ptr) Variable Function - 52(arg1): 51(ptr) Variable Function - 54(arg2): 51(ptr) Variable Function - 56(d): 51(ptr) Variable Function - 68(local_highp): 67(ptr) Variable Function - 102(param): 17(ptr) Variable Function - 40: 35(int) Load 39(uniform_medium) - 42: 35(int) Load 41(uniform_high) - 43: 35(int) IAdd 40 42 - Store 37(sum) 43 - 44: 35(int) Load 41(uniform_high) - 45: 35(int) Load 37(sum) - 46: 35(int) IAdd 45 44 - Store 37(sum) 46 - 48: 35(int) Load 47(uniform_low) - 49: 35(int) Load 37(sum) - 50: 35(int) IAdd 49 48 - Store 37(sum) 50 - Store 52(arg1) 53 - Store 54(arg2) 55 - 59: 7(float) Load 58(lowfin) - 61: 7(float) Load 60(mediumfin) - 62: 7(float) ExtInst 1(GLSL.std.450) 66(Distance) 59 61 - Store 56(d) 62 - 65: 22(fvec4) Load 24(highfin) - 66: 7(float) ExtInst 1(GLSL.std.450) 65(Length) 65 - Store 64(global_highp) 66 - 69: 7(float) Load 64(global_highp) - 70: 22(fvec4) CompositeConstruct 69 69 69 69 - Store 68(local_highp) 70 - 73: 7(float) Load 56(d) - 74: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 73 - 75: 22(fvec4) CompositeConstruct 74 74 74 74 - 76: 7(float) Load 54(arg2) - 77: 22(fvec4) CompositeConstruct 76 76 76 76 - 78: 22(fvec4) FAdd 75 77 - 79: 22(fvec4) Load 68(local_highp) - 80: 22(fvec4) FAdd 78 79 - Store 72(mediumfout) 80 - 82: 35(int) Load 47(uniform_low) - 84: 83(ivec2) CompositeConstruct 82 82 - 85: 35(int) Load 41(uniform_high) - 86: 83(ivec2) CompositeConstruct 85 85 - 87: 83(ivec2) IMul 84 86 - 88: 35(int) Load 41(uniform_high) - 89: 83(ivec2) CompositeConstruct 88 88 - 90: 83(ivec2) IAdd 87 89 - 91: 35(int) CompositeExtract 90 0 - 92: 35(int) IAdd 81 91 - 93: 35(int) Load 37(sum) - 94: 35(int) IAdd 93 92 - Store 37(sum) 94 - 95: 35(int) Load 37(sum) - 96: 7(float) ConvertSToF 95 - 97: 22(fvec4) CompositeConstruct 96 96 96 96 - 98: 22(fvec4) Load 72(mediumfout) - 99: 22(fvec4) FAdd 98 97 - Store 72(mediumfout) 99 - 103: 16(bvec2) Load 101(ub2) - Store 102(param) 103 - 104: 15(bool) FunctionCall 20(boolfun(vb2;) 102(param) - SelectionMerge 106 None - BranchConditional 104 105 106 - 105: Label - 107: 22(fvec4) Load 72(mediumfout) - 109: 22(fvec4) CompositeConstruct 108 108 108 108 - 110: 22(fvec4) FAdd 107 109 - Store 72(mediumfout) 110 - Branch 106 - 106: Label - Branch 6 - 6: Label + 36(sum): 35(ptr) Variable Function + 51(arg1): 50(ptr) Variable Function + 53(arg2): 50(ptr) Variable Function + 55(d): 50(ptr) Variable Function + 67(local_highp): 66(ptr) Variable Function + 101(param): 16(ptr) Variable Function + 39: 34(int) Load 38(uniform_medium) + 41: 34(int) Load 40(uniform_high) + 42: 34(int) IAdd 39 41 + Store 36(sum) 42 + 43: 34(int) Load 40(uniform_high) + 44: 34(int) Load 36(sum) + 45: 34(int) IAdd 44 43 + Store 36(sum) 45 + 47: 34(int) Load 46(uniform_low) + 48: 34(int) Load 36(sum) + 49: 34(int) IAdd 48 47 + Store 36(sum) 49 + Store 51(arg1) 52 + Store 53(arg2) 54 + 58: 6(float) Load 57(lowfin) + 60: 6(float) Load 59(mediumfin) + 61: 6(float) ExtInst 1(GLSL.std.450) 66(Distance) 58 60 + Store 55(d) 61 + 64: 21(fvec4) Load 23(highfin) + 65: 6(float) ExtInst 1(GLSL.std.450) 65(Length) 64 + Store 63(global_highp) 65 + 68: 6(float) Load 63(global_highp) + 69: 21(fvec4) CompositeConstruct 68 68 68 68 + Store 67(local_highp) 69 + 72: 6(float) Load 55(d) + 73: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 72 + 74: 21(fvec4) CompositeConstruct 73 73 73 73 + 75: 6(float) Load 53(arg2) + 76: 21(fvec4) CompositeConstruct 75 75 75 75 + 77: 21(fvec4) FAdd 74 76 + 78: 21(fvec4) Load 67(local_highp) + 79: 21(fvec4) FAdd 77 78 + Store 71(mediumfout) 79 + 81: 34(int) Load 46(uniform_low) + 83: 82(ivec2) CompositeConstruct 81 81 + 84: 34(int) Load 40(uniform_high) + 85: 82(ivec2) CompositeConstruct 84 84 + 86: 82(ivec2) IMul 83 85 + 87: 34(int) Load 40(uniform_high) + 88: 82(ivec2) CompositeConstruct 87 87 + 89: 82(ivec2) IAdd 86 88 + 90: 34(int) CompositeExtract 89 0 + 91: 34(int) IAdd 80 90 + 92: 34(int) Load 36(sum) + 93: 34(int) IAdd 92 91 + Store 36(sum) 93 + 94: 34(int) Load 36(sum) + 95: 6(float) ConvertSToF 94 + 96: 21(fvec4) CompositeConstruct 95 95 95 95 + 97: 21(fvec4) Load 71(mediumfout) + 98: 21(fvec4) FAdd 97 96 + Store 71(mediumfout) 98 + 102: 15(bvec2) Load 100(ub2) + Store 101(param) 102 + 103: 14(bool) FunctionCall 19(boolfun(vb2;) 101(param) + SelectionMerge 105 None + BranchConditional 103 104 105 + 104: Label + 106: 21(fvec4) Load 71(mediumfout) + 108: 21(fvec4) CompositeConstruct 107 107 107 107 + 109: 21(fvec4) FAdd 106 108 + Store 71(mediumfout) 109 + Branch 105 + 105: Label Return FunctionEnd - 13(foo(vf3;): 10(fvec2) Function None 11 - 12(mv3): 9(ptr) FunctionParameter - 14: Label - 25: 22(fvec4) Load 24(highfin) - 26: 10(fvec2) VectorShuffle 25 25 0 1 - ReturnValue 26 + 12(foo(vf3;): 9(fvec2) Function None 10 + 11(mv3): 8(ptr) FunctionParameter + 13: Label + 24: 21(fvec4) Load 23(highfin) + 25: 9(fvec2) VectorShuffle 24 24 0 1 + ReturnValue 25 FunctionEnd -20(boolfun(vb2;): 15(bool) Function None 18 - 19(bv2): 17(ptr) FunctionParameter - 21: Label - 28: 16(bvec2) Load 19(bv2) - 32: 16(bvec2) IEqual 28 31 - 33: 15(bool) All 32 - ReturnValue 33 +19(boolfun(vb2;): 14(bool) Function None 17 + 18(bv2): 16(ptr) FunctionParameter + 20: Label + 27: 15(bvec2) Load 18(bv2) + 31: 15(bvec2) IEqual 27 30 + 32: 14(bool) All 31 + ReturnValue 32 FunctionEnd diff --git a/Test/baseResults/spv.prepost.frag.out b/Test/baseResults/spv.prepost.frag.out index 5c85d5e5..22f41a68 100755 --- a/Test/baseResults/spv.prepost.frag.out +++ b/Test/baseResults/spv.prepost.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 97 +// Id's are bound by 96 Source GLSL 140 Capability Shader @@ -14,139 +14,137 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "index" - Name 15 "s" - MemberName 15(s) 0 "y" - Name 17 "str" - Name 23 "t" - Name 51 "x" - Name 62 "y" - Name 67 "z" - Name 74 "v" - Name 93 "gl_FragColor" - Decorate 93(gl_FragColor) BuiltIn FragColor + Name 8 "index" + Name 14 "s" + MemberName 14(s) 0 "y" + Name 16 "str" + Name 22 "t" + Name 50 "x" + Name 61 "y" + Name 66 "z" + Name 73 "v" + Name 92 "gl_FragColor" + Decorate 92(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 5 - 11: TypeFloat 32 - 12: TypeInt 32 0 - 13: 12(int) Constant 5 - 14: TypeArray 11(float) 13 - 15(s): TypeStruct 14 - 16: TypePointer Function 15(s) - 18: 7(int) Constant 0 - 19: 7(int) Constant 4 - 20: 11(float) Constant 1073741824 - 21: TypePointer Function 11(float) - 25: 7(int) Constant 1 - 29: 11(float) Constant 1065353216 - 72: TypeVector 11(float) 4 - 73: TypePointer Function 72(fvec4) - 75: 11(float) Constant 1077936128 - 76: 11(float) Constant 1082130432 - 77: 72(fvec4) ConstantComposite 29 20 75 76 - 92: TypePointer Output 72(fvec4) -93(gl_FragColor): 92(ptr) Variable Output + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 5 + 10: TypeFloat 32 + 11: TypeInt 32 0 + 12: 11(int) Constant 5 + 13: TypeArray 10(float) 12 + 14(s): TypeStruct 13 + 15: TypePointer Function 14(s) + 17: 6(int) Constant 0 + 18: 6(int) Constant 4 + 19: 10(float) Constant 1073741824 + 20: TypePointer Function 10(float) + 24: 6(int) Constant 1 + 28: 10(float) Constant 1065353216 + 71: TypeVector 10(float) 4 + 72: TypePointer Function 71(fvec4) + 74: 10(float) Constant 1077936128 + 75: 10(float) Constant 1082130432 + 76: 71(fvec4) ConstantComposite 28 19 74 75 + 91: TypePointer Output 71(fvec4) +92(gl_FragColor): 91(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 9(index): 8(ptr) Variable Function - 17(str): 16(ptr) Variable Function - 23(t): 21(ptr) Variable Function - 51(x): 21(ptr) Variable Function - 62(y): 21(ptr) Variable Function - 67(z): 21(ptr) Variable Function - 74(v): 73(ptr) Variable Function - Store 9(index) 10 - 22: 21(ptr) AccessChain 17(str) 18 19 - Store 22 20 - 24: 7(int) Load 9(index) - 26: 7(int) ISub 24 25 - Store 9(index) 26 - 27: 21(ptr) AccessChain 17(str) 18 26 - 28: 11(float) Load 27 - 30: 11(float) FAdd 28 29 - Store 27 30 - Store 23(t) 30 - 31: 11(float) Load 23(t) - 32: 21(ptr) AccessChain 17(str) 18 19 - 33: 11(float) Load 32 - 34: 11(float) FAdd 33 31 - 35: 21(ptr) AccessChain 17(str) 18 19 - Store 35 34 - 36: 21(ptr) AccessChain 17(str) 18 19 - 37: 11(float) Load 36 - 38: 11(float) FSub 37 29 - Store 36 38 - Store 23(t) 37 - 39: 7(int) Load 9(index) - 40: 7(int) IAdd 39 25 - Store 9(index) 40 - 41: 11(float) Load 23(t) - 42: 21(ptr) AccessChain 17(str) 18 39 - 43: 11(float) Load 42 - 44: 11(float) FAdd 43 41 - 45: 21(ptr) AccessChain 17(str) 18 39 - Store 45 44 - 46: 7(int) Load 9(index) - 47: 7(int) ISub 46 25 - Store 9(index) 47 - 48: 21(ptr) AccessChain 17(str) 18 47 - 49: 11(float) Load 48 - 50: 11(float) FSub 49 29 - Store 48 50 - 52: 21(ptr) AccessChain 17(str) 18 19 - 53: 11(float) Load 52 - Store 51(x) 53 - 54: 11(float) Load 51(x) - 55: 11(float) FAdd 54 29 - Store 51(x) 55 - 56: 11(float) Load 51(x) - 57: 11(float) FSub 56 29 - Store 51(x) 57 - 58: 11(float) Load 51(x) - 59: 11(float) FAdd 58 29 - Store 51(x) 59 - 60: 11(float) Load 51(x) - 61: 11(float) FSub 60 29 - Store 51(x) 61 - 63: 11(float) Load 51(x) - 64: 11(float) Load 51(x) - 65: 11(float) FAdd 64 29 - Store 51(x) 65 - 66: 11(float) FMul 63 65 - Store 62(y) 66 - 68: 11(float) Load 62(y) - 69: 11(float) Load 51(x) - 70: 11(float) FSub 69 29 - Store 51(x) 70 - 71: 11(float) FMul 68 69 - Store 67(z) 71 - Store 74(v) 77 - 78: 72(fvec4) Load 74(v) - 79: 11(float) CompositeExtract 78 2 - 80: 11(float) FSub 79 29 - 81: 72(fvec4) Load 74(v) - 82: 72(fvec4) CompositeInsert 80 81 2 - Store 74(v) 82 - 83: 72(fvec4) Load 74(v) - 84: 72(fvec4) CompositeInsert 79 83 1 - Store 74(v) 84 - 85: 72(fvec4) Load 74(v) - 86: 11(float) CompositeExtract 85 3 - 87: 11(float) FSub 86 29 - 88: 72(fvec4) Load 74(v) - 89: 72(fvec4) CompositeInsert 87 88 3 - Store 74(v) 89 - 90: 72(fvec4) Load 74(v) - 91: 72(fvec4) CompositeInsert 87 90 0 - Store 74(v) 91 - 94: 11(float) Load 67(z) - 95: 72(fvec4) Load 74(v) - 96: 72(fvec4) VectorTimesScalar 95 94 - Store 93(gl_FragColor) 96 - Branch 6 - 6: Label + 8(index): 7(ptr) Variable Function + 16(str): 15(ptr) Variable Function + 22(t): 20(ptr) Variable Function + 50(x): 20(ptr) Variable Function + 61(y): 20(ptr) Variable Function + 66(z): 20(ptr) Variable Function + 73(v): 72(ptr) Variable Function + Store 8(index) 9 + 21: 20(ptr) AccessChain 16(str) 17 18 + Store 21 19 + 23: 6(int) Load 8(index) + 25: 6(int) ISub 23 24 + Store 8(index) 25 + 26: 20(ptr) AccessChain 16(str) 17 25 + 27: 10(float) Load 26 + 29: 10(float) FAdd 27 28 + Store 26 29 + Store 22(t) 29 + 30: 10(float) Load 22(t) + 31: 20(ptr) AccessChain 16(str) 17 18 + 32: 10(float) Load 31 + 33: 10(float) FAdd 32 30 + 34: 20(ptr) AccessChain 16(str) 17 18 + Store 34 33 + 35: 20(ptr) AccessChain 16(str) 17 18 + 36: 10(float) Load 35 + 37: 10(float) FSub 36 28 + Store 35 37 + Store 22(t) 36 + 38: 6(int) Load 8(index) + 39: 6(int) IAdd 38 24 + Store 8(index) 39 + 40: 10(float) Load 22(t) + 41: 20(ptr) AccessChain 16(str) 17 38 + 42: 10(float) Load 41 + 43: 10(float) FAdd 42 40 + 44: 20(ptr) AccessChain 16(str) 17 38 + Store 44 43 + 45: 6(int) Load 8(index) + 46: 6(int) ISub 45 24 + Store 8(index) 46 + 47: 20(ptr) AccessChain 16(str) 17 46 + 48: 10(float) Load 47 + 49: 10(float) FSub 48 28 + Store 47 49 + 51: 20(ptr) AccessChain 16(str) 17 18 + 52: 10(float) Load 51 + Store 50(x) 52 + 53: 10(float) Load 50(x) + 54: 10(float) FAdd 53 28 + Store 50(x) 54 + 55: 10(float) Load 50(x) + 56: 10(float) FSub 55 28 + Store 50(x) 56 + 57: 10(float) Load 50(x) + 58: 10(float) FAdd 57 28 + Store 50(x) 58 + 59: 10(float) Load 50(x) + 60: 10(float) FSub 59 28 + Store 50(x) 60 + 62: 10(float) Load 50(x) + 63: 10(float) Load 50(x) + 64: 10(float) FAdd 63 28 + Store 50(x) 64 + 65: 10(float) FMul 62 64 + Store 61(y) 65 + 67: 10(float) Load 61(y) + 68: 10(float) Load 50(x) + 69: 10(float) FSub 68 28 + Store 50(x) 69 + 70: 10(float) FMul 67 68 + Store 66(z) 70 + Store 73(v) 76 + 77: 71(fvec4) Load 73(v) + 78: 10(float) CompositeExtract 77 2 + 79: 10(float) FSub 78 28 + 80: 71(fvec4) Load 73(v) + 81: 71(fvec4) CompositeInsert 79 80 2 + Store 73(v) 81 + 82: 71(fvec4) Load 73(v) + 83: 71(fvec4) CompositeInsert 78 82 1 + Store 73(v) 83 + 84: 71(fvec4) Load 73(v) + 85: 10(float) CompositeExtract 84 3 + 86: 10(float) FSub 85 28 + 87: 71(fvec4) Load 73(v) + 88: 71(fvec4) CompositeInsert 86 87 3 + Store 73(v) 88 + 89: 71(fvec4) Load 73(v) + 90: 71(fvec4) CompositeInsert 86 89 0 + Store 73(v) 90 + 93: 10(float) Load 66(z) + 94: 71(fvec4) Load 73(v) + 95: 71(fvec4) VectorTimesScalar 94 93 + Store 92(gl_FragColor) 95 Return FunctionEnd diff --git a/Test/baseResults/spv.qualifiers.vert.out b/Test/baseResults/spv.qualifiers.vert.out index 46d3b0ef..90b7f728 100755 --- a/Test/baseResults/spv.qualifiers.vert.out +++ b/Test/baseResults/spv.qualifiers.vert.out @@ -7,7 +7,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 26 +// Id's are bound by 25 Source GLSL 430 Capability Shader @@ -15,52 +15,50 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 10 "outVc" - Name 12 "inV" - Name 14 "outVs" - Name 16 "outVf" - Name 18 "outVn" - Name 20 "outVcn" - Name 24 "gl_VertexID" - Name 25 "gl_InstanceID" - Decorate 10(outVc) Smooth - Decorate 14(outVs) Smooth - Decorate 16(outVf) Flat - Decorate 18(outVn) Noperspective - Decorate 20(outVcn) Noperspective - Decorate 24(gl_VertexID) BuiltIn VertexId - Decorate 24(gl_VertexID) NoStaticUse - Decorate 25(gl_InstanceID) BuiltIn InstanceId - Decorate 25(gl_InstanceID) NoStaticUse + Name 9 "outVc" + Name 11 "inV" + Name 13 "outVs" + Name 15 "outVf" + Name 17 "outVn" + Name 19 "outVcn" + Name 23 "gl_VertexID" + Name 24 "gl_InstanceID" + Decorate 9(outVc) Smooth + Decorate 13(outVs) Smooth + Decorate 15(outVf) Flat + Decorate 17(outVn) Noperspective + Decorate 19(outVcn) Noperspective + Decorate 23(gl_VertexID) BuiltIn VertexId + Decorate 23(gl_VertexID) NoStaticUse + Decorate 24(gl_InstanceID) BuiltIn InstanceId + Decorate 24(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Output 8(fvec4) - 10(outVc): 9(ptr) Variable Output - 11: TypePointer Input 8(fvec4) - 12(inV): 11(ptr) Variable Input - 14(outVs): 9(ptr) Variable Output - 16(outVf): 9(ptr) Variable Output - 18(outVn): 9(ptr) Variable Output - 20(outVcn): 9(ptr) Variable Output - 22: TypeInt 32 1 - 23: TypePointer Input 22(int) - 24(gl_VertexID): 23(ptr) Variable Input -25(gl_InstanceID): 23(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(outVc): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec4) + 11(inV): 10(ptr) Variable Input + 13(outVs): 8(ptr) Variable Output + 15(outVf): 8(ptr) Variable Output + 17(outVn): 8(ptr) Variable Output + 19(outVcn): 8(ptr) Variable Output + 21: TypeInt 32 1 + 22: TypePointer Input 21(int) + 23(gl_VertexID): 22(ptr) Variable Input +24(gl_InstanceID): 22(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 13: 8(fvec4) Load 12(inV) - Store 10(outVc) 13 - 15: 8(fvec4) Load 12(inV) - Store 14(outVs) 15 - 17: 8(fvec4) Load 12(inV) - Store 16(outVf) 17 - 19: 8(fvec4) Load 12(inV) - Store 18(outVn) 19 - 21: 8(fvec4) Load 12(inV) - Store 20(outVcn) 21 - Branch 6 - 6: Label + 12: 7(fvec4) Load 11(inV) + Store 9(outVc) 12 + 14: 7(fvec4) Load 11(inV) + Store 13(outVs) 14 + 16: 7(fvec4) Load 11(inV) + Store 15(outVf) 16 + 18: 7(fvec4) Load 11(inV) + Store 17(outVn) 18 + 20: 7(fvec4) Load 11(inV) + Store 19(outVcn) 20 Return FunctionEnd diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out new file mode 100644 index 00000000..2b2b57f8 --- /dev/null +++ b/Test/baseResults/spv.queryL.frag.out @@ -0,0 +1,282 @@ +spv.queryL.frag +Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 99 +// Generated by (magic number): 51a00bb +// Id's are bound by 211 + + Source GLSL 430 + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginLowerLeft + Name 4 "main" + Name 9 "lod" + Name 13 "samp1D" + Name 16 "pf" + Name 23 "isamp2D" + Name 25 "pf2" + Name 34 "usamp3D" + Name 38 "pf3" + Name 46 "sampCube" + Name 55 "isamp1DA" + Name 64 "usamp2DA" + Name 73 "isampCubeA" + Name 82 "samp1Ds" + Name 91 "samp2Ds" + Name 100 "sampCubes" + Name 109 "samp1DAs" + Name 118 "samp2DAs" + Name 127 "sampCubeAs" + Name 134 "levels" + Name 140 "usamp2D" + Name 148 "isamp3D" + Name 156 "isampCube" + Name 168 "samp2DA" + Name 176 "usampCubeA" + Name 206 "sampBuf" + Name 210 "sampRect" + Decorate 206(sampBuf) NoStaticUse + Decorate 210(sampRect) NoStaticUse + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 + 13(samp1D): 12(ptr) Variable UniformConstant + 15: TypePointer Function 6(float) + 19: TypeInt 32 1 + 20: TypeImage 19(int) 2D sampled format:Unknown + 21: TypeSampledImage 20 + 22: TypePointer UniformConstant 21 + 23(isamp2D): 22(ptr) Variable UniformConstant + 30: TypeInt 32 0 + 31: TypeImage 30(int) 3D sampled format:Unknown + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 + 34(usamp3D): 33(ptr) Variable UniformConstant + 36: TypeVector 6(float) 3 + 37: TypePointer Function 36(fvec3) + 43: TypeImage 6(float) Cube sampled format:Unknown + 44: TypeSampledImage 43 + 45: TypePointer UniformConstant 44 + 46(sampCube): 45(ptr) Variable UniformConstant + 52: TypeImage 19(int) 1D array sampled format:Unknown + 53: TypeSampledImage 52 + 54: TypePointer UniformConstant 53 + 55(isamp1DA): 54(ptr) Variable UniformConstant + 61: TypeImage 30(int) 2D array sampled format:Unknown + 62: TypeSampledImage 61 + 63: TypePointer UniformConstant 62 + 64(usamp2DA): 63(ptr) Variable UniformConstant + 70: TypeImage 19(int) Cube array sampled format:Unknown + 71: TypeSampledImage 70 + 72: TypePointer UniformConstant 71 + 73(isampCubeA): 72(ptr) Variable UniformConstant + 79: TypeImage 6(float) 1D depth sampled format:Unknown + 80: TypeSampledImage 79 + 81: TypePointer UniformConstant 80 + 82(samp1Ds): 81(ptr) Variable UniformConstant + 88: TypeImage 6(float) 2D depth sampled format:Unknown + 89: TypeSampledImage 88 + 90: TypePointer UniformConstant 89 + 91(samp2Ds): 90(ptr) Variable UniformConstant + 97: TypeImage 6(float) Cube depth sampled format:Unknown + 98: TypeSampledImage 97 + 99: TypePointer UniformConstant 98 + 100(sampCubes): 99(ptr) Variable UniformConstant + 106: TypeImage 6(float) 1D depth array sampled format:Unknown + 107: TypeSampledImage 106 + 108: TypePointer UniformConstant 107 + 109(samp1DAs): 108(ptr) Variable UniformConstant + 115: TypeImage 6(float) 2D depth array sampled format:Unknown + 116: TypeSampledImage 115 + 117: TypePointer UniformConstant 116 + 118(samp2DAs): 117(ptr) Variable UniformConstant + 124: TypeImage 6(float) Cube depth array sampled format:Unknown + 125: TypeSampledImage 124 + 126: TypePointer UniformConstant 125 + 127(sampCubeAs): 126(ptr) Variable UniformConstant + 133: TypePointer Function 19(int) + 137: TypeImage 30(int) 2D sampled format:Unknown + 138: TypeSampledImage 137 + 139: TypePointer UniformConstant 138 + 140(usamp2D): 139(ptr) Variable UniformConstant + 145: TypeImage 19(int) 3D sampled format:Unknown + 146: TypeSampledImage 145 + 147: TypePointer UniformConstant 146 + 148(isamp3D): 147(ptr) Variable UniformConstant + 153: TypeImage 19(int) Cube sampled format:Unknown + 154: TypeSampledImage 153 + 155: TypePointer UniformConstant 154 + 156(isampCube): 155(ptr) Variable UniformConstant + 165: TypeImage 6(float) 2D array sampled format:Unknown + 166: TypeSampledImage 165 + 167: TypePointer UniformConstant 166 + 168(samp2DA): 167(ptr) Variable UniformConstant + 173: TypeImage 30(int) Cube array sampled format:Unknown + 174: TypeSampledImage 173 + 175: TypePointer UniformConstant 174 + 176(usampCubeA): 175(ptr) Variable UniformConstant + 203: TypeImage 6(float) Buffer sampled format:Unknown + 204: TypeSampledImage 203 + 205: TypePointer UniformConstant 204 + 206(sampBuf): 205(ptr) Variable UniformConstant + 207: TypeImage 6(float) Rect sampled format:Unknown + 208: TypeSampledImage 207 + 209: TypePointer UniformConstant 208 + 210(sampRect): 209(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(lod): 8(ptr) Variable Function + 16(pf): 15(ptr) Variable Function + 25(pf2): 8(ptr) Variable Function + 38(pf3): 37(ptr) Variable Function + 134(levels): 133(ptr) Variable Function + 14: 11 Load 13(samp1D) + 17: 6(float) Load 16(pf) + 18: 7(fvec2) ImageQueryLod 14 17 + Store 9(lod) 18 + 24: 21 Load 23(isamp2D) + 26: 7(fvec2) Load 25(pf2) + 27: 7(fvec2) ImageQueryLod 24 26 + 28: 7(fvec2) Load 9(lod) + 29: 7(fvec2) FAdd 28 27 + Store 9(lod) 29 + 35: 32 Load 34(usamp3D) + 39: 36(fvec3) Load 38(pf3) + 40: 7(fvec2) ImageQueryLod 35 39 + 41: 7(fvec2) Load 9(lod) + 42: 7(fvec2) FAdd 41 40 + Store 9(lod) 42 + 47: 44 Load 46(sampCube) + 48: 36(fvec3) Load 38(pf3) + 49: 7(fvec2) ImageQueryLod 47 48 + 50: 7(fvec2) Load 9(lod) + 51: 7(fvec2) FAdd 50 49 + Store 9(lod) 51 + 56: 53 Load 55(isamp1DA) + 57: 6(float) Load 16(pf) + 58: 7(fvec2) ImageQueryLod 56 57 + 59: 7(fvec2) Load 9(lod) + 60: 7(fvec2) FAdd 59 58 + Store 9(lod) 60 + 65: 62 Load 64(usamp2DA) + 66: 7(fvec2) Load 25(pf2) + 67: 7(fvec2) ImageQueryLod 65 66 + 68: 7(fvec2) Load 9(lod) + 69: 7(fvec2) FAdd 68 67 + Store 9(lod) 69 + 74: 71 Load 73(isampCubeA) + 75: 36(fvec3) Load 38(pf3) + 76: 7(fvec2) ImageQueryLod 74 75 + 77: 7(fvec2) Load 9(lod) + 78: 7(fvec2) FAdd 77 76 + Store 9(lod) 78 + 83: 80 Load 82(samp1Ds) + 84: 6(float) Load 16(pf) + 85: 7(fvec2) ImageQueryLod 83 84 + 86: 7(fvec2) Load 9(lod) + 87: 7(fvec2) FAdd 86 85 + Store 9(lod) 87 + 92: 89 Load 91(samp2Ds) + 93: 7(fvec2) Load 25(pf2) + 94: 7(fvec2) ImageQueryLod 92 93 + 95: 7(fvec2) Load 9(lod) + 96: 7(fvec2) FAdd 95 94 + Store 9(lod) 96 + 101: 98 Load 100(sampCubes) + 102: 36(fvec3) Load 38(pf3) + 103: 7(fvec2) ImageQueryLod 101 102 + 104: 7(fvec2) Load 9(lod) + 105: 7(fvec2) FAdd 104 103 + Store 9(lod) 105 + 110: 107 Load 109(samp1DAs) + 111: 6(float) Load 16(pf) + 112: 7(fvec2) ImageQueryLod 110 111 + 113: 7(fvec2) Load 9(lod) + 114: 7(fvec2) FAdd 113 112 + Store 9(lod) 114 + 119: 116 Load 118(samp2DAs) + 120: 7(fvec2) Load 25(pf2) + 121: 7(fvec2) ImageQueryLod 119 120 + 122: 7(fvec2) Load 9(lod) + 123: 7(fvec2) FAdd 122 121 + Store 9(lod) 123 + 128: 125 Load 127(sampCubeAs) + 129: 36(fvec3) Load 38(pf3) + 130: 7(fvec2) ImageQueryLod 128 129 + 131: 7(fvec2) Load 9(lod) + 132: 7(fvec2) FAdd 131 130 + Store 9(lod) 132 + 135: 11 Load 13(samp1D) + 136: 19(int) ImageQueryLevels 135 + Store 134(levels) 136 + 141: 138 Load 140(usamp2D) + 142: 19(int) ImageQueryLevels 141 + 143: 19(int) Load 134(levels) + 144: 19(int) IAdd 143 142 + Store 134(levels) 144 + 149: 146 Load 148(isamp3D) + 150: 19(int) ImageQueryLevels 149 + 151: 19(int) Load 134(levels) + 152: 19(int) IAdd 151 150 + Store 134(levels) 152 + 157: 154 Load 156(isampCube) + 158: 19(int) ImageQueryLevels 157 + 159: 19(int) Load 134(levels) + 160: 19(int) IAdd 159 158 + Store 134(levels) 160 + 161: 53 Load 55(isamp1DA) + 162: 19(int) ImageQueryLevels 161 + 163: 19(int) Load 134(levels) + 164: 19(int) IAdd 163 162 + Store 134(levels) 164 + 169: 166 Load 168(samp2DA) + 170: 19(int) ImageQueryLevels 169 + 171: 19(int) Load 134(levels) + 172: 19(int) IAdd 171 170 + Store 134(levels) 172 + 177: 174 Load 176(usampCubeA) + 178: 19(int) ImageQueryLevels 177 + 179: 19(int) Load 134(levels) + 180: 19(int) IAdd 179 178 + Store 134(levels) 180 + 181: 80 Load 82(samp1Ds) + 182: 19(int) ImageQueryLevels 181 + Store 134(levels) 182 + 183: 89 Load 91(samp2Ds) + 184: 19(int) ImageQueryLevels 183 + 185: 19(int) Load 134(levels) + 186: 19(int) IAdd 185 184 + Store 134(levels) 186 + 187: 98 Load 100(sampCubes) + 188: 19(int) ImageQueryLevels 187 + 189: 19(int) Load 134(levels) + 190: 19(int) IAdd 189 188 + Store 134(levels) 190 + 191: 107 Load 109(samp1DAs) + 192: 19(int) ImageQueryLevels 191 + 193: 19(int) Load 134(levels) + 194: 19(int) IAdd 193 192 + Store 134(levels) 194 + 195: 116 Load 118(samp2DAs) + 196: 19(int) ImageQueryLevels 195 + 197: 19(int) Load 134(levels) + 198: 19(int) IAdd 197 196 + Store 134(levels) 198 + 199: 125 Load 127(sampCubeAs) + 200: 19(int) ImageQueryLevels 199 + 201: 19(int) Load 134(levels) + 202: 19(int) IAdd 201 200 + Store 134(levels) 202 + Return + FunctionEnd diff --git a/Test/baseResults/spv.set.vert.out b/Test/baseResults/spv.set.vert.out index 396cfb30..77868faf 100755 --- a/Test/baseResults/spv.set.vert.out +++ b/Test/baseResults/spv.set.vert.out @@ -7,7 +7,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 26 +// Id's are bound by 25 Source GLSL 450 Capability Shader @@ -15,50 +15,48 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 10 "color" - Name 11 "setBuf" - MemberName 11(setBuf) 0 "color" - Name 13 "setBufInst" - Name 22 "sampler" - Name 24 "gl_VertexID" - Name 25 "gl_InstanceID" - Decorate 10(color) Smooth - Decorate 11(setBuf) GLSLShared - Decorate 11(setBuf) BufferBlock - Decorate 13(setBufInst) DescriptorSet 0 - Decorate 13(setBufInst) Binding 8 - Decorate 22(sampler) DescriptorSet 4 - Decorate 22(sampler) Binding 7 - Decorate 22(sampler) NoStaticUse - Decorate 24(gl_VertexID) BuiltIn VertexId - Decorate 24(gl_VertexID) NoStaticUse - Decorate 25(gl_InstanceID) BuiltIn InstanceId - Decorate 25(gl_InstanceID) NoStaticUse + Name 9 "color" + Name 10 "setBuf" + MemberName 10(setBuf) 0 "color" + Name 12 "setBufInst" + Name 21 "sampler" + Name 23 "gl_VertexID" + Name 24 "gl_InstanceID" + Decorate 9(color) Smooth + Decorate 10(setBuf) GLSLShared + Decorate 10(setBuf) BufferBlock + Decorate 12(setBufInst) DescriptorSet 0 + Decorate 12(setBufInst) Binding 8 + Decorate 21(sampler) DescriptorSet 4 + Decorate 21(sampler) Binding 7 + Decorate 21(sampler) NoStaticUse + Decorate 23(gl_VertexID) BuiltIn VertexId + Decorate 23(gl_VertexID) NoStaticUse + Decorate 24(gl_InstanceID) BuiltIn InstanceId + Decorate 24(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Output 8(fvec4) - 10(color): 9(ptr) Variable Output - 11(setBuf): TypeStruct 8(fvec4) - 12: TypePointer Uniform 11(setBuf) - 13(setBufInst): 12(ptr) Variable Uniform - 14: TypeInt 32 1 - 15: 14(int) Constant 0 - 16: TypePointer Uniform 8(fvec4) - 19: TypeImage 7(float) 2D sampled format:Unknown - 20: TypeSampledImage 19 - 21: TypePointer UniformConstant 20 - 22(sampler): 21(ptr) Variable UniformConstant - 23: TypePointer Input 14(int) - 24(gl_VertexID): 23(ptr) Variable Input -25(gl_InstanceID): 23(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(color): 8(ptr) Variable Output + 10(setBuf): TypeStruct 7(fvec4) + 11: TypePointer Uniform 10(setBuf) + 12(setBufInst): 11(ptr) Variable Uniform + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 15: TypePointer Uniform 7(fvec4) + 18: TypeImage 6(float) 2D sampled format:Unknown + 19: TypeSampledImage 18 + 20: TypePointer UniformConstant 19 + 21(sampler): 20(ptr) Variable UniformConstant + 22: TypePointer Input 13(int) + 23(gl_VertexID): 22(ptr) Variable Input +24(gl_InstanceID): 22(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 17: 16(ptr) AccessChain 13(setBufInst) 15 - 18: 8(fvec4) Load 17 - Store 10(color) 18 - Branch 6 - 6: Label + 16: 15(ptr) AccessChain 12(setBufInst) 14 + 17: 7(fvec4) Load 16 + Store 9(color) 17 Return FunctionEnd diff --git a/Test/baseResults/spv.simpleFunctionCall.frag.out b/Test/baseResults/spv.simpleFunctionCall.frag.out index 5b4ecd06..3c04142d 100755 --- a/Test/baseResults/spv.simpleFunctionCall.frag.out +++ b/Test/baseResults/spv.simpleFunctionCall.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 23 +// Id's are bound by 22 Source GLSL 150 Capability Shader @@ -16,38 +16,36 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "foo(" - Name 13 "BaseColor" - Name 17 "gl_FragColor" - Name 20 "bigColor" - Name 22 "d" - Decorate 13(BaseColor) Smooth - Decorate 17(gl_FragColor) BuiltIn FragColor - Decorate 20(bigColor) NoStaticUse - Decorate 22(d) NoStaticUse + Name 9 "foo(" + Name 12 "BaseColor" + Name 16 "gl_FragColor" + Name 19 "bigColor" + Name 21 "d" + Decorate 12(BaseColor) Smooth + Decorate 16(gl_FragColor) BuiltIn FragColor + Decorate 19(bigColor) NoStaticUse + Decorate 21(d) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypeFunction 8(fvec4) - 12: TypePointer Input 8(fvec4) - 13(BaseColor): 12(ptr) Variable Input - 16: TypePointer Output 8(fvec4) -17(gl_FragColor): 16(ptr) Variable Output - 19: TypePointer UniformConstant 8(fvec4) - 20(bigColor): 19(ptr) Variable UniformConstant - 21: TypePointer UniformConstant 7(float) - 22(d): 21(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypePointer Input 7(fvec4) + 12(BaseColor): 11(ptr) Variable Input + 15: TypePointer Output 7(fvec4) +16(gl_FragColor): 15(ptr) Variable Output + 18: TypePointer UniformConstant 7(fvec4) + 19(bigColor): 18(ptr) Variable UniformConstant + 20: TypePointer UniformConstant 6(float) + 21(d): 20(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 18: 8(fvec4) FunctionCall 10(foo() - Store 17(gl_FragColor) 18 - Branch 6 - 6: Label + 17: 7(fvec4) FunctionCall 9(foo() + Store 16(gl_FragColor) 17 Return FunctionEnd - 10(foo(): 8(fvec4) Function None 9 - 11: Label - 14: 8(fvec4) Load 13(BaseColor) - ReturnValue 14 + 9(foo(): 7(fvec4) Function None 8 + 10: Label + 13: 7(fvec4) Load 12(BaseColor) + ReturnValue 13 FunctionEnd diff --git a/Test/baseResults/spv.simpleMat.vert.out b/Test/baseResults/spv.simpleMat.vert.out index 4cae5456..e2502c1c 100755 --- a/Test/baseResults/spv.simpleMat.vert.out +++ b/Test/baseResults/spv.simpleMat.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 44 +// Id's are bound by 43 Source GLSL 330 Capability Shader @@ -13,64 +13,62 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 10 "glPos" - Name 13 "mvp" - Name 16 "v" - Name 20 "f" - Name 24 "am3" - Name 35 "arraym" - Name 42 "gl_VertexID" - Name 43 "gl_InstanceID" - Decorate 10(glPos) Smooth - Decorate 20(f) Smooth - Decorate 42(gl_VertexID) BuiltIn VertexId - Decorate 42(gl_VertexID) NoStaticUse - Decorate 43(gl_InstanceID) BuiltIn InstanceId - Decorate 43(gl_InstanceID) NoStaticUse + Name 9 "glPos" + Name 12 "mvp" + Name 15 "v" + Name 19 "f" + Name 23 "am3" + Name 34 "arraym" + Name 41 "gl_VertexID" + Name 42 "gl_InstanceID" + Decorate 9(glPos) Smooth + Decorate 19(f) Smooth + Decorate 41(gl_VertexID) BuiltIn VertexId + Decorate 41(gl_VertexID) NoStaticUse + Decorate 42(gl_InstanceID) BuiltIn InstanceId + Decorate 42(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Output 8(fvec4) - 10(glPos): 9(ptr) Variable Output - 11: TypeMatrix 8(fvec4) 4 - 12: TypePointer UniformConstant 11 - 13(mvp): 12(ptr) Variable UniformConstant - 15: TypePointer Input 8(fvec4) - 16(v): 15(ptr) Variable Input - 19: TypePointer Output 7(float) - 20(f): 19(ptr) Variable Output - 21: TypeVector 7(float) 3 - 22: TypeMatrix 21(fvec3) 3 - 23: TypePointer Input 22 - 24(am3): 23(ptr) Variable Input - 25: TypeInt 32 1 - 26: 25(int) Constant 2 - 27: TypePointer Input 21(fvec3) - 31: TypeInt 32 0 - 32: 31(int) Constant 3 - 33: TypeArray 11 32 - 34: TypePointer Input 33 - 35(arraym): 34(ptr) Variable Input - 36: 25(int) Constant 1 - 41: TypePointer Input 25(int) - 42(gl_VertexID): 41(ptr) Variable Input -43(gl_InstanceID): 41(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(glPos): 8(ptr) Variable Output + 10: TypeMatrix 7(fvec4) 4 + 11: TypePointer UniformConstant 10 + 12(mvp): 11(ptr) Variable UniformConstant + 14: TypePointer Input 7(fvec4) + 15(v): 14(ptr) Variable Input + 18: TypePointer Output 6(float) + 19(f): 18(ptr) Variable Output + 20: TypeVector 6(float) 3 + 21: TypeMatrix 20(fvec3) 3 + 22: TypePointer Input 21 + 23(am3): 22(ptr) Variable Input + 24: TypeInt 32 1 + 25: 24(int) Constant 2 + 26: TypePointer Input 20(fvec3) + 30: TypeInt 32 0 + 31: 30(int) Constant 3 + 32: TypeArray 10 31 + 33: TypePointer Input 32 + 34(arraym): 33(ptr) Variable Input + 35: 24(int) Constant 1 + 40: TypePointer Input 24(int) + 41(gl_VertexID): 40(ptr) Variable Input +42(gl_InstanceID): 40(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 14: 11 Load 13(mvp) - 17: 8(fvec4) Load 16(v) - 18: 8(fvec4) MatrixTimesVector 14 17 - Store 10(glPos) 18 - 28: 27(ptr) AccessChain 24(am3) 26 - 29: 21(fvec3) Load 28 - 30: 7(float) CompositeExtract 29 1 - 37: 15(ptr) AccessChain 35(arraym) 36 26 - 38: 8(fvec4) Load 37 - 39: 7(float) CompositeExtract 38 3 - 40: 7(float) FAdd 30 39 - Store 20(f) 40 - Branch 6 - 6: Label + 13: 10 Load 12(mvp) + 16: 7(fvec4) Load 15(v) + 17: 7(fvec4) MatrixTimesVector 13 16 + Store 9(glPos) 17 + 27: 26(ptr) AccessChain 23(am3) 25 + 28: 20(fvec3) Load 27 + 29: 6(float) CompositeExtract 28 1 + 36: 14(ptr) AccessChain 34(arraym) 35 25 + 37: 7(fvec4) Load 36 + 38: 6(float) CompositeExtract 37 3 + 39: 6(float) FAdd 29 38 + Store 19(f) 39 Return FunctionEnd diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out index 4ae7be93..e7cfd0ed 100755 --- a/Test/baseResults/spv.structAssignment.frag.out +++ b/Test/baseResults/spv.structAssignment.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 51 +// Id's are bound by 50 Source GLSL 130 Capability Shader @@ -16,84 +16,82 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "lunarStruct1" - MemberName 9(lunarStruct1) 0 "i" - MemberName 9(lunarStruct1) 1 "f" - Name 10 "lunarStruct2" - MemberName 10(lunarStruct2) 0 "i" - MemberName 10(lunarStruct2) 1 "f" - MemberName 10(lunarStruct2) 2 "s1_1" - Name 11 "lunarStruct3" - MemberName 11(lunarStruct3) 0 "s2_1" - MemberName 11(lunarStruct3) 1 "i" - MemberName 11(lunarStruct3) 2 "f" - MemberName 11(lunarStruct3) 3 "s1_1" - Name 13 "foo3" - Name 23 "locals2" - Name 28 "foo2" - Name 32 "gl_FragColor" - Name 41 "sampler" - Name 45 "coord" - Name 50 "foo" - Decorate 32(gl_FragColor) BuiltIn FragColor - Decorate 45(coord) Smooth - Decorate 50(foo) NoStaticUse + Name 8 "lunarStruct1" + MemberName 8(lunarStruct1) 0 "i" + MemberName 8(lunarStruct1) 1 "f" + Name 9 "lunarStruct2" + MemberName 9(lunarStruct2) 0 "i" + MemberName 9(lunarStruct2) 1 "f" + MemberName 9(lunarStruct2) 2 "s1_1" + Name 10 "lunarStruct3" + MemberName 10(lunarStruct3) 0 "s2_1" + MemberName 10(lunarStruct3) 1 "i" + MemberName 10(lunarStruct3) 2 "f" + MemberName 10(lunarStruct3) 3 "s1_1" + Name 12 "foo3" + Name 22 "locals2" + Name 27 "foo2" + Name 31 "gl_FragColor" + Name 40 "sampler" + Name 44 "coord" + Name 49 "foo" + Decorate 31(gl_FragColor) BuiltIn FragColor + Decorate 44(coord) Smooth + Decorate 49(foo) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypeFloat 32 - 9(lunarStruct1): TypeStruct 7(int) 8(float) -10(lunarStruct2): TypeStruct 7(int) 8(float) 9(lunarStruct1) -11(lunarStruct3): TypeStruct 10(lunarStruct2) 7(int) 8(float) 9(lunarStruct1) - 12: TypePointer UniformConstant 11(lunarStruct3) - 13(foo3): 12(ptr) Variable UniformConstant - 14: 7(int) Constant 0 - 15: TypePointer UniformConstant 7(int) - 18: TypeBool - 22: TypePointer Function 10(lunarStruct2) - 24: TypePointer UniformConstant 10(lunarStruct2) - 28(foo2): 24(ptr) Variable UniformConstant - 30: TypeVector 8(float) 4 - 31: TypePointer Output 30(fvec4) -32(gl_FragColor): 31(ptr) Variable Output - 33: 7(int) Constant 2 - 34: 7(int) Constant 1 - 35: TypePointer Function 8(float) - 38: TypeImage 8(float) 2D sampled format:Unknown - 39: TypeSampledImage 38 - 40: TypePointer UniformConstant 39 - 41(sampler): 40(ptr) Variable UniformConstant - 43: TypeVector 8(float) 2 - 44: TypePointer Input 43(fvec2) - 45(coord): 44(ptr) Variable Input - 49: TypePointer UniformConstant 9(lunarStruct1) - 50(foo): 49(ptr) Variable UniformConstant + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8(lunarStruct1): TypeStruct 6(int) 7(float) + 9(lunarStruct2): TypeStruct 6(int) 7(float) 8(lunarStruct1) +10(lunarStruct3): TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1) + 11: TypePointer UniformConstant 10(lunarStruct3) + 12(foo3): 11(ptr) Variable UniformConstant + 13: 6(int) Constant 0 + 14: TypePointer UniformConstant 6(int) + 17: TypeBool + 21: TypePointer Function 9(lunarStruct2) + 23: TypePointer UniformConstant 9(lunarStruct2) + 27(foo2): 23(ptr) Variable UniformConstant + 29: TypeVector 7(float) 4 + 30: TypePointer Output 29(fvec4) +31(gl_FragColor): 30(ptr) Variable Output + 32: 6(int) Constant 2 + 33: 6(int) Constant 1 + 34: TypePointer Function 7(float) + 37: TypeImage 7(float) 2D sampled format:Unknown + 38: TypeSampledImage 37 + 39: TypePointer UniformConstant 38 + 40(sampler): 39(ptr) Variable UniformConstant + 42: TypeVector 7(float) 2 + 43: TypePointer Input 42(fvec2) + 44(coord): 43(ptr) Variable Input + 48: TypePointer UniformConstant 8(lunarStruct1) + 49(foo): 48(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 23(locals2): 22(ptr) Variable Function - 16: 15(ptr) AccessChain 13(foo3) 14 14 - 17: 7(int) Load 16 - 19: 18(bool) SGreaterThan 17 14 - SelectionMerge 21 None - BranchConditional 19 20 27 - 20: Label - 25: 24(ptr) AccessChain 13(foo3) 14 - 26:10(lunarStruct2) Load 25 - Store 23(locals2) 26 - Branch 21 - 27: Label - 29:10(lunarStruct2) Load 28(foo2) - Store 23(locals2) 29 - 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 + 22(locals2): 21(ptr) Variable Function + 15: 14(ptr) AccessChain 12(foo3) 13 13 + 16: 6(int) Load 15 + 18: 17(bool) SGreaterThan 16 13 + SelectionMerge 20 None + 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 + 35: 34(ptr) AccessChain 22(locals2) 32 33 + 36: 7(float) Load 35 + 41: 38 Load 40(sampler) + 45: 42(fvec2) Load 44(coord) + 46: 29(fvec4) ImageSampleImplicitLod 41 45 + 47: 29(fvec4) VectorTimesScalar 46 36 + Store 31(gl_FragColor) 47 Return FunctionEnd diff --git a/Test/baseResults/spv.structDeref.frag.out b/Test/baseResults/spv.structDeref.frag.out index 570a2975..3e37696f 100755 --- a/Test/baseResults/spv.structDeref.frag.out +++ b/Test/baseResults/spv.structDeref.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 121 +// Id's are bound by 120 Source GLSL 130 Capability Shader @@ -16,179 +16,177 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "s0" - MemberName 9(s0) 0 "i" - Name 10 "s1" - MemberName 10(s1) 0 "i" - MemberName 10(s1) 1 "f" - MemberName 10(s1) 2 "s0_1" - Name 11 "s2" - MemberName 11(s2) 0 "i" - MemberName 11(s2) 1 "f" - MemberName 11(s2) 2 "s1_1" - Name 15 "s3" - MemberName 15(s3) 0 "s2_1" - MemberName 15(s3) 1 "i" - MemberName 15(s3) 2 "f" - MemberName 15(s3) 3 "s1_1" - Name 17 "foo3" - Name 28 "locals2" - Name 41 "fArray" - Name 47 "locals1Array" - Name 50 "foo1" - Name 54 "locals0" - Name 55 "s00" - MemberName 55(s00) 0 "s0_0" - Name 57 "locals00" - Name 62 "coord" - Name 69 "foo0" - Name 84 "foo00" - Name 97 "gl_FragColor" - Name 114 "sampler" - Name 120 "foo2" - Decorate 62(coord) Smooth - Decorate 97(gl_FragColor) BuiltIn FragColor - Decorate 120(foo2) NoStaticUse + Name 8 "s0" + MemberName 8(s0) 0 "i" + Name 9 "s1" + MemberName 9(s1) 0 "i" + MemberName 9(s1) 1 "f" + MemberName 9(s1) 2 "s0_1" + Name 10 "s2" + MemberName 10(s2) 0 "i" + MemberName 10(s2) 1 "f" + MemberName 10(s2) 2 "s1_1" + Name 14 "s3" + MemberName 14(s3) 0 "s2_1" + MemberName 14(s3) 1 "i" + MemberName 14(s3) 2 "f" + MemberName 14(s3) 3 "s1_1" + Name 16 "foo3" + Name 27 "locals2" + Name 40 "fArray" + Name 46 "locals1Array" + Name 49 "foo1" + Name 53 "locals0" + Name 54 "s00" + MemberName 54(s00) 0 "s0_0" + Name 56 "locals00" + Name 61 "coord" + Name 68 "foo0" + Name 83 "foo00" + Name 96 "gl_FragColor" + Name 113 "sampler" + Name 119 "foo2" + Decorate 61(coord) Smooth + Decorate 96(gl_FragColor) BuiltIn FragColor + Decorate 119(foo2) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypeFloat 32 - 9(s0): TypeStruct 7(int) - 10(s1): TypeStruct 7(int) 8(float) 9(s0) - 11(s2): TypeStruct 7(int) 8(float) 10(s1) - 12: TypeInt 32 0 - 13: 12(int) Constant 12 - 14: TypeArray 11(s2) 13 - 15(s3): TypeStruct 14 7(int) 8(float) 10(s1) - 16: TypePointer UniformConstant 15(s3) - 17(foo3): 16(ptr) Variable UniformConstant - 18: 7(int) Constant 0 - 19: 7(int) Constant 9 - 20: TypePointer UniformConstant 7(int) - 23: TypeBool - 27: TypePointer Function 11(s2) - 29: 7(int) Constant 1 - 30: 8(float) Constant 1065353216 - 31: TypePointer Function 8(float) - 33: 7(int) Constant 2 - 34: 9(s0) ConstantComposite 18 - 35: 10(s1) ConstantComposite 18 30 34 - 36: TypePointer Function 10(s1) - 38: 12(int) Constant 6 - 39: TypeArray 8(float) 38 - 40: TypePointer Function 39 - 42: 8(float) Constant 0 - 43: 39 ConstantComposite 42 42 42 42 42 42 - 44: 12(int) Constant 10 - 45: TypeArray 10(s1) 44 - 46: TypePointer Function 45 - 48: 7(int) Constant 6 - 49: TypePointer UniformConstant 10(s1) - 50(foo1): 49(ptr) Variable UniformConstant - 53: TypePointer Function 9(s0) - 55(s00): TypeStruct 9(s0) - 56: TypePointer Function 55(s00) - 58: 55(s00) ConstantComposite 34 - 60: TypeVector 8(float) 2 - 61: TypePointer Input 60(fvec2) - 62(coord): 61(ptr) Variable Input - 68: TypePointer UniformConstant 9(s0) - 69(foo0): 68(ptr) Variable UniformConstant - 73: 8(float) Constant 1073741824 - 74: 8(float) Constant 1077936128 - 75: 8(float) Constant 1082130432 - 76: 8(float) Constant 1084227584 - 77: 39 ConstantComposite 42 30 73 74 75 76 - 83: TypePointer UniformConstant 55(s00) - 84(foo00): 83(ptr) Variable UniformConstant - 86: TypePointer Function 7(int) - 89: 7(int) Constant 5 - 95: TypeVector 8(float) 4 - 96: TypePointer Output 95(fvec4) -97(gl_FragColor): 96(ptr) Variable Output - 104: 7(int) Constant 3 - 111: TypeImage 8(float) 2D sampled format:Unknown - 112: TypeSampledImage 111 - 113: TypePointer UniformConstant 112 - 114(sampler): 113(ptr) Variable UniformConstant - 119: TypePointer UniformConstant 11(s2) - 120(foo2): 119(ptr) Variable UniformConstant + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8(s0): TypeStruct 6(int) + 9(s1): TypeStruct 6(int) 7(float) 8(s0) + 10(s2): TypeStruct 6(int) 7(float) 9(s1) + 11: TypeInt 32 0 + 12: 11(int) Constant 12 + 13: TypeArray 10(s2) 12 + 14(s3): TypeStruct 13 6(int) 7(float) 9(s1) + 15: TypePointer UniformConstant 14(s3) + 16(foo3): 15(ptr) Variable UniformConstant + 17: 6(int) Constant 0 + 18: 6(int) Constant 9 + 19: TypePointer UniformConstant 6(int) + 22: TypeBool + 26: TypePointer Function 10(s2) + 28: 6(int) Constant 1 + 29: 7(float) Constant 1065353216 + 30: TypePointer Function 7(float) + 32: 6(int) Constant 2 + 33: 8(s0) ConstantComposite 17 + 34: 9(s1) ConstantComposite 17 29 33 + 35: TypePointer Function 9(s1) + 37: 11(int) Constant 6 + 38: TypeArray 7(float) 37 + 39: TypePointer Function 38 + 41: 7(float) Constant 0 + 42: 38 ConstantComposite 41 41 41 41 41 41 + 43: 11(int) Constant 10 + 44: TypeArray 9(s1) 43 + 45: TypePointer Function 44 + 47: 6(int) Constant 6 + 48: TypePointer UniformConstant 9(s1) + 49(foo1): 48(ptr) Variable UniformConstant + 52: TypePointer Function 8(s0) + 54(s00): TypeStruct 8(s0) + 55: TypePointer Function 54(s00) + 57: 54(s00) ConstantComposite 33 + 59: TypeVector 7(float) 2 + 60: TypePointer Input 59(fvec2) + 61(coord): 60(ptr) Variable Input + 67: TypePointer UniformConstant 8(s0) + 68(foo0): 67(ptr) Variable UniformConstant + 72: 7(float) Constant 1073741824 + 73: 7(float) Constant 1077936128 + 74: 7(float) Constant 1082130432 + 75: 7(float) Constant 1084227584 + 76: 38 ConstantComposite 41 29 72 73 74 75 + 82: TypePointer UniformConstant 54(s00) + 83(foo00): 82(ptr) Variable UniformConstant + 85: TypePointer Function 6(int) + 88: 6(int) Constant 5 + 94: TypeVector 7(float) 4 + 95: TypePointer Output 94(fvec4) +96(gl_FragColor): 95(ptr) Variable Output + 103: 6(int) Constant 3 + 110: TypeImage 7(float) 2D sampled format:Unknown + 111: TypeSampledImage 110 + 112: TypePointer UniformConstant 111 + 113(sampler): 112(ptr) Variable UniformConstant + 118: TypePointer UniformConstant 10(s2) + 119(foo2): 118(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 28(locals2): 27(ptr) Variable Function - 41(fArray): 40(ptr) Variable Function -47(locals1Array): 46(ptr) Variable Function - 54(locals0): 53(ptr) Variable Function - 57(locals00): 56(ptr) Variable Function - 21: 20(ptr) AccessChain 17(foo3) 18 19 18 - 22: 7(int) Load 21 - 24: 23(bool) SGreaterThan 22 18 - SelectionMerge 26 None - BranchConditional 24 25 59 - 25: Label - 32: 31(ptr) AccessChain 28(locals2) 29 - Store 32 30 - 37: 36(ptr) AccessChain 28(locals2) 33 - Store 37 35 - Store 41(fArray) 43 - 51: 10(s1) Load 50(foo1) - 52: 36(ptr) AccessChain 47(locals1Array) 48 - Store 52 51 - Store 54(locals0) 34 - Store 57(locals00) 58 - Branch 26 - 59: Label - 63: 60(fvec2) Load 62(coord) - 64: 8(float) CompositeExtract 63 0 - 65: 31(ptr) AccessChain 28(locals2) 29 - Store 65 64 - 66: 60(fvec2) Load 62(coord) - 67: 8(float) CompositeExtract 66 1 - 70: 9(s0) Load 69(foo0) - 71: 10(s1) CompositeConstruct 29 67 70 - 72: 36(ptr) AccessChain 28(locals2) 33 - Store 72 71 - Store 41(fArray) 77 - 78: 36(ptr) AccessChain 28(locals2) 33 - 79: 10(s1) Load 78 - 80: 36(ptr) AccessChain 47(locals1Array) 48 - Store 80 79 - 81: 68(ptr) AccessChain 50(foo1) 33 - 82: 9(s0) Load 81 - Store 54(locals0) 82 - 85: 55(s00) Load 84(foo00) - Store 57(locals00) 85 - Branch 26 - 26: Label - 87: 86(ptr) AccessChain 54(locals0) 18 - 88: 7(int) Load 87 - 90: 23(bool) SGreaterThan 88 89 - SelectionMerge 92 None - BranchConditional 90 91 92 - 91: Label - 93: 53(ptr) AccessChain 57(locals00) 18 - 94: 9(s0) Load 93 - Store 54(locals0) 94 - Branch 92 - 92: Label - 98: 86(ptr) AccessChain 54(locals0) 18 - 99: 7(int) Load 98 - 100: 8(float) ConvertSToF 99 - 101: 31(ptr) AccessChain 47(locals1Array) 48 29 - 102: 8(float) Load 101 - 103: 8(float) FAdd 100 102 - 105: 31(ptr) AccessChain 41(fArray) 104 - 106: 8(float) Load 105 - 107: 8(float) FAdd 103 106 - 108: 31(ptr) AccessChain 28(locals2) 33 29 - 109: 8(float) Load 108 - 110: 8(float) FAdd 107 109 - 115: 112 Load 114(sampler) - 116: 60(fvec2) Load 62(coord) - 117: 95(fvec4) ImageSampleImplicitLod 115 116 - 118: 95(fvec4) VectorTimesScalar 117 110 - Store 97(gl_FragColor) 118 - Branch 6 - 6: Label + 27(locals2): 26(ptr) Variable Function + 40(fArray): 39(ptr) Variable Function +46(locals1Array): 45(ptr) Variable Function + 53(locals0): 52(ptr) Variable Function + 56(locals00): 55(ptr) Variable Function + 20: 19(ptr) AccessChain 16(foo3) 17 18 17 + 21: 6(int) Load 20 + 23: 22(bool) SGreaterThan 21 17 + SelectionMerge 25 None + BranchConditional 23 24 58 + 24: Label + 31: 30(ptr) AccessChain 27(locals2) 28 + Store 31 29 + 36: 35(ptr) AccessChain 27(locals2) 32 + Store 36 34 + Store 40(fArray) 42 + 50: 9(s1) Load 49(foo1) + 51: 35(ptr) AccessChain 46(locals1Array) 47 + Store 51 50 + Store 53(locals0) 33 + Store 56(locals00) 57 + Branch 25 + 58: Label + 62: 59(fvec2) Load 61(coord) + 63: 7(float) CompositeExtract 62 0 + 64: 30(ptr) AccessChain 27(locals2) 28 + Store 64 63 + 65: 59(fvec2) Load 61(coord) + 66: 7(float) CompositeExtract 65 1 + 69: 8(s0) Load 68(foo0) + 70: 9(s1) CompositeConstruct 28 66 69 + 71: 35(ptr) AccessChain 27(locals2) 32 + Store 71 70 + Store 40(fArray) 76 + 77: 35(ptr) AccessChain 27(locals2) 32 + 78: 9(s1) Load 77 + 79: 35(ptr) AccessChain 46(locals1Array) 47 + Store 79 78 + 80: 67(ptr) AccessChain 49(foo1) 32 + 81: 8(s0) Load 80 + Store 53(locals0) 81 + 84: 54(s00) Load 83(foo00) + Store 56(locals00) 84 + Branch 25 + 25: Label + 86: 85(ptr) AccessChain 53(locals0) 17 + 87: 6(int) Load 86 + 89: 22(bool) SGreaterThan 87 88 + SelectionMerge 91 None + BranchConditional 89 90 91 + 90: Label + 92: 52(ptr) AccessChain 56(locals00) 17 + 93: 8(s0) Load 92 + Store 53(locals0) 93 + Branch 91 + 91: Label + 97: 85(ptr) AccessChain 53(locals0) 17 + 98: 6(int) Load 97 + 99: 7(float) ConvertSToF 98 + 100: 30(ptr) AccessChain 46(locals1Array) 47 28 + 101: 7(float) Load 100 + 102: 7(float) FAdd 99 101 + 104: 30(ptr) AccessChain 40(fArray) 103 + 105: 7(float) Load 104 + 106: 7(float) FAdd 102 105 + 107: 30(ptr) AccessChain 27(locals2) 32 28 + 108: 7(float) Load 107 + 109: 7(float) FAdd 106 108 + 114: 111 Load 113(sampler) + 115: 59(fvec2) Load 61(coord) + 116: 94(fvec4) ImageSampleImplicitLod 114 115 + 117: 94(fvec4) VectorTimesScalar 116 109 + Store 96(gl_FragColor) 117 Return FunctionEnd diff --git a/Test/baseResults/spv.structure.frag.out b/Test/baseResults/spv.structure.frag.out index 8edff737..5ae6fc49 100755 --- a/Test/baseResults/spv.structure.frag.out +++ b/Test/baseResults/spv.structure.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 62 +// Id's are bound by 61 Source GLSL 130 Capability Shader @@ -16,91 +16,89 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "scale" - Name 19 "lunarStruct1" - MemberName 19(lunarStruct1) 0 "i" - MemberName 19(lunarStruct1) 1 "f" - MemberName 19(lunarStruct1) 2 "color" - Name 22 "lunarStruct2" - MemberName 22(lunarStruct2) 0 "i" - MemberName 22(lunarStruct2) 1 "f" - MemberName 22(lunarStruct2) 2 "s1_1" - Name 25 "foo2" - Name 47 "gl_FragColor" - Name 52 "sampler" - Name 56 "coord" - Name 61 "foo" - Decorate 47(gl_FragColor) BuiltIn FragColor - Decorate 56(coord) Smooth - Decorate 61(foo) NoStaticUse + Name 8 "scale" + Name 18 "lunarStruct1" + MemberName 18(lunarStruct1) 0 "i" + MemberName 18(lunarStruct1) 1 "f" + MemberName 18(lunarStruct1) 2 "color" + Name 21 "lunarStruct2" + MemberName 21(lunarStruct2) 0 "i" + MemberName 21(lunarStruct2) 1 "f" + MemberName 21(lunarStruct2) 2 "s1_1" + Name 24 "foo2" + Name 46 "gl_FragColor" + Name 51 "sampler" + Name 55 "coord" + Name 60 "foo" + Decorate 46(gl_FragColor) BuiltIn FragColor + Decorate 55(coord) Smooth + Decorate 60(foo) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypePointer Function 7(float) - 10: 7(float) Constant 0 - 11: TypeInt 32 1 - 12: TypeInt 32 0 - 13: 12(int) Constant 5 - 14: TypeArray 11(int) 13 - 15: 12(int) Constant 4 - 16: TypeArray 7(float) 15 - 17: TypeVector 7(float) 4 - 18: TypeArray 17(fvec4) 13 -19(lunarStruct1): TypeStruct 11(int) 16 18 - 20: 12(int) Constant 7 - 21: TypeArray 19(lunarStruct1) 20 -22(lunarStruct2): TypeStruct 14 7(float) 21 - 23: TypeArray 22(lunarStruct2) 13 - 24: TypePointer UniformConstant 23 - 25(foo2): 24(ptr) Variable UniformConstant - 26: 11(int) Constant 3 - 27: 11(int) Constant 0 - 28: 11(int) Constant 4 - 29: TypePointer UniformConstant 11(int) - 32: TypeBool - 36: 11(int) Constant 2 - 37: TypePointer UniformConstant 17(fvec4) - 42: 11(int) Constant 1 - 43: TypePointer UniformConstant 7(float) - 46: TypePointer Output 17(fvec4) -47(gl_FragColor): 46(ptr) Variable Output - 49: TypeImage 7(float) 2D sampled format:Unknown - 50: TypeSampledImage 49 - 51: TypePointer UniformConstant 50 - 52(sampler): 51(ptr) Variable UniformConstant - 54: TypeVector 7(float) 2 - 55: TypePointer Input 54(fvec2) - 56(coord): 55(ptr) Variable Input - 60: TypePointer UniformConstant 19(lunarStruct1) - 61(foo): 60(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 0 + 10: TypeInt 32 1 + 11: TypeInt 32 0 + 12: 11(int) Constant 5 + 13: TypeArray 10(int) 12 + 14: 11(int) Constant 4 + 15: TypeArray 6(float) 14 + 16: TypeVector 6(float) 4 + 17: TypeArray 16(fvec4) 12 +18(lunarStruct1): TypeStruct 10(int) 15 17 + 19: 11(int) Constant 7 + 20: TypeArray 18(lunarStruct1) 19 +21(lunarStruct2): TypeStruct 13 6(float) 20 + 22: TypeArray 21(lunarStruct2) 12 + 23: TypePointer UniformConstant 22 + 24(foo2): 23(ptr) Variable UniformConstant + 25: 10(int) Constant 3 + 26: 10(int) Constant 0 + 27: 10(int) Constant 4 + 28: TypePointer UniformConstant 10(int) + 31: TypeBool + 35: 10(int) Constant 2 + 36: TypePointer UniformConstant 16(fvec4) + 41: 10(int) Constant 1 + 42: TypePointer UniformConstant 6(float) + 45: TypePointer Output 16(fvec4) +46(gl_FragColor): 45(ptr) Variable Output + 48: TypeImage 6(float) 2D sampled format:Unknown + 49: TypeSampledImage 48 + 50: TypePointer UniformConstant 49 + 51(sampler): 50(ptr) Variable UniformConstant + 53: TypeVector 6(float) 2 + 54: TypePointer Input 53(fvec2) + 55(coord): 54(ptr) Variable Input + 59: TypePointer UniformConstant 18(lunarStruct1) + 60(foo): 59(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 9(scale): 8(ptr) Variable Function - Store 9(scale) 10 - 30: 29(ptr) AccessChain 25(foo2) 26 27 28 - 31: 11(int) Load 30 - 33: 32(bool) SGreaterThan 31 27 - SelectionMerge 35 None - BranchConditional 33 34 41 - 34: Label - 38: 37(ptr) AccessChain 25(foo2) 26 36 36 36 26 - 39: 17(fvec4) Load 38 - 40: 7(float) CompositeExtract 39 0 - Store 9(scale) 40 - Branch 35 - 41: Label - 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 + 8(scale): 7(ptr) Variable Function + Store 8(scale) 9 + 29: 28(ptr) AccessChain 24(foo2) 25 26 27 + 30: 10(int) Load 29 + 32: 31(bool) SGreaterThan 30 26 + SelectionMerge 34 None + 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 + 47: 6(float) Load 8(scale) + 52: 49 Load 51(sampler) + 56: 53(fvec2) Load 55(coord) + 57: 16(fvec4) ImageSampleImplicitLod 52 56 + 58: 16(fvec4) VectorTimesScalar 57 47 + Store 46(gl_FragColor) 58 Return FunctionEnd diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out index cd039362..a67c6291 100755 --- a/Test/baseResults/spv.switch.frag.out +++ b/Test/baseResults/spv.switch.frag.out @@ -10,7 +10,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 261 +// Id's are bound by 260 Source ESSL 310 Capability Shader @@ -19,382 +19,380 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 16 "foo1(vf4;vf4;i1;" - Name 13 "v1" - Name 14 "v2" - Name 15 "i1" - Name 21 "foo2(vf4;vf4;i1;" - Name 18 "v1" - Name 19 "v2" - Name 20 "i1" - Name 59 "local" - Name 61 "c" - Name 72 "f" - Name 74 "x" - Name 128 "d" - Name 154 "i" - Name 172 "j" - Name 222 "color" - Name 228 "v" - Name 229 "param" - Name 231 "param" - Name 233 "param" - Name 239 "param" - Name 241 "param" - Name 243 "param" - Decorate 59(local) RelaxedPrecision - Decorate 61(c) RelaxedPrecision - Decorate 72(f) RelaxedPrecision - Decorate 74(x) RelaxedPrecision - Decorate 74(x) Smooth - Decorate 128(d) RelaxedPrecision - Decorate 154(i) RelaxedPrecision - Decorate 172(j) RelaxedPrecision - Decorate 222(color) RelaxedPrecision - Decorate 228(v) RelaxedPrecision + Name 15 "foo1(vf4;vf4;i1;" + Name 12 "v1" + Name 13 "v2" + Name 14 "i1" + Name 20 "foo2(vf4;vf4;i1;" + Name 17 "v1" + Name 18 "v2" + Name 19 "i1" + Name 58 "local" + Name 60 "c" + Name 71 "f" + Name 73 "x" + Name 127 "d" + Name 153 "i" + Name 171 "j" + Name 221 "color" + Name 227 "v" + Name 228 "param" + Name 230 "param" + Name 232 "param" + Name 238 "param" + Name 240 "param" + Name 242 "param" + Decorate 58(local) RelaxedPrecision + Decorate 60(c) RelaxedPrecision + Decorate 71(f) RelaxedPrecision + Decorate 73(x) RelaxedPrecision + Decorate 73(x) Smooth + Decorate 127(d) RelaxedPrecision + Decorate 153(i) RelaxedPrecision + Decorate 171(j) RelaxedPrecision + Decorate 221(color) RelaxedPrecision + Decorate 227(v) RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 10: TypeInt 32 1 - 11: TypePointer Function 10(int) - 12: TypeFunction 8(fvec4) 9(ptr) 9(ptr) 11(ptr) - 37: 7(float) Constant 0 - 38: 8(fvec4) ConstantComposite 37 37 37 37 - 48: 7(float) Constant 1065353216 - 49: 8(fvec4) ConstantComposite 48 48 48 48 - 60: TypePointer UniformConstant 10(int) - 61(c): 60(ptr) Variable UniformConstant - 64: 10(int) Constant 1 - 71: TypePointer Function 7(float) - 73: TypePointer Input 7(float) - 74(x): 73(ptr) Variable Input - 128(d): 60(ptr) Variable UniformConstant - 155: 10(int) Constant 0 - 160: 10(int) Constant 10 - 161: TypeBool - 173: 10(int) Constant 20 - 178: 10(int) Constant 30 - 183: 7(float) Constant 1120429670 - 203: 7(float) Constant 1079739679 - 221: TypePointer Output 7(float) - 222(color): 221(ptr) Variable Output - 227: TypePointer UniformConstant 8(fvec4) - 228(v): 227(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeInt 32 1 + 10: TypePointer Function 9(int) + 11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr) + 36: 6(float) Constant 0 + 37: 7(fvec4) ConstantComposite 36 36 36 36 + 47: 6(float) Constant 1065353216 + 48: 7(fvec4) ConstantComposite 47 47 47 47 + 59: TypePointer UniformConstant 9(int) + 60(c): 59(ptr) Variable UniformConstant + 63: 9(int) Constant 1 + 70: TypePointer Function 6(float) + 72: TypePointer Input 6(float) + 73(x): 72(ptr) Variable Input + 127(d): 59(ptr) Variable UniformConstant + 154: 9(int) Constant 0 + 159: 9(int) Constant 10 + 160: TypeBool + 172: 9(int) Constant 20 + 177: 9(int) Constant 30 + 182: 6(float) Constant 1120429670 + 202: 6(float) Constant 1079739679 + 220: TypePointer Output 6(float) + 221(color): 220(ptr) Variable Output + 226: TypePointer UniformConstant 7(fvec4) + 227(v): 226(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 59(local): 11(ptr) Variable Function - 72(f): 71(ptr) Variable Function - 154(i): 11(ptr) Variable Function - 172(j): 11(ptr) Variable Function - 229(param): 9(ptr) Variable Function - 231(param): 9(ptr) Variable Function - 233(param): 11(ptr) Variable Function - 239(param): 9(ptr) Variable Function - 241(param): 9(ptr) Variable Function - 243(param): 11(ptr) Variable Function - 62: 10(int) Load 61(c) - Store 59(local) 62 - 63: 10(int) Load 59(local) - 65: 10(int) IAdd 63 64 - Store 59(local) 65 - 66: 10(int) Load 61(c) - SelectionMerge 70 None - Switch 66 69 - case 1: 67 - case 2: 68 + 58(local): 10(ptr) Variable Function + 71(f): 70(ptr) Variable Function + 153(i): 10(ptr) Variable Function + 171(j): 10(ptr) Variable Function + 228(param): 8(ptr) Variable Function + 230(param): 8(ptr) Variable Function + 232(param): 10(ptr) Variable Function + 238(param): 8(ptr) Variable Function + 240(param): 8(ptr) Variable Function + 242(param): 10(ptr) Variable Function + 61: 9(int) Load 60(c) + Store 58(local) 61 + 62: 9(int) Load 58(local) + 64: 9(int) IAdd 62 63 + Store 58(local) 64 + 65: 9(int) Load 60(c) + SelectionMerge 69 None + Switch 65 68 + case 1: 66 + case 2: 67 + 66: Label + 74: 6(float) Load 73(x) + 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74 + Store 71(f) 75 + Branch 69 67: Label - 75: 7(float) Load 74(x) - 76: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 75 - Store 72(f) 76 - Branch 70 + 77: 6(float) Load 73(x) + 78: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 77 + Store 71(f) 78 + Branch 69 68: Label - 78: 7(float) Load 74(x) - 79: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 78 - Store 72(f) 79 - Branch 70 - 69: Label - 81: 7(float) Load 74(x) - 82: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 81 - Store 72(f) 82 - Branch 70 - 70: Label - 84: 10(int) Load 61(c) - SelectionMerge 88 None - Switch 84 87 - case 1: 85 - case 2: 86 + 80: 6(float) Load 73(x) + 81: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 80 + Store 71(f) 81 + Branch 69 + 69: Label + 83: 9(int) Load 60(c) + SelectionMerge 87 None + Switch 83 86 + case 1: 84 + case 2: 85 + 84: Label + 88: 6(float) Load 73(x) + 89: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 88 + 90: 6(float) Load 71(f) + 91: 6(float) FAdd 90 89 + Store 71(f) 91 + Branch 85 85: Label - 89: 7(float) Load 74(x) - 90: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 89 - 91: 7(float) Load 72(f) - 92: 7(float) FAdd 91 90 - Store 72(f) 92 - Branch 86 + 92: 6(float) Load 73(x) + 93: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 92 + 94: 6(float) Load 71(f) + 95: 6(float) FAdd 94 93 + Store 71(f) 95 + Branch 87 86: Label - 93: 7(float) Load 74(x) - 94: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 93 - 95: 7(float) Load 72(f) - 96: 7(float) FAdd 95 94 - Store 72(f) 96 - Branch 88 - 87: Label - 98: 7(float) Load 74(x) - 99: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 98 - 100: 7(float) Load 72(f) - 101: 7(float) FAdd 100 99 - Store 72(f) 101 - Branch 88 - 88: Label - 103: 10(int) Load 61(c) - SelectionMerge 106 None - Switch 103 106 - case 1: 104 - case 2: 105 + 97: 6(float) Load 73(x) + 98: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 97 + 99: 6(float) Load 71(f) + 100: 6(float) FAdd 99 98 + Store 71(f) 100 + Branch 87 + 87: Label + 102: 9(int) Load 60(c) + SelectionMerge 105 None + Switch 102 105 + case 1: 103 + case 2: 104 + 103: Label + 106: 6(float) Load 73(x) + 107: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 106 + 108: 6(float) Load 71(f) + 109: 6(float) FAdd 108 107 + Store 71(f) 109 + Branch 105 104: Label - 107: 7(float) Load 74(x) - 108: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 107 - 109: 7(float) Load 72(f) - 110: 7(float) FAdd 109 108 - Store 72(f) 110 - Branch 106 - 105: Label - 112: 7(float) Load 74(x) - 113: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 112 - 114: 7(float) Load 72(f) - 115: 7(float) FAdd 114 113 - Store 72(f) 115 - Branch 106 - 106: Label - 118: 10(int) Load 61(c) - SelectionMerge 122 None - Switch 118 121 - case 1: 119 - case 2: 120 + 111: 6(float) Load 73(x) + 112: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 111 + 113: 6(float) Load 71(f) + 114: 6(float) FAdd 113 112 + Store 71(f) 114 + Branch 105 + 105: Label + 117: 9(int) Load 60(c) + SelectionMerge 121 None + Switch 117 120 + case 1: 118 + case 2: 119 + 118: Label + 122: 6(float) Load 73(x) + 123: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 122 + 124: 6(float) Load 71(f) + 125: 6(float) FAdd 124 123 + Store 71(f) 125 + Branch 121 119: Label - 123: 7(float) Load 74(x) - 124: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 123 - 125: 7(float) Load 72(f) - 126: 7(float) FAdd 125 124 - Store 72(f) 126 - Branch 122 - 120: Label - 129: 10(int) Load 128(d) - SelectionMerge 132 None - Switch 129 132 - case 1: 130 - case 2: 131 + 128: 9(int) Load 127(d) + SelectionMerge 131 None + Switch 128 131 + case 1: 129 + case 2: 130 + 129: Label + 132: 6(float) Load 73(x) + 133: 6(float) Load 73(x) + 134: 6(float) FMul 132 133 + 135: 6(float) Load 73(x) + 136: 6(float) FMul 134 135 + 137: 6(float) Load 71(f) + 138: 6(float) FAdd 137 136 + Store 71(f) 138 + Branch 131 130: Label - 133: 7(float) Load 74(x) - 134: 7(float) Load 74(x) - 135: 7(float) FMul 133 134 - 136: 7(float) Load 74(x) - 137: 7(float) FMul 135 136 - 138: 7(float) Load 72(f) - 139: 7(float) FAdd 138 137 - Store 72(f) 139 - Branch 132 - 131: Label - 141: 7(float) Load 74(x) - 142: 7(float) Load 74(x) - 143: 7(float) FMul 141 142 - 144: 7(float) Load 72(f) - 145: 7(float) FAdd 144 143 - Store 72(f) 145 - Branch 132 - 132: Label - Branch 122 - 121: Label - 149: 7(float) Load 74(x) - 150: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 149 - 151: 7(float) Load 72(f) - 152: 7(float) FAdd 151 150 - Store 72(f) 152 - Branch 122 - 122: Label - Store 154(i) 155 - Branch 156 - 156: Label - 159: 10(int) Load 154(i) - 162: 161(bool) SLessThan 159 160 - LoopMerge 157 None - BranchConditional 162 158 157 - 158: Label - 163: 10(int) Load 61(c) - SelectionMerge 167 None - Switch 163 166 - case 1: 164 - case 2: 165 - 164: Label - 168: 7(float) Load 74(x) - 169: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 168 - 170: 7(float) Load 72(f) - 171: 7(float) FAdd 170 169 - Store 72(f) 171 - Store 172(j) 173 - Branch 174 + 140: 6(float) Load 73(x) + 141: 6(float) Load 73(x) + 142: 6(float) FMul 140 141 + 143: 6(float) Load 71(f) + 144: 6(float) FAdd 143 142 + Store 71(f) 144 + Branch 131 + 131: Label + Branch 121 + 120: Label + 148: 6(float) Load 73(x) + 149: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 148 + 150: 6(float) Load 71(f) + 151: 6(float) FAdd 150 149 + Store 71(f) 151 + Branch 121 + 121: Label + Store 153(i) 154 + Branch 155 + 155: Label + 158: 9(int) Load 153(i) + 161: 160(bool) SLessThan 158 159 + LoopMerge 156 None + BranchConditional 161 157 156 + 157: Label + 162: 9(int) Load 60(c) + SelectionMerge 166 None + Switch 162 165 + case 1: 163 + case 2: 164 + 163: Label + 167: 6(float) Load 73(x) + 168: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 167 + 169: 6(float) Load 71(f) + 170: 6(float) FAdd 169 168 + Store 71(f) 170 + Store 171(j) 172 + Branch 173 + 173: Label + 176: 9(int) Load 171(j) + 178: 160(bool) SLessThan 176 177 + LoopMerge 174 None + BranchConditional 178 175 174 + 175: Label + 179: 6(float) Load 71(f) + 180: 6(float) FAdd 179 47 + Store 71(f) 180 + 181: 6(float) Load 71(f) + 183: 160(bool) FOrdLessThan 181 182 + SelectionMerge 185 None + BranchConditional 183 184 185 + 184: Label + Branch 174 + 185: Label + 187: 9(int) Load 171(j) + 188: 9(int) IAdd 187 63 + Store 171(j) 188 + Branch 173 174: Label - 177: 10(int) Load 172(j) - 179: 161(bool) SLessThan 177 178 - LoopMerge 175 None - BranchConditional 179 176 175 - 176: Label - 180: 7(float) Load 72(f) - 181: 7(float) FAdd 180 48 - Store 72(f) 181 - 182: 7(float) Load 72(f) - 184: 161(bool) FOrdLessThan 182 183 - SelectionMerge 186 None - BranchConditional 184 185 186 - 185: Label - Branch 175 - 186: Label - 188: 10(int) Load 172(j) - 189: 10(int) IAdd 188 64 - Store 172(j) 189 - Branch 174 - 175: Label - Branch 167 + Branch 166 + 164: Label + 190: 6(float) Load 73(x) + 191: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 190 + 192: 6(float) Load 71(f) + 193: 6(float) FAdd 192 191 + Store 71(f) 193 + Branch 166 165: Label - 191: 7(float) Load 74(x) - 192: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 191 - 193: 7(float) Load 72(f) - 194: 7(float) FAdd 193 192 - Store 72(f) 194 - Branch 167 - 166: Label - 197: 7(float) Load 74(x) - 198: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 197 - 199: 7(float) Load 72(f) - 200: 7(float) FAdd 199 198 - Store 72(f) 200 - Branch 167 - 167: Label - 202: 7(float) Load 72(f) - 204: 161(bool) FOrdLessThan 202 203 - SelectionMerge 206 None - BranchConditional 204 205 206 - 205: Label - Branch 157 - 206: Label - 208: 10(int) Load 154(i) - 209: 10(int) IAdd 208 64 - Store 154(i) 209 - Branch 156 - 157: Label - 210: 10(int) Load 61(c) - SelectionMerge 213 None - Switch 210 213 - case 1: 211 - case 2: 212 + 196: 6(float) Load 73(x) + 197: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 196 + 198: 6(float) Load 71(f) + 199: 6(float) FAdd 198 197 + Store 71(f) 199 + Branch 166 + 166: Label + 201: 6(float) Load 71(f) + 203: 160(bool) FOrdLessThan 201 202 + SelectionMerge 205 None + BranchConditional 203 204 205 + 204: Label + Branch 156 + 205: Label + 207: 9(int) Load 153(i) + 208: 9(int) IAdd 207 63 + Store 153(i) 208 + Branch 155 + 156: Label + 209: 9(int) Load 60(c) + SelectionMerge 212 None + Switch 209 212 + case 1: 210 + case 2: 211 + 210: Label + 213: 6(float) Load 73(x) + 214: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 213 + 215: 6(float) Load 71(f) + 216: 6(float) FAdd 215 214 + Store 71(f) 216 + Branch 212 211: Label - 214: 7(float) Load 74(x) - 215: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 214 - 216: 7(float) Load 72(f) - 217: 7(float) FAdd 216 215 - Store 72(f) 217 - Branch 213 - 212: Label - Branch 213 - 213: Label - 223: 7(float) Load 72(f) - 224: 10(int) Load 59(local) - 225: 7(float) ConvertSToF 224 - 226: 7(float) FAdd 223 225 - Store 222(color) 226 - 230: 8(fvec4) Load 228(v) - Store 229(param) 230 - 232: 8(fvec4) Load 228(v) - Store 231(param) 232 - 234: 10(int) Load 61(c) - Store 233(param) 234 - 235: 8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param) - 236: 7(float) CompositeExtract 235 1 - 237: 7(float) Load 222(color) - 238: 7(float) FAdd 237 236 - Store 222(color) 238 - 240: 8(fvec4) Load 228(v) - Store 239(param) 240 - 242: 8(fvec4) Load 228(v) - Store 241(param) 242 - 244: 10(int) Load 61(c) - Store 243(param) 244 - 245: 8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param) - 246: 7(float) CompositeExtract 245 2 - 247: 7(float) Load 222(color) - 248: 7(float) FAdd 247 246 - Store 222(color) 248 - 249: 10(int) Load 61(c) - SelectionMerge 252 None - Switch 249 251 - case 0: 250 + Branch 212 + 212: Label + 222: 6(float) Load 71(f) + 223: 9(int) Load 58(local) + 224: 6(float) ConvertSToF 223 + 225: 6(float) FAdd 222 224 + Store 221(color) 225 + 229: 7(fvec4) Load 227(v) + Store 228(param) 229 + 231: 7(fvec4) Load 227(v) + Store 230(param) 231 + 233: 9(int) Load 60(c) + Store 232(param) 233 + 234: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 228(param) 230(param) 232(param) + 235: 6(float) CompositeExtract 234 1 + 236: 6(float) Load 221(color) + 237: 6(float) FAdd 236 235 + Store 221(color) 237 + 239: 7(fvec4) Load 227(v) + Store 238(param) 239 + 241: 7(fvec4) Load 227(v) + Store 240(param) 241 + 243: 9(int) Load 60(c) + Store 242(param) 243 + 244: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 238(param) 240(param) 242(param) + 245: 6(float) CompositeExtract 244 2 + 246: 6(float) Load 221(color) + 247: 6(float) FAdd 246 245 + Store 221(color) 247 + 248: 9(int) Load 60(c) + SelectionMerge 251 None + Switch 248 250 + case 0: 249 + 249: Label + Branch 251 250: Label - Branch 252 - 251: Label - Branch 252 - 252: Label - 256: 10(int) Load 61(c) - SelectionMerge 258 None - Switch 256 257 - 257: Label - Branch 258 - 258: Label - Branch 6 - 6: Label + Branch 251 + 251: Label + 255: 9(int) Load 60(c) + SelectionMerge 257 None + Switch 255 256 + 256: Label + Branch 257 + 257: Label Return FunctionEnd -16(foo1(vf4;vf4;i1;): 8(fvec4) Function None 12 - 13(v1): 9(ptr) FunctionParameter - 14(v2): 9(ptr) FunctionParameter - 15(i1): 11(ptr) FunctionParameter - 17: Label - 23: 10(int) Load 15(i1) - SelectionMerge 27 None - Switch 23 27 - case 0: 24 - case 2: 25 - case 1: 25 - case 3: 26 +15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11 + 12(v1): 8(ptr) FunctionParameter + 13(v2): 8(ptr) FunctionParameter + 14(i1): 10(ptr) FunctionParameter + 16: Label + 22: 9(int) Load 14(i1) + SelectionMerge 26 None + Switch 22 26 + case 0: 23 + case 2: 24 + case 1: 24 + case 3: 25 + 23: Label + 27: 7(fvec4) Load 12(v1) + ReturnValue 27 24: Label - 28: 8(fvec4) Load 13(v1) - ReturnValue 28 + 29: 7(fvec4) Load 13(v2) + ReturnValue 29 25: Label - 30: 8(fvec4) Load 14(v2) - ReturnValue 30 - 26: Label - 32: 8(fvec4) Load 13(v1) - 33: 8(fvec4) Load 14(v2) - 34: 8(fvec4) FMul 32 33 - ReturnValue 34 - 27: Label - ReturnValue 38 + 31: 7(fvec4) Load 12(v1) + 32: 7(fvec4) Load 13(v2) + 33: 7(fvec4) FMul 31 32 + ReturnValue 33 + 26: Label + ReturnValue 37 FunctionEnd -21(foo2(vf4;vf4;i1;): 8(fvec4) Function None 12 - 18(v1): 9(ptr) FunctionParameter - 19(v2): 9(ptr) FunctionParameter - 20(i1): 11(ptr) FunctionParameter - 22: Label - 40: 10(int) Load 20(i1) - SelectionMerge 45 None - Switch 40 45 - case 0: 41 - case 2: 42 - case 1: 43 - case 3: 44 +20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11 + 17(v1): 8(ptr) FunctionParameter + 18(v2): 8(ptr) FunctionParameter + 19(i1): 10(ptr) FunctionParameter + 21: Label + 39: 9(int) Load 19(i1) + SelectionMerge 44 None + Switch 39 44 + case 0: 40 + case 2: 41 + case 1: 42 + case 3: 43 + 40: Label + 45: 7(fvec4) Load 17(v1) + ReturnValue 45 41: Label - 46: 8(fvec4) Load 18(v1) - ReturnValue 46 + ReturnValue 48 42: Label - ReturnValue 49 + 50: 7(fvec4) Load 18(v2) + ReturnValue 50 43: Label - 51: 8(fvec4) Load 19(v2) - ReturnValue 51 - 44: Label - 53: 8(fvec4) Load 18(v1) - 54: 8(fvec4) Load 19(v2) - 55: 8(fvec4) FMul 53 54 - ReturnValue 55 - 45: Label - ReturnValue 38 + 52: 7(fvec4) Load 17(v1) + 53: 7(fvec4) Load 18(v2) + 54: 7(fvec4) FMul 52 53 + ReturnValue 54 + 44: Label + ReturnValue 37 FunctionEnd diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out index 5d5c3b05..827eb5b3 100755 --- a/Test/baseResults/spv.swizzle.frag.out +++ b/Test/baseResults/spv.swizzle.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 112 +// Id's are bound by 111 Source GLSL 110 Capability Shader @@ -14,165 +14,163 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "blendscale" - Name 13 "w" - Name 15 "u" - Name 17 "w_dep" - Name 19 "w_reorder" - Name 21 "w2" - Name 23 "w_flow" - Name 30 "t" - Name 49 "w_undef" - Name 56 "p" - Name 70 "gl_FragColor" - Name 82 "c" - Name 84 "rep" - Name 111 "blend" - Decorate 30(t) Smooth - Decorate 70(gl_FragColor) BuiltIn FragColor - Decorate 111(blend) NoStaticUse + Name 8 "blendscale" + Name 12 "w" + Name 14 "u" + Name 16 "w_dep" + Name 18 "w_reorder" + Name 20 "w2" + Name 22 "w_flow" + Name 29 "t" + Name 48 "w_undef" + Name 55 "p" + Name 69 "gl_FragColor" + Name 81 "c" + Name 83 "rep" + Name 110 "blend" + Decorate 29(t) Smooth + Decorate 69(gl_FragColor) BuiltIn FragColor + Decorate 110(blend) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypePointer Function 7(float) - 10: 7(float) Constant 1071971828 - 11: TypeVector 7(float) 4 - 12: TypePointer Function 11(fvec4) - 14: TypePointer UniformConstant 11(fvec4) - 15(u): 14(ptr) Variable UniformConstant - 28: TypeVector 7(float) 2 - 29: TypePointer Input 28(fvec2) - 30(t): 29(ptr) Variable Input - 54: TypeBool - 55: TypePointer UniformConstant 54(bool) - 56(p): 55(ptr) Variable UniformConstant - 69: TypePointer Output 11(fvec4) -70(gl_FragColor): 69(ptr) Variable Output - 81: TypePointer Function 28(fvec2) - 85: 7(float) Constant 0 - 86: 7(float) Constant 1065353216 - 87: 11(fvec4) ConstantComposite 85 85 85 86 - 93: 7(float) Constant 3212836864 - 104: 7(float) Constant 1079613850 - 110: TypePointer UniformConstant 7(float) - 111(blend): 110(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1071971828 + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 13: TypePointer UniformConstant 10(fvec4) + 14(u): 13(ptr) Variable UniformConstant + 27: TypeVector 6(float) 2 + 28: TypePointer Input 27(fvec2) + 29(t): 28(ptr) Variable Input + 53: TypeBool + 54: TypePointer UniformConstant 53(bool) + 55(p): 54(ptr) Variable UniformConstant + 68: TypePointer Output 10(fvec4) +69(gl_FragColor): 68(ptr) Variable Output + 80: TypePointer Function 27(fvec2) + 84: 6(float) Constant 0 + 85: 6(float) Constant 1065353216 + 86: 10(fvec4) ConstantComposite 84 84 84 85 + 92: 6(float) Constant 3212836864 + 103: 6(float) Constant 1079613850 + 109: TypePointer UniformConstant 6(float) + 110(blend): 109(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 9(blendscale): 8(ptr) Variable Function - 13(w): 12(ptr) Variable Function - 17(w_dep): 12(ptr) Variable Function - 19(w_reorder): 12(ptr) Variable Function - 21(w2): 12(ptr) Variable Function - 23(w_flow): 12(ptr) Variable Function - 49(w_undef): 12(ptr) Variable Function - 82(c): 81(ptr) Variable Function - 84(rep): 12(ptr) Variable Function - Store 9(blendscale) 10 - 16: 11(fvec4) Load 15(u) - Store 13(w) 16 - 18: 11(fvec4) Load 15(u) - Store 17(w_dep) 18 - 20: 11(fvec4) Load 15(u) - Store 19(w_reorder) 20 - 22: 11(fvec4) Load 15(u) - Store 21(w2) 22 - 24: 11(fvec4) Load 15(u) - Store 23(w_flow) 24 - 25: 7(float) Load 9(blendscale) - 26: 11(fvec4) Load 19(w_reorder) - 27: 11(fvec4) CompositeInsert 25 26 2 - Store 19(w_reorder) 27 - 31: 28(fvec2) Load 30(t) - 32: 11(fvec4) Load 13(w) - 33: 11(fvec4) VectorShuffle 32 31 0 5 2 4 - Store 13(w) 33 - 34: 7(float) Load 9(blendscale) - 35: 11(fvec4) Load 19(w_reorder) - 36: 11(fvec4) CompositeInsert 34 35 0 - Store 19(w_reorder) 36 - 37: 11(fvec4) Load 15(u) - 38: 11(fvec4) VectorShuffle 37 37 2 3 0 1 - Store 21(w2) 38 - 39: 7(float) Load 9(blendscale) - 40: 11(fvec4) Load 19(w_reorder) - 41: 11(fvec4) CompositeInsert 39 40 1 - Store 19(w_reorder) 41 - 42: 11(fvec4) Load 21(w2) - 43: 28(fvec2) VectorShuffle 42 42 0 2 - 44: 11(fvec4) Load 17(w_dep) - 45: 11(fvec4) VectorShuffle 44 43 4 5 2 3 - Store 17(w_dep) 45 - 46: 28(fvec2) Load 30(t) - 47: 11(fvec4) Load 17(w_dep) - 48: 11(fvec4) VectorShuffle 47 46 0 1 4 5 - Store 17(w_dep) 48 - 50: 11(fvec4) Load 15(u) - 51: 28(fvec2) VectorShuffle 50 50 2 3 - 52: 11(fvec4) Load 49(w_undef) - 53: 11(fvec4) VectorShuffle 52 51 4 5 2 3 - Store 49(w_undef) 53 - 57: 54(bool) Load 56(p) - SelectionMerge 59 None - BranchConditional 57 58 64 - 58: Label - 60: 28(fvec2) Load 30(t) - 61: 7(float) CompositeExtract 60 0 - 62: 11(fvec4) Load 23(w_flow) - 63: 11(fvec4) CompositeInsert 61 62 0 - Store 23(w_flow) 63 - Branch 59 - 64: Label - 65: 28(fvec2) Load 30(t) - 66: 7(float) CompositeExtract 65 1 - 67: 11(fvec4) Load 23(w_flow) - 68: 11(fvec4) CompositeInsert 66 67 0 - Store 23(w_flow) 68 - Branch 59 - 59: Label - 71: 11(fvec4) Load 19(w_reorder) - 72: 11(fvec4) Load 49(w_undef) - 73: 11(fvec4) Load 13(w) - 74: 11(fvec4) Load 21(w2) - 75: 11(fvec4) FMul 73 74 - 76: 11(fvec4) Load 17(w_dep) - 77: 11(fvec4) FMul 75 76 - 78: 11(fvec4) Load 23(w_flow) - 79: 11(fvec4) FMul 77 78 - 80: 11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 71 72 79 - Store 70(gl_FragColor) 80 - 83: 28(fvec2) Load 30(t) - Store 82(c) 83 - Store 84(rep) 87 - 88: 28(fvec2) Load 82(c) - 89: 7(float) CompositeExtract 88 0 - 90: 54(bool) FOrdLessThan 89 85 - SelectionMerge 92 None - BranchConditional 90 91 92 - 91: Label - 94: 28(fvec2) Load 82(c) - 95: 7(float) CompositeExtract 94 0 - 96: 7(float) FMul 95 93 - 97: 28(fvec2) Load 82(c) - 98: 28(fvec2) CompositeInsert 96 97 0 - Store 82(c) 98 - Branch 92 - 92: Label - 99: 28(fvec2) Load 82(c) - 100: 7(float) CompositeExtract 99 0 - 101: 54(bool) FOrdLessThanEqual 100 86 - SelectionMerge 103 None - BranchConditional 101 102 103 - 102: Label - 105: 11(fvec4) Load 84(rep) - 106: 11(fvec4) CompositeInsert 104 105 0 - Store 84(rep) 106 - Branch 103 - 103: Label - 107: 11(fvec4) Load 84(rep) - 108: 11(fvec4) Load 70(gl_FragColor) - 109: 11(fvec4) FAdd 108 107 - Store 70(gl_FragColor) 109 - Branch 6 - 6: Label + 8(blendscale): 7(ptr) Variable Function + 12(w): 11(ptr) Variable Function + 16(w_dep): 11(ptr) Variable Function + 18(w_reorder): 11(ptr) Variable Function + 20(w2): 11(ptr) Variable Function + 22(w_flow): 11(ptr) Variable Function + 48(w_undef): 11(ptr) Variable Function + 81(c): 80(ptr) Variable Function + 83(rep): 11(ptr) Variable Function + Store 8(blendscale) 9 + 15: 10(fvec4) Load 14(u) + Store 12(w) 15 + 17: 10(fvec4) Load 14(u) + Store 16(w_dep) 17 + 19: 10(fvec4) Load 14(u) + Store 18(w_reorder) 19 + 21: 10(fvec4) Load 14(u) + Store 20(w2) 21 + 23: 10(fvec4) Load 14(u) + Store 22(w_flow) 23 + 24: 6(float) Load 8(blendscale) + 25: 10(fvec4) Load 18(w_reorder) + 26: 10(fvec4) CompositeInsert 24 25 2 + Store 18(w_reorder) 26 + 30: 27(fvec2) Load 29(t) + 31: 10(fvec4) Load 12(w) + 32: 10(fvec4) VectorShuffle 31 30 0 5 2 4 + Store 12(w) 32 + 33: 6(float) Load 8(blendscale) + 34: 10(fvec4) Load 18(w_reorder) + 35: 10(fvec4) CompositeInsert 33 34 0 + Store 18(w_reorder) 35 + 36: 10(fvec4) Load 14(u) + 37: 10(fvec4) VectorShuffle 36 36 2 3 0 1 + Store 20(w2) 37 + 38: 6(float) Load 8(blendscale) + 39: 10(fvec4) Load 18(w_reorder) + 40: 10(fvec4) CompositeInsert 38 39 1 + Store 18(w_reorder) 40 + 41: 10(fvec4) Load 20(w2) + 42: 27(fvec2) VectorShuffle 41 41 0 2 + 43: 10(fvec4) Load 16(w_dep) + 44: 10(fvec4) VectorShuffle 43 42 4 5 2 3 + Store 16(w_dep) 44 + 45: 27(fvec2) Load 29(t) + 46: 10(fvec4) Load 16(w_dep) + 47: 10(fvec4) VectorShuffle 46 45 0 1 4 5 + Store 16(w_dep) 47 + 49: 10(fvec4) Load 14(u) + 50: 27(fvec2) VectorShuffle 49 49 2 3 + 51: 10(fvec4) Load 48(w_undef) + 52: 10(fvec4) VectorShuffle 51 50 4 5 2 3 + Store 48(w_undef) 52 + 56: 53(bool) Load 55(p) + SelectionMerge 58 None + BranchConditional 56 57 63 + 57: Label + 59: 27(fvec2) Load 29(t) + 60: 6(float) CompositeExtract 59 0 + 61: 10(fvec4) Load 22(w_flow) + 62: 10(fvec4) CompositeInsert 60 61 0 + Store 22(w_flow) 62 + Branch 58 + 63: Label + 64: 27(fvec2) Load 29(t) + 65: 6(float) CompositeExtract 64 1 + 66: 10(fvec4) Load 22(w_flow) + 67: 10(fvec4) CompositeInsert 65 66 0 + Store 22(w_flow) 67 + Branch 58 + 58: Label + 70: 10(fvec4) Load 18(w_reorder) + 71: 10(fvec4) Load 48(w_undef) + 72: 10(fvec4) Load 12(w) + 73: 10(fvec4) Load 20(w2) + 74: 10(fvec4) FMul 72 73 + 75: 10(fvec4) Load 16(w_dep) + 76: 10(fvec4) FMul 74 75 + 77: 10(fvec4) Load 22(w_flow) + 78: 10(fvec4) FMul 76 77 + 79: 10(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 70 71 78 + Store 69(gl_FragColor) 79 + 82: 27(fvec2) Load 29(t) + Store 81(c) 82 + Store 83(rep) 86 + 87: 27(fvec2) Load 81(c) + 88: 6(float) CompositeExtract 87 0 + 89: 53(bool) FOrdLessThan 88 84 + SelectionMerge 91 None + BranchConditional 89 90 91 + 90: Label + 93: 27(fvec2) Load 81(c) + 94: 6(float) CompositeExtract 93 0 + 95: 6(float) FMul 94 92 + 96: 27(fvec2) Load 81(c) + 97: 27(fvec2) CompositeInsert 95 96 0 + Store 81(c) 97 + Branch 91 + 91: Label + 98: 27(fvec2) Load 81(c) + 99: 6(float) CompositeExtract 98 0 + 100: 53(bool) FOrdLessThanEqual 99 85 + SelectionMerge 102 None + BranchConditional 100 101 102 + 101: Label + 104: 10(fvec4) Load 83(rep) + 105: 10(fvec4) CompositeInsert 103 104 0 + Store 83(rep) 105 + Branch 102 + 102: Label + 106: 10(fvec4) Load 83(rep) + 107: 10(fvec4) Load 69(gl_FragColor) + 108: 10(fvec4) FAdd 107 106 + Store 69(gl_FragColor) 108 Return FunctionEnd diff --git a/Test/baseResults/spv.test.frag.out b/Test/baseResults/spv.test.frag.out index 58bed1d3..b8091b73 100755 --- a/Test/baseResults/spv.test.frag.out +++ b/Test/baseResults/spv.test.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 56 +// Id's are bound by 55 Source GLSL 110 Capability Shader @@ -14,78 +14,76 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "blendscale" - Name 13 "v" - Name 17 "texSampler2D" - Name 21 "t" - Name 24 "scale" - Name 31 "w" - Name 35 "texSampler3D" - Name 39 "coords" - Name 45 "gl_FragColor" - Name 48 "u" - Name 51 "blend" - Decorate 21(t) Smooth - Decorate 39(coords) Smooth - Decorate 45(gl_FragColor) BuiltIn FragColor + Name 8 "blendscale" + Name 12 "v" + Name 16 "texSampler2D" + Name 20 "t" + Name 23 "scale" + Name 30 "w" + Name 34 "texSampler3D" + Name 38 "coords" + Name 44 "gl_FragColor" + Name 47 "u" + Name 50 "blend" + Decorate 20(t) Smooth + Decorate 38(coords) Smooth + Decorate 44(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypePointer Function 7(float) - 10: 7(float) Constant 1071971828 - 11: TypeVector 7(float) 4 - 12: TypePointer Function 11(fvec4) - 14: TypeImage 7(float) 2D sampled format:Unknown - 15: TypeSampledImage 14 - 16: TypePointer UniformConstant 15 -17(texSampler2D): 16(ptr) Variable UniformConstant - 19: TypeVector 7(float) 2 - 20: TypePointer Input 19(fvec2) - 21(t): 20(ptr) Variable Input - 23: TypePointer UniformConstant 19(fvec2) - 24(scale): 23(ptr) Variable UniformConstant - 32: TypeImage 7(float) 3D sampled format:Unknown - 33: TypeSampledImage 32 - 34: TypePointer UniformConstant 33 -35(texSampler3D): 34(ptr) Variable UniformConstant - 37: TypeVector 7(float) 3 - 38: TypePointer Input 37(fvec3) - 39(coords): 38(ptr) Variable Input - 44: TypePointer Output 11(fvec4) -45(gl_FragColor): 44(ptr) Variable Output - 47: TypePointer UniformConstant 11(fvec4) - 48(u): 47(ptr) Variable UniformConstant - 50: TypePointer UniformConstant 7(float) - 51(blend): 50(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1071971828 + 10: TypeVector 6(float) 4 + 11: TypePointer Function 10(fvec4) + 13: TypeImage 6(float) 2D sampled format:Unknown + 14: TypeSampledImage 13 + 15: TypePointer UniformConstant 14 +16(texSampler2D): 15(ptr) Variable UniformConstant + 18: TypeVector 6(float) 2 + 19: TypePointer Input 18(fvec2) + 20(t): 19(ptr) Variable Input + 22: TypePointer UniformConstant 18(fvec2) + 23(scale): 22(ptr) Variable UniformConstant + 31: TypeImage 6(float) 3D sampled format:Unknown + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 +34(texSampler3D): 33(ptr) Variable UniformConstant + 36: TypeVector 6(float) 3 + 37: TypePointer Input 36(fvec3) + 38(coords): 37(ptr) Variable Input + 43: TypePointer Output 10(fvec4) +44(gl_FragColor): 43(ptr) Variable Output + 46: TypePointer UniformConstant 10(fvec4) + 47(u): 46(ptr) Variable UniformConstant + 49: TypePointer UniformConstant 6(float) + 50(blend): 49(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 9(blendscale): 8(ptr) Variable Function - 13(v): 12(ptr) Variable Function - 31(w): 12(ptr) Variable Function - Store 9(blendscale) 10 - 18: 15 Load 17(texSampler2D) - 22: 19(fvec2) Load 21(t) - 25: 19(fvec2) Load 24(scale) - 26: 19(fvec2) FAdd 22 25 - 27: 19(fvec2) Load 24(scale) - 28: 19(fvec2) FDiv 26 27 - 29: 11(fvec4) ImageSampleImplicitLod 18 28 - 30: 11(fvec4) VectorShuffle 29 29 3 2 1 0 - Store 13(v) 30 - 36: 33 Load 35(texSampler3D) - 40: 37(fvec3) Load 39(coords) - 41: 11(fvec4) ImageSampleImplicitLod 36 40 - 42: 11(fvec4) Load 13(v) - 43: 11(fvec4) FAdd 41 42 - Store 31(w) 43 - 46: 11(fvec4) Load 31(w) - 49: 11(fvec4) Load 48(u) - 52: 7(float) Load 51(blend) - 53: 7(float) Load 9(blendscale) - 54: 7(float) FMul 52 53 - 55: 11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 46 49 54 - Store 45(gl_FragColor) 55 - Branch 6 - 6: Label + 8(blendscale): 7(ptr) Variable Function + 12(v): 11(ptr) Variable Function + 30(w): 11(ptr) Variable Function + Store 8(blendscale) 9 + 17: 14 Load 16(texSampler2D) + 21: 18(fvec2) Load 20(t) + 24: 18(fvec2) Load 23(scale) + 25: 18(fvec2) FAdd 21 24 + 26: 18(fvec2) Load 23(scale) + 27: 18(fvec2) FDiv 25 26 + 28: 10(fvec4) ImageSampleImplicitLod 17 27 + 29: 10(fvec4) VectorShuffle 28 28 3 2 1 0 + Store 12(v) 29 + 35: 32 Load 34(texSampler3D) + 39: 36(fvec3) Load 38(coords) + 40: 10(fvec4) ImageSampleImplicitLod 35 39 + 41: 10(fvec4) Load 12(v) + 42: 10(fvec4) FAdd 40 41 + Store 30(w) 42 + 45: 10(fvec4) Load 30(w) + 48: 10(fvec4) Load 47(u) + 51: 6(float) Load 50(blend) + 52: 6(float) Load 8(blendscale) + 53: 6(float) FMul 51 52 + 54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 45 48 53 + Store 44(gl_FragColor) 54 Return FunctionEnd diff --git a/Test/baseResults/spv.test.vert.out b/Test/baseResults/spv.test.vert.out index 69f945f4..c2b921bc 100644 --- a/Test/baseResults/spv.test.vert.out +++ b/Test/baseResults/spv.test.vert.out @@ -7,7 +7,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 28 +// Id's are bound by 27 Source GLSL 130 Capability Shader @@ -15,44 +15,42 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 10 "uv" - Name 12 "uv_in" - Name 16 "gl_Position" - Name 19 "transform" - Name 22 "position" - Name 27 "gl_VertexID" - Decorate 10(uv) Smooth - Decorate 16(gl_Position) BuiltIn Position - Decorate 27(gl_VertexID) BuiltIn VertexId - Decorate 27(gl_VertexID) NoStaticUse + Name 9 "uv" + Name 11 "uv_in" + Name 15 "gl_Position" + Name 18 "transform" + Name 21 "position" + Name 26 "gl_VertexID" + Decorate 9(uv) Smooth + Decorate 15(gl_Position) BuiltIn Position + Decorate 26(gl_VertexID) BuiltIn VertexId + Decorate 26(gl_VertexID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 2 - 9: TypePointer Output 8(fvec2) - 10(uv): 9(ptr) Variable Output - 11: TypePointer Input 8(fvec2) - 12(uv_in): 11(ptr) Variable Input - 14: TypeVector 7(float) 4 - 15: TypePointer Output 14(fvec4) - 16(gl_Position): 15(ptr) Variable Output - 17: TypeMatrix 14(fvec4) 4 - 18: TypePointer UniformConstant 17 - 19(transform): 18(ptr) Variable UniformConstant - 21: TypePointer Input 14(fvec4) - 22(position): 21(ptr) Variable Input - 25: TypeInt 32 1 - 26: TypePointer Input 25(int) - 27(gl_VertexID): 26(ptr) Variable Input + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Output 7(fvec2) + 9(uv): 8(ptr) Variable Output + 10: TypePointer Input 7(fvec2) + 11(uv_in): 10(ptr) Variable Input + 13: TypeVector 6(float) 4 + 14: TypePointer Output 13(fvec4) + 15(gl_Position): 14(ptr) Variable Output + 16: TypeMatrix 13(fvec4) 4 + 17: TypePointer UniformConstant 16 + 18(transform): 17(ptr) Variable UniformConstant + 20: TypePointer Input 13(fvec4) + 21(position): 20(ptr) Variable Input + 24: TypeInt 32 1 + 25: TypePointer Input 24(int) + 26(gl_VertexID): 25(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 13: 8(fvec2) Load 12(uv_in) - Store 10(uv) 13 - 20: 17 Load 19(transform) - 23: 14(fvec4) Load 22(position) - 24: 14(fvec4) MatrixTimesVector 20 23 - Store 16(gl_Position) 24 - Branch 6 - 6: Label + 12: 7(fvec2) Load 11(uv_in) + Store 9(uv) 12 + 19: 16 Load 18(transform) + 22: 13(fvec4) Load 21(position) + 23: 13(fvec4) MatrixTimesVector 19 22 + Store 15(gl_Position) 23 Return FunctionEnd diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out index 4326da4c..010ea35f 100644 --- a/Test/baseResults/spv.texture.frag.out +++ b/Test/baseResults/spv.texture.frag.out @@ -8,7 +8,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 283 +// Id's are bound by 290 Source GLSL 130 Capability Shader @@ -17,359 +17,365 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "blendscale" - Name 11 "bias" - Name 13 "lod" - Name 15 "proj" - Name 16 "coords1D" - Name 19 "coords3D" - Name 25 "coords4D" - Name 27 "color" - Name 33 "texSampler1D" - Name 48 "coords2D" - Name 73 "texSampler2D" - Name 99 "texSampler3D" - Name 125 "texSamplerCube" - Name 140 "shadowSampler1D" - Name 157 "shadowSampler2D" - Name 200 "iCoords2D" - Name 205 "iLod" - Name 214 "gradX" - Name 217 "gradY" - Name 269 "gl_FragColor" - Name 272 "u" - Name 275 "blend" - Name 281 "scale" - Name 282 "t" - Decorate 48(coords2D) Smooth - Decorate 269(gl_FragColor) BuiltIn FragColor - Decorate 281(scale) NoStaticUse - Decorate 282(t) Smooth - Decorate 282(t) NoStaticUse + Name 8 "blendscale" + Name 10 "bias" + Name 12 "lod" + Name 14 "proj" + Name 15 "coords1D" + Name 18 "coords3D" + Name 24 "coords4D" + Name 26 "color" + Name 32 "texSampler1D" + Name 47 "coords2D" + Name 72 "texSampler2D" + Name 98 "texSampler3D" + Name 124 "texSamplerCube" + Name 139 "shadowSampler1D" + Name 158 "shadowSampler2D" + Name 207 "iCoords2D" + Name 212 "iLod" + Name 221 "gradX" + Name 224 "gradY" + Name 276 "gl_FragColor" + Name 279 "u" + Name 282 "blend" + Name 288 "scale" + Name 289 "t" + Decorate 47(coords2D) Smooth + Decorate 276(gl_FragColor) BuiltIn FragColor + Decorate 288(scale) NoStaticUse + Decorate 289(t) Smooth + Decorate 289(t) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypePointer Function 7(float) - 10: 7(float) Constant 1071971828 - 12: 7(float) Constant 1073741824 - 14: 7(float) Constant 1077936128 - 17: TypeVector 7(float) 3 - 18: TypePointer Function 17(fvec3) - 20: 7(float) Constant 1076753334 - 21: 7(float) Constant 1079836148 - 22: 17(fvec3) ConstantComposite 10 20 21 - 23: TypeVector 7(float) 4 - 24: TypePointer Function 23(fvec4) - 26: 23(fvec4) ConstantComposite 10 20 21 12 - 28: 7(float) Constant 0 - 29: 23(fvec4) ConstantComposite 28 28 28 28 - 30: TypeImage 7(float) 1D sampled format:Unknown - 31: TypeSampledImage 30 - 32: TypePointer UniformConstant 31 -33(texSampler1D): 32(ptr) Variable UniformConstant - 46: TypeVector 7(float) 2 - 47: TypePointer Input 46(fvec2) - 48(coords2D): 47(ptr) Variable Input - 70: TypeImage 7(float) 2D sampled format:Unknown - 71: TypeSampledImage 70 - 72: TypePointer UniformConstant 71 -73(texSampler2D): 72(ptr) Variable UniformConstant - 96: TypeImage 7(float) 3D sampled format:Unknown - 97: TypeSampledImage 96 - 98: TypePointer UniformConstant 97 -99(texSampler3D): 98(ptr) Variable UniformConstant - 122: TypeImage 7(float) Cube sampled format:Unknown - 123: TypeSampledImage 122 - 124: TypePointer UniformConstant 123 -125(texSamplerCube): 124(ptr) Variable UniformConstant - 137: TypeImage 7(float) 1D depth sampled format:Unknown - 138: TypeSampledImage 137 - 139: TypePointer UniformConstant 138 -140(shadowSampler1D): 139(ptr) Variable UniformConstant - 154: TypeImage 7(float) 2D depth sampled format:Unknown - 155: TypeSampledImage 154 - 156: TypePointer UniformConstant 155 -157(shadowSampler2D): 156(ptr) Variable UniformConstant - 197: TypeInt 32 1 - 198: TypeVector 197(int) 2 - 199: TypePointer Function 198(ivec2) - 201: 197(int) Constant 0 - 202: 197(int) Constant 5 - 203: 198(ivec2) ConstantComposite 201 202 - 204: TypePointer Function 197(int) - 206: 197(int) Constant 1 - 213: TypePointer Function 46(fvec2) - 242: 197(int) Constant 3 - 243: 197(int) Constant 4294967289 - 244: 198(ivec2) ConstantComposite 242 243 - 268: TypePointer Output 23(fvec4) -269(gl_FragColor): 268(ptr) Variable Output - 271: TypePointer UniformConstant 23(fvec4) - 272(u): 271(ptr) Variable UniformConstant - 274: TypePointer UniformConstant 7(float) - 275(blend): 274(ptr) Variable UniformConstant - 280: TypePointer UniformConstant 46(fvec2) - 281(scale): 280(ptr) Variable UniformConstant - 282(t): 47(ptr) Variable Input + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1071971828 + 11: 6(float) Constant 1073741824 + 13: 6(float) Constant 1077936128 + 16: TypeVector 6(float) 3 + 17: TypePointer Function 16(fvec3) + 19: 6(float) Constant 1076753334 + 20: 6(float) Constant 1079836148 + 21: 16(fvec3) ConstantComposite 9 19 20 + 22: TypeVector 6(float) 4 + 23: TypePointer Function 22(fvec4) + 25: 22(fvec4) ConstantComposite 9 19 20 11 + 27: 6(float) Constant 0 + 28: 22(fvec4) ConstantComposite 27 27 27 27 + 29: TypeImage 6(float) 1D sampled format:Unknown + 30: TypeSampledImage 29 + 31: TypePointer UniformConstant 30 +32(texSampler1D): 31(ptr) Variable UniformConstant + 45: TypeVector 6(float) 2 + 46: TypePointer Input 45(fvec2) + 47(coords2D): 46(ptr) Variable Input + 69: TypeImage 6(float) 2D sampled format:Unknown + 70: TypeSampledImage 69 + 71: TypePointer UniformConstant 70 +72(texSampler2D): 71(ptr) Variable UniformConstant + 95: TypeImage 6(float) 3D sampled format:Unknown + 96: TypeSampledImage 95 + 97: TypePointer UniformConstant 96 +98(texSampler3D): 97(ptr) Variable UniformConstant + 121: TypeImage 6(float) Cube sampled format:Unknown + 122: TypeSampledImage 121 + 123: TypePointer UniformConstant 122 +124(texSamplerCube): 123(ptr) Variable UniformConstant + 136: TypeImage 6(float) 1D depth sampled format:Unknown + 137: TypeSampledImage 136 + 138: TypePointer UniformConstant 137 +139(shadowSampler1D): 138(ptr) Variable UniformConstant + 155: TypeImage 6(float) 2D depth sampled format:Unknown + 156: TypeSampledImage 155 + 157: TypePointer UniformConstant 156 +158(shadowSampler2D): 157(ptr) Variable UniformConstant + 204: TypeInt 32 1 + 205: TypeVector 204(int) 2 + 206: TypePointer Function 205(ivec2) + 208: 204(int) Constant 0 + 209: 204(int) Constant 5 + 210: 205(ivec2) ConstantComposite 208 209 + 211: TypePointer Function 204(int) + 213: 204(int) Constant 1 + 220: TypePointer Function 45(fvec2) + 249: 204(int) Constant 3 + 250: 204(int) Constant 4294967289 + 251: 205(ivec2) ConstantComposite 249 250 + 275: TypePointer Output 22(fvec4) +276(gl_FragColor): 275(ptr) Variable Output + 278: TypePointer UniformConstant 22(fvec4) + 279(u): 278(ptr) Variable UniformConstant + 281: TypePointer UniformConstant 6(float) + 282(blend): 281(ptr) Variable UniformConstant + 287: TypePointer UniformConstant 45(fvec2) + 288(scale): 287(ptr) Variable UniformConstant + 289(t): 46(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(blendscale): 8(ptr) Variable Function - 11(bias): 8(ptr) Variable Function - 13(lod): 8(ptr) Variable Function - 15(proj): 8(ptr) Variable Function - 16(coords1D): 8(ptr) Variable Function - 19(coords3D): 18(ptr) Variable Function - 25(coords4D): 24(ptr) Variable Function - 27(color): 24(ptr) Variable Function - 200(iCoords2D): 199(ptr) Variable Function - 205(iLod): 204(ptr) Variable Function - 214(gradX): 213(ptr) Variable Function - 217(gradY): 213(ptr) Variable Function - Store 9(blendscale) 10 - Store 11(bias) 12 - Store 13(lod) 14 - Store 15(proj) 12 - Store 16(coords1D) 10 - Store 19(coords3D) 22 - Store 25(coords4D) 26 - Store 27(color) 29 - 34: 31 Load 33(texSampler1D) - 35: 7(float) Load 16(coords1D) - 36: 23(fvec4) ImageSampleImplicitLod 34 35 - 37: 23(fvec4) Load 27(color) - 38: 23(fvec4) FAdd 37 36 - Store 27(color) 38 - 39: 31 Load 33(texSampler1D) - 40: 7(float) Load 16(coords1D) - 41: 7(float) Load 11(bias) - 42: 23(fvec4) ImageSampleImplicitLod 39 40 41 - 43: 23(fvec4) Load 27(color) - 44: 23(fvec4) FAdd 43 42 - Store 27(color) 44 - 45: 31 Load 33(texSampler1D) - 49: 46(fvec2) Load 48(coords2D) - 50: 23(fvec4) ImageSampleProjImplicitLod 45 49 - 51: 23(fvec4) Load 27(color) - 52: 23(fvec4) FAdd 51 50 - Store 27(color) 52 - 53: 31 Load 33(texSampler1D) - 54: 23(fvec4) Load 25(coords4D) - 55: 23(fvec4) ImageSampleProjImplicitLod 53 54 - 56: 23(fvec4) Load 27(color) - 57: 23(fvec4) FAdd 56 55 - Store 27(color) 57 - 58: 31 Load 33(texSampler1D) - 59: 46(fvec2) Load 48(coords2D) - 60: 7(float) Load 11(bias) - 61: 23(fvec4) ImageSampleProjImplicitLod 58 59 60 - 62: 23(fvec4) Load 27(color) - 63: 23(fvec4) FAdd 62 61 - Store 27(color) 63 - 64: 31 Load 33(texSampler1D) - 65: 23(fvec4) Load 25(coords4D) - 66: 7(float) Load 11(bias) - 67: 23(fvec4) ImageSampleProjImplicitLod 64 65 66 - 68: 23(fvec4) Load 27(color) - 69: 23(fvec4) FAdd 68 67 - Store 27(color) 69 - 74: 71 Load 73(texSampler2D) - 75: 46(fvec2) Load 48(coords2D) - 76: 23(fvec4) ImageSampleImplicitLod 74 75 - 77: 23(fvec4) Load 27(color) - 78: 23(fvec4) FAdd 77 76 - Store 27(color) 78 - 79: 71 Load 73(texSampler2D) - 80: 46(fvec2) Load 48(coords2D) - 81: 7(float) Load 11(bias) - 82: 23(fvec4) ImageSampleImplicitLod 79 80 81 - 83: 23(fvec4) Load 27(color) - 84: 23(fvec4) FAdd 83 82 - Store 27(color) 84 - 85: 71 Load 73(texSampler2D) - 86: 17(fvec3) Load 19(coords3D) - 87: 23(fvec4) ImageSampleProjImplicitLod 85 86 - 88: 23(fvec4) Load 27(color) - 89: 23(fvec4) FAdd 88 87 - Store 27(color) 89 - 90: 71 Load 73(texSampler2D) - 91: 23(fvec4) Load 25(coords4D) - 92: 7(float) Load 11(bias) - 93: 23(fvec4) ImageSampleProjImplicitLod 90 91 92 - 94: 23(fvec4) Load 27(color) - 95: 23(fvec4) FAdd 94 93 - Store 27(color) 95 - 100: 97 Load 99(texSampler3D) - 101: 17(fvec3) Load 19(coords3D) - 102: 23(fvec4) ImageSampleImplicitLod 100 101 - 103: 23(fvec4) Load 27(color) - 104: 23(fvec4) FAdd 103 102 - Store 27(color) 104 - 105: 97 Load 99(texSampler3D) - 106: 17(fvec3) Load 19(coords3D) - 107: 7(float) Load 11(bias) - 108: 23(fvec4) ImageSampleImplicitLod 105 106 107 - 109: 23(fvec4) Load 27(color) - 110: 23(fvec4) FAdd 109 108 - Store 27(color) 110 - 111: 97 Load 99(texSampler3D) - 112: 23(fvec4) Load 25(coords4D) - 113: 23(fvec4) ImageSampleProjImplicitLod 111 112 - 114: 23(fvec4) Load 27(color) - 115: 23(fvec4) FAdd 114 113 - Store 27(color) 115 - 116: 97 Load 99(texSampler3D) - 117: 23(fvec4) Load 25(coords4D) - 118: 7(float) Load 11(bias) - 119: 23(fvec4) ImageSampleProjImplicitLod 116 117 118 - 120: 23(fvec4) Load 27(color) - 121: 23(fvec4) FAdd 120 119 - Store 27(color) 121 - 126: 123 Load 125(texSamplerCube) - 127: 17(fvec3) Load 19(coords3D) - 128: 23(fvec4) ImageSampleImplicitLod 126 127 - 129: 23(fvec4) Load 27(color) - 130: 23(fvec4) FAdd 129 128 - Store 27(color) 130 - 131: 123 Load 125(texSamplerCube) - 132: 17(fvec3) Load 19(coords3D) - 133: 7(float) Load 11(bias) - 134: 23(fvec4) ImageSampleImplicitLod 131 132 133 - 135: 23(fvec4) Load 27(color) - 136: 23(fvec4) FAdd 135 134 - Store 27(color) 136 - 141: 138 Load 140(shadowSampler1D) - 142: 17(fvec3) Load 19(coords3D) - 143: 7(float) CompositeExtract 142 2 - 144: 23(fvec4) ImageSampleDrefImplicitLod 141 142 143 - 145: 23(fvec4) Load 27(color) - 146: 23(fvec4) FAdd 145 144 - Store 27(color) 146 - 147: 138 Load 140(shadowSampler1D) - 148: 17(fvec3) Load 19(coords3D) - 149: 7(float) Load 11(bias) - 150: 7(float) CompositeExtract 148 2 - 151: 23(fvec4) ImageSampleDrefImplicitLod 147 148 150 149 - 152: 23(fvec4) Load 27(color) - 153: 23(fvec4) FAdd 152 151 - Store 27(color) 153 - 158: 155 Load 157(shadowSampler2D) - 159: 17(fvec3) Load 19(coords3D) - 160: 7(float) CompositeExtract 159 2 - 161: 23(fvec4) ImageSampleDrefImplicitLod 158 159 160 - 162: 23(fvec4) Load 27(color) - 163: 23(fvec4) FAdd 162 161 - Store 27(color) 163 - 164: 155 Load 157(shadowSampler2D) - 165: 17(fvec3) Load 19(coords3D) - 166: 7(float) Load 11(bias) - 167: 7(float) CompositeExtract 165 2 - 168: 23(fvec4) ImageSampleDrefImplicitLod 164 165 167 166 - 169: 23(fvec4) Load 27(color) - 170: 23(fvec4) FAdd 169 168 - Store 27(color) 170 - 171: 138 Load 140(shadowSampler1D) - 172: 23(fvec4) Load 25(coords4D) - 173: 7(float) CompositeExtract 172 3 - 174: 23(fvec4) ImageSampleProjDrefImplicitLod 171 172 173 - 175: 23(fvec4) Load 27(color) - 176: 23(fvec4) FAdd 175 174 - Store 27(color) 176 - 177: 138 Load 140(shadowSampler1D) - 178: 23(fvec4) Load 25(coords4D) - 179: 7(float) Load 11(bias) - 180: 7(float) CompositeExtract 178 3 - 181: 23(fvec4) ImageSampleProjDrefImplicitLod 177 178 180 179 - 182: 23(fvec4) Load 27(color) - 183: 23(fvec4) FAdd 182 181 - Store 27(color) 183 - 184: 155 Load 157(shadowSampler2D) - 185: 23(fvec4) Load 25(coords4D) - 186: 7(float) CompositeExtract 185 3 - 187: 23(fvec4) ImageSampleProjDrefImplicitLod 184 185 186 - 188: 23(fvec4) Load 27(color) - 189: 23(fvec4) FAdd 188 187 - Store 27(color) 189 - 190: 155 Load 157(shadowSampler2D) - 191: 23(fvec4) Load 25(coords4D) - 192: 7(float) Load 11(bias) - 193: 7(float) CompositeExtract 191 3 - 194: 23(fvec4) ImageSampleProjDrefImplicitLod 190 191 193 192 - 195: 23(fvec4) Load 27(color) - 196: 23(fvec4) FAdd 195 194 - Store 27(color) 196 - Store 200(iCoords2D) 203 - Store 205(iLod) 206 - 207: 71 Load 73(texSampler2D) - 208: 198(ivec2) Load 200(iCoords2D) - 209: 197(int) Load 205(iLod) - 210: 23(fvec4) ImageFetch 207 208 - 211: 23(fvec4) Load 27(color) - 212: 23(fvec4) FAdd 211 210 - Store 27(color) 212 - 215: 46(fvec2) Load 48(coords2D) - 216: 46(fvec2) DPdx 215 - Store 214(gradX) 216 - 218: 46(fvec2) Load 48(coords2D) - 219: 46(fvec2) DPdy 218 - Store 217(gradY) 219 - 220: 71 Load 73(texSampler2D) - 221: 46(fvec2) Load 48(coords2D) - 222: 46(fvec2) Load 214(gradX) - 223: 46(fvec2) Load 217(gradY) - 224: 23(fvec4) ImageSampleExplicitLod 220 221 222 223 - 225: 23(fvec4) Load 27(color) - 226: 23(fvec4) FAdd 225 224 - Store 27(color) 226 - 227: 71 Load 73(texSampler2D) - 228: 46(fvec2) Load 48(coords2D) - 229: 7(float) Load 15(proj) - 230: 7(float) CompositeExtract 228 0 - 231: 7(float) CompositeExtract 228 1 - 232: 17(fvec3) CompositeConstruct 230 231 229 - 233: 46(fvec2) Load 214(gradX) - 234: 46(fvec2) Load 217(gradY) - 235: 23(fvec4) ImageSampleProjExplicitLod 227 232 233 234 - 236: 23(fvec4) Load 27(color) - 237: 23(fvec4) FAdd 236 235 - Store 27(color) 237 - 238: 71 Load 73(texSampler2D) - 239: 46(fvec2) Load 48(coords2D) - 240: 46(fvec2) Load 214(gradX) - 241: 46(fvec2) Load 217(gradY) - 245: 23(fvec4) ImageSampleExplicitLod 238 239 240 241 244 - 246: 23(fvec4) Load 27(color) - 247: 23(fvec4) FAdd 246 245 - Store 27(color) 247 - 248: 71 Load 73(texSampler2D) - 249: 17(fvec3) Load 19(coords3D) - 250: 46(fvec2) Load 214(gradX) - 251: 46(fvec2) Load 217(gradY) - 252: 23(fvec4) ImageSampleProjExplicitLod 248 249 250 251 244 - 253: 23(fvec4) Load 27(color) - 254: 23(fvec4) FAdd 253 252 - Store 27(color) 254 - 255: 155 Load 157(shadowSampler2D) - 256: 46(fvec2) Load 48(coords2D) - 257: 7(float) Load 13(lod) - 258: 7(float) CompositeExtract 256 0 - 259: 7(float) CompositeExtract 256 1 - 260: 17(fvec3) CompositeConstruct 258 259 257 - 261: 46(fvec2) Load 214(gradX) - 262: 46(fvec2) Load 217(gradY) - 263: 7(float) CompositeExtract 260 2 - 264: 7(float) ImageSampleDrefExplicitLod 255 260 263 261 262 - 265: 23(fvec4) Load 27(color) - 266: 23(fvec4) CompositeConstruct 264 264 264 264 - 267: 23(fvec4) FAdd 265 266 - Store 27(color) 267 - 270: 23(fvec4) Load 27(color) - 273: 23(fvec4) Load 272(u) - 276: 7(float) Load 275(blend) - 277: 7(float) Load 9(blendscale) - 278: 7(float) FMul 276 277 - 279: 23(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 270 273 278 - Store 269(gl_FragColor) 279 - Branch 6 - 6: Label + 8(blendscale): 7(ptr) Variable Function + 10(bias): 7(ptr) Variable Function + 12(lod): 7(ptr) Variable Function + 14(proj): 7(ptr) Variable Function + 15(coords1D): 7(ptr) Variable Function + 18(coords3D): 17(ptr) Variable Function + 24(coords4D): 23(ptr) Variable Function + 26(color): 23(ptr) Variable Function + 207(iCoords2D): 206(ptr) Variable Function + 212(iLod): 211(ptr) Variable Function + 221(gradX): 220(ptr) Variable Function + 224(gradY): 220(ptr) Variable Function + Store 8(blendscale) 9 + Store 10(bias) 11 + Store 12(lod) 13 + Store 14(proj) 11 + Store 15(coords1D) 9 + Store 18(coords3D) 21 + Store 24(coords4D) 25 + Store 26(color) 28 + 33: 30 Load 32(texSampler1D) + 34: 6(float) Load 15(coords1D) + 35: 22(fvec4) ImageSampleImplicitLod 33 34 + 36: 22(fvec4) Load 26(color) + 37: 22(fvec4) FAdd 36 35 + Store 26(color) 37 + 38: 30 Load 32(texSampler1D) + 39: 6(float) Load 15(coords1D) + 40: 6(float) Load 10(bias) + 41: 22(fvec4) ImageSampleImplicitLod 38 39 40 + 42: 22(fvec4) Load 26(color) + 43: 22(fvec4) FAdd 42 41 + Store 26(color) 43 + 44: 30 Load 32(texSampler1D) + 48: 45(fvec2) Load 47(coords2D) + 49: 22(fvec4) ImageSampleProjImplicitLod 44 48 + 50: 22(fvec4) Load 26(color) + 51: 22(fvec4) FAdd 50 49 + Store 26(color) 51 + 52: 30 Load 32(texSampler1D) + 53: 22(fvec4) Load 24(coords4D) + 54: 22(fvec4) ImageSampleProjImplicitLod 52 53 + 55: 22(fvec4) Load 26(color) + 56: 22(fvec4) FAdd 55 54 + Store 26(color) 56 + 57: 30 Load 32(texSampler1D) + 58: 45(fvec2) Load 47(coords2D) + 59: 6(float) Load 10(bias) + 60: 22(fvec4) ImageSampleProjImplicitLod 57 58 59 + 61: 22(fvec4) Load 26(color) + 62: 22(fvec4) FAdd 61 60 + Store 26(color) 62 + 63: 30 Load 32(texSampler1D) + 64: 22(fvec4) Load 24(coords4D) + 65: 6(float) Load 10(bias) + 66: 22(fvec4) ImageSampleProjImplicitLod 63 64 65 + 67: 22(fvec4) Load 26(color) + 68: 22(fvec4) FAdd 67 66 + Store 26(color) 68 + 73: 70 Load 72(texSampler2D) + 74: 45(fvec2) Load 47(coords2D) + 75: 22(fvec4) ImageSampleImplicitLod 73 74 + 76: 22(fvec4) Load 26(color) + 77: 22(fvec4) FAdd 76 75 + Store 26(color) 77 + 78: 70 Load 72(texSampler2D) + 79: 45(fvec2) Load 47(coords2D) + 80: 6(float) Load 10(bias) + 81: 22(fvec4) ImageSampleImplicitLod 78 79 80 + 82: 22(fvec4) Load 26(color) + 83: 22(fvec4) FAdd 82 81 + Store 26(color) 83 + 84: 70 Load 72(texSampler2D) + 85: 16(fvec3) Load 18(coords3D) + 86: 22(fvec4) ImageSampleProjImplicitLod 84 85 + 87: 22(fvec4) Load 26(color) + 88: 22(fvec4) FAdd 87 86 + Store 26(color) 88 + 89: 70 Load 72(texSampler2D) + 90: 22(fvec4) Load 24(coords4D) + 91: 6(float) Load 10(bias) + 92: 22(fvec4) ImageSampleProjImplicitLod 89 90 91 + 93: 22(fvec4) Load 26(color) + 94: 22(fvec4) FAdd 93 92 + Store 26(color) 94 + 99: 96 Load 98(texSampler3D) + 100: 16(fvec3) Load 18(coords3D) + 101: 22(fvec4) ImageSampleImplicitLod 99 100 + 102: 22(fvec4) Load 26(color) + 103: 22(fvec4) FAdd 102 101 + Store 26(color) 103 + 104: 96 Load 98(texSampler3D) + 105: 16(fvec3) Load 18(coords3D) + 106: 6(float) Load 10(bias) + 107: 22(fvec4) ImageSampleImplicitLod 104 105 106 + 108: 22(fvec4) Load 26(color) + 109: 22(fvec4) FAdd 108 107 + Store 26(color) 109 + 110: 96 Load 98(texSampler3D) + 111: 22(fvec4) Load 24(coords4D) + 112: 22(fvec4) ImageSampleProjImplicitLod 110 111 + 113: 22(fvec4) Load 26(color) + 114: 22(fvec4) FAdd 113 112 + Store 26(color) 114 + 115: 96 Load 98(texSampler3D) + 116: 22(fvec4) Load 24(coords4D) + 117: 6(float) Load 10(bias) + 118: 22(fvec4) ImageSampleProjImplicitLod 115 116 117 + 119: 22(fvec4) Load 26(color) + 120: 22(fvec4) FAdd 119 118 + Store 26(color) 120 + 125: 122 Load 124(texSamplerCube) + 126: 16(fvec3) Load 18(coords3D) + 127: 22(fvec4) ImageSampleImplicitLod 125 126 + 128: 22(fvec4) Load 26(color) + 129: 22(fvec4) FAdd 128 127 + Store 26(color) 129 + 130: 122 Load 124(texSamplerCube) + 131: 16(fvec3) Load 18(coords3D) + 132: 6(float) Load 10(bias) + 133: 22(fvec4) ImageSampleImplicitLod 130 131 132 + 134: 22(fvec4) Load 26(color) + 135: 22(fvec4) FAdd 134 133 + Store 26(color) 135 + 140: 137 Load 139(shadowSampler1D) + 141: 16(fvec3) Load 18(coords3D) + 142: 6(float) CompositeExtract 141 2 + 143: 6(float) ImageSampleDrefImplicitLod 140 141 142 + 144: 22(fvec4) CompositeConstruct 143 143 143 143 + 145: 22(fvec4) Load 26(color) + 146: 22(fvec4) FAdd 145 144 + Store 26(color) 146 + 147: 137 Load 139(shadowSampler1D) + 148: 16(fvec3) Load 18(coords3D) + 149: 6(float) Load 10(bias) + 150: 6(float) CompositeExtract 148 2 + 151: 6(float) ImageSampleDrefImplicitLod 147 148 150 149 + 152: 22(fvec4) CompositeConstruct 151 151 151 151 + 153: 22(fvec4) Load 26(color) + 154: 22(fvec4) FAdd 153 152 + Store 26(color) 154 + 159: 156 Load 158(shadowSampler2D) + 160: 16(fvec3) Load 18(coords3D) + 161: 6(float) CompositeExtract 160 2 + 162: 6(float) ImageSampleDrefImplicitLod 159 160 161 + 163: 22(fvec4) CompositeConstruct 162 162 162 162 + 164: 22(fvec4) Load 26(color) + 165: 22(fvec4) FAdd 164 163 + Store 26(color) 165 + 166: 156 Load 158(shadowSampler2D) + 167: 16(fvec3) Load 18(coords3D) + 168: 6(float) Load 10(bias) + 169: 6(float) CompositeExtract 167 2 + 170: 6(float) ImageSampleDrefImplicitLod 166 167 169 168 + 171: 22(fvec4) CompositeConstruct 170 170 170 170 + 172: 22(fvec4) Load 26(color) + 173: 22(fvec4) FAdd 172 171 + Store 26(color) 173 + 174: 137 Load 139(shadowSampler1D) + 175: 22(fvec4) Load 24(coords4D) + 176: 6(float) CompositeExtract 175 3 + 177: 6(float) ImageSampleProjDrefImplicitLod 174 175 176 + 178: 22(fvec4) CompositeConstruct 177 177 177 177 + 179: 22(fvec4) Load 26(color) + 180: 22(fvec4) FAdd 179 178 + Store 26(color) 180 + 181: 137 Load 139(shadowSampler1D) + 182: 22(fvec4) Load 24(coords4D) + 183: 6(float) Load 10(bias) + 184: 6(float) CompositeExtract 182 3 + 185: 6(float) ImageSampleProjDrefImplicitLod 181 182 184 183 + 186: 22(fvec4) CompositeConstruct 185 185 185 185 + 187: 22(fvec4) Load 26(color) + 188: 22(fvec4) FAdd 187 186 + Store 26(color) 188 + 189: 156 Load 158(shadowSampler2D) + 190: 22(fvec4) Load 24(coords4D) + 191: 6(float) CompositeExtract 190 3 + 192: 6(float) ImageSampleProjDrefImplicitLod 189 190 191 + 193: 22(fvec4) CompositeConstruct 192 192 192 192 + 194: 22(fvec4) Load 26(color) + 195: 22(fvec4) FAdd 194 193 + Store 26(color) 195 + 196: 156 Load 158(shadowSampler2D) + 197: 22(fvec4) Load 24(coords4D) + 198: 6(float) Load 10(bias) + 199: 6(float) CompositeExtract 197 3 + 200: 6(float) ImageSampleProjDrefImplicitLod 196 197 199 198 + 201: 22(fvec4) CompositeConstruct 200 200 200 200 + 202: 22(fvec4) Load 26(color) + 203: 22(fvec4) FAdd 202 201 + Store 26(color) 203 + Store 207(iCoords2D) 210 + Store 212(iLod) 213 + 214: 70 Load 72(texSampler2D) + 215: 205(ivec2) Load 207(iCoords2D) + 216: 204(int) Load 212(iLod) + 217: 22(fvec4) ImageFetch 214 215 + 218: 22(fvec4) Load 26(color) + 219: 22(fvec4) FAdd 218 217 + Store 26(color) 219 + 222: 45(fvec2) Load 47(coords2D) + 223: 45(fvec2) DPdx 222 + Store 221(gradX) 223 + 225: 45(fvec2) Load 47(coords2D) + 226: 45(fvec2) DPdy 225 + Store 224(gradY) 226 + 227: 70 Load 72(texSampler2D) + 228: 45(fvec2) Load 47(coords2D) + 229: 45(fvec2) Load 221(gradX) + 230: 45(fvec2) Load 224(gradY) + 231: 22(fvec4) ImageSampleExplicitLod 227 228 229 230 + 232: 22(fvec4) Load 26(color) + 233: 22(fvec4) FAdd 232 231 + Store 26(color) 233 + 234: 70 Load 72(texSampler2D) + 235: 45(fvec2) Load 47(coords2D) + 236: 6(float) Load 14(proj) + 237: 6(float) CompositeExtract 235 0 + 238: 6(float) CompositeExtract 235 1 + 239: 16(fvec3) CompositeConstruct 237 238 236 + 240: 45(fvec2) Load 221(gradX) + 241: 45(fvec2) Load 224(gradY) + 242: 22(fvec4) ImageSampleProjExplicitLod 234 239 240 241 + 243: 22(fvec4) Load 26(color) + 244: 22(fvec4) FAdd 243 242 + Store 26(color) 244 + 245: 70 Load 72(texSampler2D) + 246: 45(fvec2) Load 47(coords2D) + 247: 45(fvec2) Load 221(gradX) + 248: 45(fvec2) Load 224(gradY) + 252: 22(fvec4) ImageSampleExplicitLod 245 246 247 248 251 + 253: 22(fvec4) Load 26(color) + 254: 22(fvec4) FAdd 253 252 + Store 26(color) 254 + 255: 70 Load 72(texSampler2D) + 256: 16(fvec3) Load 18(coords3D) + 257: 45(fvec2) Load 221(gradX) + 258: 45(fvec2) Load 224(gradY) + 259: 22(fvec4) ImageSampleProjExplicitLod 255 256 257 258 251 + 260: 22(fvec4) Load 26(color) + 261: 22(fvec4) FAdd 260 259 + Store 26(color) 261 + 262: 156 Load 158(shadowSampler2D) + 263: 45(fvec2) Load 47(coords2D) + 264: 6(float) Load 12(lod) + 265: 6(float) CompositeExtract 263 0 + 266: 6(float) CompositeExtract 263 1 + 267: 16(fvec3) CompositeConstruct 265 266 264 + 268: 45(fvec2) Load 221(gradX) + 269: 45(fvec2) Load 224(gradY) + 270: 6(float) CompositeExtract 267 2 + 271: 6(float) ImageSampleDrefExplicitLod 262 267 270 268 269 + 272: 22(fvec4) Load 26(color) + 273: 22(fvec4) CompositeConstruct 271 271 271 271 + 274: 22(fvec4) FAdd 272 273 + Store 26(color) 274 + 277: 22(fvec4) Load 26(color) + 280: 22(fvec4) Load 279(u) + 283: 6(float) Load 282(blend) + 284: 6(float) Load 8(blendscale) + 285: 6(float) FMul 283 284 + 286: 22(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 277 280 285 + Store 276(gl_FragColor) 286 Return FunctionEnd diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out index 0cc4d529..ebaec802 100755 --- a/Test/baseResults/spv.texture.vert.out +++ b/Test/baseResults/spv.texture.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 142 +// Id's are bound by 145 Source GLSL 130 Capability Shader @@ -13,182 +13,184 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "lod" - Name 11 "coords1D" - Name 15 "coords3D" - Name 21 "coords4D" - Name 24 "color" - Name 30 "texSampler1D" - Name 40 "coords2D" - Name 55 "texSampler2D" - Name 77 "texSampler3D" - Name 93 "texSamplerCube" - Name 103 "shadowSampler1D" + Name 8 "lod" + Name 10 "coords1D" + Name 14 "coords3D" + Name 20 "coords4D" + Name 23 "color" + Name 29 "texSampler1D" + Name 39 "coords2D" + Name 54 "texSampler2D" + Name 76 "texSampler3D" + Name 92 "texSamplerCube" + Name 102 "shadowSampler1D" Name 114 "shadowSampler2D" - Name 137 "gl_Position" - Name 141 "gl_VertexID" - Decorate 137(gl_Position) BuiltIn Position - Decorate 141(gl_VertexID) BuiltIn VertexId - Decorate 141(gl_VertexID) NoStaticUse + Name 140 "gl_Position" + Name 144 "gl_VertexID" + Decorate 140(gl_Position) BuiltIn Position + Decorate 144(gl_VertexID) BuiltIn VertexId + Decorate 144(gl_VertexID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypePointer Function 7(float) - 10: 7(float) Constant 1077936128 - 12: 7(float) Constant 1071971828 - 13: TypeVector 7(float) 3 - 14: TypePointer Function 13(fvec3) - 16: 7(float) Constant 1076753334 - 17: 7(float) Constant 1079836148 - 18: 13(fvec3) ConstantComposite 12 16 17 - 19: TypeVector 7(float) 4 - 20: TypePointer Function 19(fvec4) - 22: 7(float) Constant 1073741824 - 23: 19(fvec4) ConstantComposite 12 16 17 22 - 25: 7(float) Constant 0 - 26: 19(fvec4) ConstantComposite 25 25 25 25 - 27: TypeImage 7(float) 1D sampled format:Unknown - 28: TypeSampledImage 27 - 29: TypePointer UniformConstant 28 -30(texSampler1D): 29(ptr) Variable UniformConstant - 38: TypeVector 7(float) 2 - 39: TypePointer Input 38(fvec2) - 40(coords2D): 39(ptr) Variable Input - 52: TypeImage 7(float) 2D sampled format:Unknown - 53: TypeSampledImage 52 - 54: TypePointer UniformConstant 53 -55(texSampler2D): 54(ptr) Variable UniformConstant - 74: TypeImage 7(float) 3D sampled format:Unknown - 75: TypeSampledImage 74 - 76: TypePointer UniformConstant 75 -77(texSampler3D): 76(ptr) Variable UniformConstant - 90: TypeImage 7(float) Cube sampled format:Unknown - 91: TypeSampledImage 90 - 92: TypePointer UniformConstant 91 -93(texSamplerCube): 92(ptr) Variable UniformConstant - 100: TypeImage 7(float) 1D depth sampled format:Unknown - 101: TypeSampledImage 100 - 102: TypePointer UniformConstant 101 -103(shadowSampler1D): 102(ptr) Variable UniformConstant - 111: TypeImage 7(float) 2D depth sampled format:Unknown + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: 6(float) Constant 1077936128 + 11: 6(float) Constant 1071971828 + 12: TypeVector 6(float) 3 + 13: TypePointer Function 12(fvec3) + 15: 6(float) Constant 1076753334 + 16: 6(float) Constant 1079836148 + 17: 12(fvec3) ConstantComposite 11 15 16 + 18: TypeVector 6(float) 4 + 19: TypePointer Function 18(fvec4) + 21: 6(float) Constant 1073741824 + 22: 18(fvec4) ConstantComposite 11 15 16 21 + 24: 6(float) Constant 0 + 25: 18(fvec4) ConstantComposite 24 24 24 24 + 26: TypeImage 6(float) 1D sampled format:Unknown + 27: TypeSampledImage 26 + 28: TypePointer UniformConstant 27 +29(texSampler1D): 28(ptr) Variable UniformConstant + 37: TypeVector 6(float) 2 + 38: TypePointer Input 37(fvec2) + 39(coords2D): 38(ptr) Variable Input + 51: TypeImage 6(float) 2D sampled format:Unknown + 52: TypeSampledImage 51 + 53: TypePointer UniformConstant 52 +54(texSampler2D): 53(ptr) Variable UniformConstant + 73: TypeImage 6(float) 3D sampled format:Unknown + 74: TypeSampledImage 73 + 75: TypePointer UniformConstant 74 +76(texSampler3D): 75(ptr) Variable UniformConstant + 89: TypeImage 6(float) Cube sampled format:Unknown + 90: TypeSampledImage 89 + 91: TypePointer UniformConstant 90 +92(texSamplerCube): 91(ptr) Variable UniformConstant + 99: TypeImage 6(float) 1D depth sampled format:Unknown + 100: TypeSampledImage 99 + 101: TypePointer UniformConstant 100 +102(shadowSampler1D): 101(ptr) Variable UniformConstant + 111: TypeImage 6(float) 2D depth sampled format:Unknown 112: TypeSampledImage 111 113: TypePointer UniformConstant 112 114(shadowSampler2D): 113(ptr) Variable UniformConstant - 136: TypePointer Output 19(fvec4) -137(gl_Position): 136(ptr) Variable Output - 139: TypeInt 32 1 - 140: TypePointer Input 139(int) -141(gl_VertexID): 140(ptr) Variable Input + 139: TypePointer Output 18(fvec4) +140(gl_Position): 139(ptr) Variable Output + 142: TypeInt 32 1 + 143: TypePointer Input 142(int) +144(gl_VertexID): 143(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(lod): 8(ptr) Variable Function - 11(coords1D): 8(ptr) Variable Function - 15(coords3D): 14(ptr) Variable Function - 21(coords4D): 20(ptr) Variable Function - 24(color): 20(ptr) Variable Function - Store 9(lod) 10 - Store 11(coords1D) 12 - Store 15(coords3D) 18 - Store 21(coords4D) 23 - Store 24(color) 26 - 31: 28 Load 30(texSampler1D) - 32: 7(float) Load 11(coords1D) - 33: 7(float) Load 9(lod) - 34: 19(fvec4) ImageSampleExplicitLod 31 32 33 - 35: 19(fvec4) Load 24(color) - 36: 19(fvec4) FAdd 35 34 - Store 24(color) 36 - 37: 28 Load 30(texSampler1D) - 41: 38(fvec2) Load 40(coords2D) - 42: 7(float) Load 9(lod) - 43: 19(fvec4) ImageSampleProjExplicitLod 37 41 42 - 44: 19(fvec4) Load 24(color) - 45: 19(fvec4) FAdd 44 43 - Store 24(color) 45 - 46: 28 Load 30(texSampler1D) - 47: 19(fvec4) Load 21(coords4D) - 48: 7(float) Load 9(lod) - 49: 19(fvec4) ImageSampleProjExplicitLod 46 47 48 - 50: 19(fvec4) Load 24(color) - 51: 19(fvec4) FAdd 50 49 - Store 24(color) 51 - 56: 53 Load 55(texSampler2D) - 57: 38(fvec2) Load 40(coords2D) - 58: 7(float) Load 9(lod) - 59: 19(fvec4) ImageSampleExplicitLod 56 57 58 - 60: 19(fvec4) Load 24(color) - 61: 19(fvec4) FAdd 60 59 - Store 24(color) 61 - 62: 53 Load 55(texSampler2D) - 63: 13(fvec3) Load 15(coords3D) - 64: 7(float) Load 9(lod) - 65: 19(fvec4) ImageSampleProjExplicitLod 62 63 64 - 66: 19(fvec4) Load 24(color) - 67: 19(fvec4) FAdd 66 65 - Store 24(color) 67 - 68: 53 Load 55(texSampler2D) - 69: 19(fvec4) Load 21(coords4D) - 70: 7(float) Load 9(lod) - 71: 19(fvec4) ImageSampleProjExplicitLod 68 69 70 - 72: 19(fvec4) Load 24(color) - 73: 19(fvec4) FAdd 72 71 - Store 24(color) 73 - 78: 75 Load 77(texSampler3D) - 79: 13(fvec3) Load 15(coords3D) - 80: 7(float) Load 9(lod) - 81: 19(fvec4) ImageSampleExplicitLod 78 79 80 - 82: 19(fvec4) Load 24(color) - 83: 19(fvec4) FAdd 82 81 - Store 24(color) 83 - 84: 75 Load 77(texSampler3D) - 85: 19(fvec4) Load 21(coords4D) - 86: 7(float) Load 9(lod) - 87: 19(fvec4) ImageSampleProjExplicitLod 84 85 86 - 88: 19(fvec4) Load 24(color) - 89: 19(fvec4) FAdd 88 87 - Store 24(color) 89 - 94: 91 Load 93(texSamplerCube) - 95: 13(fvec3) Load 15(coords3D) - 96: 7(float) Load 9(lod) - 97: 19(fvec4) ImageSampleExplicitLod 94 95 96 - 98: 19(fvec4) Load 24(color) - 99: 19(fvec4) FAdd 98 97 - Store 24(color) 99 - 104: 101 Load 103(shadowSampler1D) - 105: 13(fvec3) Load 15(coords3D) - 106: 7(float) Load 9(lod) - 107: 7(float) CompositeExtract 105 2 - 108: 19(fvec4) ImageSampleDrefExplicitLod 104 105 107 106 - 109: 19(fvec4) Load 24(color) - 110: 19(fvec4) FAdd 109 108 - Store 24(color) 110 + 8(lod): 7(ptr) Variable Function + 10(coords1D): 7(ptr) Variable Function + 14(coords3D): 13(ptr) Variable Function + 20(coords4D): 19(ptr) Variable Function + 23(color): 19(ptr) Variable Function + Store 8(lod) 9 + Store 10(coords1D) 11 + Store 14(coords3D) 17 + Store 20(coords4D) 22 + Store 23(color) 25 + 30: 27 Load 29(texSampler1D) + 31: 6(float) Load 10(coords1D) + 32: 6(float) Load 8(lod) + 33: 18(fvec4) ImageSampleExplicitLod 30 31 32 + 34: 18(fvec4) Load 23(color) + 35: 18(fvec4) FAdd 34 33 + Store 23(color) 35 + 36: 27 Load 29(texSampler1D) + 40: 37(fvec2) Load 39(coords2D) + 41: 6(float) Load 8(lod) + 42: 18(fvec4) ImageSampleProjExplicitLod 36 40 41 + 43: 18(fvec4) Load 23(color) + 44: 18(fvec4) FAdd 43 42 + Store 23(color) 44 + 45: 27 Load 29(texSampler1D) + 46: 18(fvec4) Load 20(coords4D) + 47: 6(float) Load 8(lod) + 48: 18(fvec4) ImageSampleProjExplicitLod 45 46 47 + 49: 18(fvec4) Load 23(color) + 50: 18(fvec4) FAdd 49 48 + Store 23(color) 50 + 55: 52 Load 54(texSampler2D) + 56: 37(fvec2) Load 39(coords2D) + 57: 6(float) Load 8(lod) + 58: 18(fvec4) ImageSampleExplicitLod 55 56 57 + 59: 18(fvec4) Load 23(color) + 60: 18(fvec4) FAdd 59 58 + Store 23(color) 60 + 61: 52 Load 54(texSampler2D) + 62: 12(fvec3) Load 14(coords3D) + 63: 6(float) Load 8(lod) + 64: 18(fvec4) ImageSampleProjExplicitLod 61 62 63 + 65: 18(fvec4) Load 23(color) + 66: 18(fvec4) FAdd 65 64 + Store 23(color) 66 + 67: 52 Load 54(texSampler2D) + 68: 18(fvec4) Load 20(coords4D) + 69: 6(float) Load 8(lod) + 70: 18(fvec4) ImageSampleProjExplicitLod 67 68 69 + 71: 18(fvec4) Load 23(color) + 72: 18(fvec4) FAdd 71 70 + Store 23(color) 72 + 77: 74 Load 76(texSampler3D) + 78: 12(fvec3) Load 14(coords3D) + 79: 6(float) Load 8(lod) + 80: 18(fvec4) ImageSampleExplicitLod 77 78 79 + 81: 18(fvec4) Load 23(color) + 82: 18(fvec4) FAdd 81 80 + Store 23(color) 82 + 83: 74 Load 76(texSampler3D) + 84: 18(fvec4) Load 20(coords4D) + 85: 6(float) Load 8(lod) + 86: 18(fvec4) ImageSampleProjExplicitLod 83 84 85 + 87: 18(fvec4) Load 23(color) + 88: 18(fvec4) FAdd 87 86 + Store 23(color) 88 + 93: 90 Load 92(texSamplerCube) + 94: 12(fvec3) Load 14(coords3D) + 95: 6(float) Load 8(lod) + 96: 18(fvec4) ImageSampleExplicitLod 93 94 95 + 97: 18(fvec4) Load 23(color) + 98: 18(fvec4) FAdd 97 96 + Store 23(color) 98 + 103: 100 Load 102(shadowSampler1D) + 104: 12(fvec3) Load 14(coords3D) + 105: 6(float) Load 8(lod) + 106: 6(float) CompositeExtract 104 2 + 107: 6(float) ImageSampleDrefExplicitLod 103 104 106 105 + 108: 18(fvec4) CompositeConstruct 107 107 107 107 + 109: 18(fvec4) Load 23(color) + 110: 18(fvec4) FAdd 109 108 + Store 23(color) 110 115: 112 Load 114(shadowSampler2D) - 116: 13(fvec3) Load 15(coords3D) - 117: 7(float) Load 9(lod) - 118: 7(float) CompositeExtract 116 2 - 119: 19(fvec4) ImageSampleDrefExplicitLod 115 116 118 117 - 120: 19(fvec4) Load 24(color) - 121: 19(fvec4) FAdd 120 119 - Store 24(color) 121 - 122: 101 Load 103(shadowSampler1D) - 123: 19(fvec4) Load 21(coords4D) - 124: 7(float) Load 9(lod) - 125: 7(float) CompositeExtract 123 3 - 126: 19(fvec4) ImageSampleProjDrefExplicitLod 122 123 125 124 - 127: 19(fvec4) Load 24(color) - 128: 19(fvec4) FAdd 127 126 - Store 24(color) 128 - 129: 112 Load 114(shadowSampler2D) - 130: 19(fvec4) Load 21(coords4D) - 131: 7(float) Load 9(lod) - 132: 7(float) CompositeExtract 130 3 - 133: 19(fvec4) ImageSampleProjDrefExplicitLod 129 130 132 131 - 134: 19(fvec4) Load 24(color) - 135: 19(fvec4) FAdd 134 133 - Store 24(color) 135 - 138: 19(fvec4) Load 24(color) - Store 137(gl_Position) 138 - Branch 6 - 6: Label + 116: 12(fvec3) Load 14(coords3D) + 117: 6(float) Load 8(lod) + 118: 6(float) CompositeExtract 116 2 + 119: 6(float) ImageSampleDrefExplicitLod 115 116 118 117 + 120: 18(fvec4) CompositeConstruct 119 119 119 119 + 121: 18(fvec4) Load 23(color) + 122: 18(fvec4) FAdd 121 120 + Store 23(color) 122 + 123: 100 Load 102(shadowSampler1D) + 124: 18(fvec4) Load 20(coords4D) + 125: 6(float) Load 8(lod) + 126: 6(float) CompositeExtract 124 3 + 127: 6(float) ImageSampleProjDrefExplicitLod 123 124 126 125 + 128: 18(fvec4) CompositeConstruct 127 127 127 127 + 129: 18(fvec4) Load 23(color) + 130: 18(fvec4) FAdd 129 128 + Store 23(color) 130 + 131: 112 Load 114(shadowSampler2D) + 132: 18(fvec4) Load 20(coords4D) + 133: 6(float) Load 8(lod) + 134: 6(float) CompositeExtract 132 3 + 135: 6(float) ImageSampleProjDrefExplicitLod 131 132 134 133 + 136: 18(fvec4) CompositeConstruct 135 135 135 135 + 137: 18(fvec4) Load 23(color) + 138: 18(fvec4) FAdd 137 136 + Store 23(color) 138 + 141: 18(fvec4) Load 23(color) + Store 140(gl_Position) 141 Return FunctionEnd diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out index 8b97d739..27e4d6fe 100755 --- a/Test/baseResults/spv.types.frag.out +++ b/Test/baseResults/spv.types.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 264 +// Id's are bound by 263 Source GLSL 130 Capability Shader @@ -14,333 +14,331 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "b" - Name 11 "u_b" - Name 13 "i_b" - Name 18 "b2" - Name 20 "u_b2" - Name 23 "i_b2" - Name 36 "b3" - Name 38 "u_b3" - Name 41 "i_b3" - Name 60 "b4" - Name 62 "u_b4" - Name 65 "i_b4" - Name 90 "i" - Name 92 "u_i" - Name 95 "i_i" - Name 100 "i2" - Name 102 "u_i2" - Name 105 "i_i2" - Name 110 "i3" - Name 112 "u_i3" - Name 115 "i_i3" - Name 120 "i4" - Name 122 "u_i4" - Name 125 "i_i4" - Name 130 "f" - Name 132 "u_f" - Name 135 "i_f" - Name 140 "f2" - Name 142 "u_f2" - Name 145 "i_f2" - Name 150 "f3" - Name 152 "u_f3" - Name 155 "i_f3" - Name 160 "f4" - Name 162 "u_f4" - Name 165 "i_f4" - Name 169 "gl_FragColor" - Decorate 95(i_i) Flat - Decorate 105(i_i2) Flat - Decorate 115(i_i3) Flat - Decorate 125(i_i4) Flat - Decorate 135(i_f) Smooth - Decorate 145(i_f2) Smooth - Decorate 155(i_f3) Smooth - Decorate 165(i_f4) Smooth - Decorate 169(gl_FragColor) BuiltIn FragColor + Name 8 "b" + Name 10 "u_b" + Name 12 "i_b" + Name 17 "b2" + Name 19 "u_b2" + Name 22 "i_b2" + Name 35 "b3" + Name 37 "u_b3" + Name 40 "i_b3" + Name 59 "b4" + Name 61 "u_b4" + Name 64 "i_b4" + Name 89 "i" + Name 91 "u_i" + Name 94 "i_i" + Name 99 "i2" + Name 101 "u_i2" + Name 104 "i_i2" + Name 109 "i3" + Name 111 "u_i3" + Name 114 "i_i3" + Name 119 "i4" + Name 121 "u_i4" + Name 124 "i_i4" + Name 129 "f" + Name 131 "u_f" + Name 134 "i_f" + Name 139 "f2" + Name 141 "u_f2" + Name 144 "i_f2" + Name 149 "f3" + Name 151 "u_f3" + Name 154 "i_f3" + Name 159 "f4" + Name 161 "u_f4" + Name 164 "i_f4" + Name 168 "gl_FragColor" + Decorate 94(i_i) Flat + Decorate 104(i_i2) Flat + Decorate 114(i_i3) Flat + Decorate 124(i_i4) Flat + Decorate 134(i_f) Smooth + Decorate 144(i_f2) Smooth + Decorate 154(i_f3) Smooth + Decorate 164(i_f4) Smooth + Decorate 168(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeBool - 8: TypePointer Function 7(bool) - 10: TypePointer UniformConstant 7(bool) - 11(u_b): 10(ptr) Variable UniformConstant - 13(i_b): 10(ptr) Variable UniformConstant - 16: TypeVector 7(bool) 2 - 17: TypePointer Function 16(bvec2) - 19: TypePointer UniformConstant 16(bvec2) - 20(u_b2): 19(ptr) Variable UniformConstant - 23(i_b2): 19(ptr) Variable UniformConstant - 34: TypeVector 7(bool) 3 - 35: TypePointer Function 34(bvec3) - 37: TypePointer UniformConstant 34(bvec3) - 38(u_b3): 37(ptr) Variable UniformConstant - 41(i_b3): 37(ptr) Variable UniformConstant - 58: TypeVector 7(bool) 4 - 59: TypePointer Function 58(bvec4) - 61: TypePointer UniformConstant 58(bvec4) - 62(u_b4): 61(ptr) Variable UniformConstant - 65(i_b4): 61(ptr) Variable UniformConstant - 88: TypeInt 32 1 - 89: TypePointer Function 88(int) - 91: TypePointer UniformConstant 88(int) - 92(u_i): 91(ptr) Variable UniformConstant - 94: TypePointer Input 88(int) - 95(i_i): 94(ptr) Variable Input - 98: TypeVector 88(int) 2 - 99: TypePointer Function 98(ivec2) - 101: TypePointer UniformConstant 98(ivec2) - 102(u_i2): 101(ptr) Variable UniformConstant - 104: TypePointer Input 98(ivec2) - 105(i_i2): 104(ptr) Variable Input - 108: TypeVector 88(int) 3 - 109: TypePointer Function 108(ivec3) - 111: TypePointer UniformConstant 108(ivec3) - 112(u_i3): 111(ptr) Variable UniformConstant - 114: TypePointer Input 108(ivec3) - 115(i_i3): 114(ptr) Variable Input - 118: TypeVector 88(int) 4 - 119: TypePointer Function 118(ivec4) - 121: TypePointer UniformConstant 118(ivec4) - 122(u_i4): 121(ptr) Variable UniformConstant - 124: TypePointer Input 118(ivec4) - 125(i_i4): 124(ptr) Variable Input - 128: TypeFloat 32 - 129: TypePointer Function 128(float) - 131: TypePointer UniformConstant 128(float) - 132(u_f): 131(ptr) Variable UniformConstant - 134: TypePointer Input 128(float) - 135(i_f): 134(ptr) Variable Input - 138: TypeVector 128(float) 2 - 139: TypePointer Function 138(fvec2) - 141: TypePointer UniformConstant 138(fvec2) - 142(u_f2): 141(ptr) Variable UniformConstant - 144: TypePointer Input 138(fvec2) - 145(i_f2): 144(ptr) Variable Input - 148: TypeVector 128(float) 3 - 149: TypePointer Function 148(fvec3) - 151: TypePointer UniformConstant 148(fvec3) - 152(u_f3): 151(ptr) Variable UniformConstant - 154: TypePointer Input 148(fvec3) - 155(i_f3): 154(ptr) Variable Input - 158: TypeVector 128(float) 4 - 159: TypePointer Function 158(fvec4) - 161: TypePointer UniformConstant 158(fvec4) - 162(u_f4): 161(ptr) Variable UniformConstant - 164: TypePointer Input 158(fvec4) - 165(i_f4): 164(ptr) Variable Input - 168: TypePointer Output 158(fvec4) -169(gl_FragColor): 168(ptr) Variable Output - 261: 128(float) Constant 1065353216 - 262: 158(fvec4) ConstantComposite 261 261 261 261 + 6: TypeBool + 7: TypePointer Function 6(bool) + 9: TypePointer UniformConstant 6(bool) + 10(u_b): 9(ptr) Variable UniformConstant + 12(i_b): 9(ptr) Variable UniformConstant + 15: TypeVector 6(bool) 2 + 16: TypePointer Function 15(bvec2) + 18: TypePointer UniformConstant 15(bvec2) + 19(u_b2): 18(ptr) Variable UniformConstant + 22(i_b2): 18(ptr) Variable UniformConstant + 33: TypeVector 6(bool) 3 + 34: TypePointer Function 33(bvec3) + 36: TypePointer UniformConstant 33(bvec3) + 37(u_b3): 36(ptr) Variable UniformConstant + 40(i_b3): 36(ptr) Variable UniformConstant + 57: TypeVector 6(bool) 4 + 58: TypePointer Function 57(bvec4) + 60: TypePointer UniformConstant 57(bvec4) + 61(u_b4): 60(ptr) Variable UniformConstant + 64(i_b4): 60(ptr) Variable UniformConstant + 87: TypeInt 32 1 + 88: TypePointer Function 87(int) + 90: TypePointer UniformConstant 87(int) + 91(u_i): 90(ptr) Variable UniformConstant + 93: TypePointer Input 87(int) + 94(i_i): 93(ptr) Variable Input + 97: TypeVector 87(int) 2 + 98: TypePointer Function 97(ivec2) + 100: TypePointer UniformConstant 97(ivec2) + 101(u_i2): 100(ptr) Variable UniformConstant + 103: TypePointer Input 97(ivec2) + 104(i_i2): 103(ptr) Variable Input + 107: TypeVector 87(int) 3 + 108: TypePointer Function 107(ivec3) + 110: TypePointer UniformConstant 107(ivec3) + 111(u_i3): 110(ptr) Variable UniformConstant + 113: TypePointer Input 107(ivec3) + 114(i_i3): 113(ptr) Variable Input + 117: TypeVector 87(int) 4 + 118: TypePointer Function 117(ivec4) + 120: TypePointer UniformConstant 117(ivec4) + 121(u_i4): 120(ptr) Variable UniformConstant + 123: TypePointer Input 117(ivec4) + 124(i_i4): 123(ptr) Variable Input + 127: TypeFloat 32 + 128: TypePointer Function 127(float) + 130: TypePointer UniformConstant 127(float) + 131(u_f): 130(ptr) Variable UniformConstant + 133: TypePointer Input 127(float) + 134(i_f): 133(ptr) Variable Input + 137: TypeVector 127(float) 2 + 138: TypePointer Function 137(fvec2) + 140: TypePointer UniformConstant 137(fvec2) + 141(u_f2): 140(ptr) Variable UniformConstant + 143: TypePointer Input 137(fvec2) + 144(i_f2): 143(ptr) Variable Input + 147: TypeVector 127(float) 3 + 148: TypePointer Function 147(fvec3) + 150: TypePointer UniformConstant 147(fvec3) + 151(u_f3): 150(ptr) Variable UniformConstant + 153: TypePointer Input 147(fvec3) + 154(i_f3): 153(ptr) Variable Input + 157: TypeVector 127(float) 4 + 158: TypePointer Function 157(fvec4) + 160: TypePointer UniformConstant 157(fvec4) + 161(u_f4): 160(ptr) Variable UniformConstant + 163: TypePointer Input 157(fvec4) + 164(i_f4): 163(ptr) Variable Input + 167: TypePointer Output 157(fvec4) +168(gl_FragColor): 167(ptr) Variable Output + 260: 127(float) Constant 1065353216 + 261: 157(fvec4) ConstantComposite 260 260 260 260 4(main): 2 Function None 3 5: Label - 9(b): 8(ptr) Variable Function - 18(b2): 17(ptr) Variable Function - 36(b3): 35(ptr) Variable Function - 60(b4): 59(ptr) Variable Function - 90(i): 89(ptr) Variable Function - 100(i2): 99(ptr) Variable Function - 110(i3): 109(ptr) Variable Function - 120(i4): 119(ptr) Variable Function - 130(f): 129(ptr) Variable Function - 140(f2): 139(ptr) Variable Function - 150(f3): 149(ptr) Variable Function - 160(f4): 159(ptr) Variable Function - 170: 159(ptr) Variable Function - 12: 7(bool) Load 11(u_b) - 14: 7(bool) Load 13(i_b) - 15: 7(bool) LogicalAnd 12 14 - Store 9(b) 15 - 21: 16(bvec2) Load 20(u_b2) - 22: 7(bool) CompositeExtract 21 0 - 24: 16(bvec2) Load 23(i_b2) - 25: 7(bool) CompositeExtract 24 0 - 26: 7(bool) LogicalAnd 22 25 - 27: 16(bvec2) Load 20(u_b2) - 28: 7(bool) CompositeExtract 27 1 - 29: 7(bool) LogicalAnd 26 28 - 30: 16(bvec2) Load 23(i_b2) - 31: 7(bool) CompositeExtract 30 1 - 32: 7(bool) LogicalAnd 29 31 - 33: 16(bvec2) CompositeConstruct 32 32 - Store 18(b2) 33 - 39: 34(bvec3) Load 38(u_b3) - 40: 7(bool) CompositeExtract 39 0 - 42: 34(bvec3) Load 41(i_b3) - 43: 7(bool) CompositeExtract 42 0 - 44: 7(bool) LogicalAnd 40 43 - 45: 34(bvec3) Load 38(u_b3) - 46: 7(bool) CompositeExtract 45 1 - 47: 7(bool) LogicalAnd 44 46 - 48: 34(bvec3) Load 41(i_b3) - 49: 7(bool) CompositeExtract 48 1 - 50: 7(bool) LogicalAnd 47 49 - 51: 34(bvec3) Load 38(u_b3) - 52: 7(bool) CompositeExtract 51 2 - 53: 7(bool) LogicalAnd 50 52 - 54: 34(bvec3) Load 41(i_b3) - 55: 7(bool) CompositeExtract 54 2 - 56: 7(bool) LogicalAnd 53 55 - 57: 34(bvec3) CompositeConstruct 56 56 56 - Store 36(b3) 57 - 63: 58(bvec4) Load 62(u_b4) - 64: 7(bool) CompositeExtract 63 0 - 66: 58(bvec4) Load 65(i_b4) - 67: 7(bool) CompositeExtract 66 0 - 68: 7(bool) LogicalAnd 64 67 - 69: 58(bvec4) Load 62(u_b4) - 70: 7(bool) CompositeExtract 69 1 - 71: 7(bool) LogicalAnd 68 70 - 72: 58(bvec4) Load 65(i_b4) - 73: 7(bool) CompositeExtract 72 1 - 74: 7(bool) LogicalAnd 71 73 - 75: 58(bvec4) Load 62(u_b4) - 76: 7(bool) CompositeExtract 75 2 - 77: 7(bool) LogicalAnd 74 76 - 78: 58(bvec4) Load 65(i_b4) - 79: 7(bool) CompositeExtract 78 2 - 80: 7(bool) LogicalAnd 77 79 - 81: 58(bvec4) Load 62(u_b4) - 82: 7(bool) CompositeExtract 81 3 - 83: 7(bool) LogicalAnd 80 82 - 84: 58(bvec4) Load 65(i_b4) - 85: 7(bool) CompositeExtract 84 3 - 86: 7(bool) LogicalAnd 83 85 - 87: 58(bvec4) CompositeConstruct 86 86 86 86 - Store 60(b4) 87 - 93: 88(int) Load 92(u_i) - 96: 88(int) Load 95(i_i) - 97: 88(int) IAdd 93 96 - Store 90(i) 97 - 103: 98(ivec2) Load 102(u_i2) - 106: 98(ivec2) Load 105(i_i2) - 107: 98(ivec2) IAdd 103 106 - Store 100(i2) 107 - 113: 108(ivec3) Load 112(u_i3) - 116: 108(ivec3) Load 115(i_i3) - 117: 108(ivec3) IAdd 113 116 - Store 110(i3) 117 - 123: 118(ivec4) Load 122(u_i4) - 126: 118(ivec4) Load 125(i_i4) - 127: 118(ivec4) IAdd 123 126 - Store 120(i4) 127 - 133: 128(float) Load 132(u_f) - 136: 128(float) Load 135(i_f) - 137: 128(float) FAdd 133 136 - Store 130(f) 137 - 143: 138(fvec2) Load 142(u_f2) - 146: 138(fvec2) Load 145(i_f2) - 147: 138(fvec2) FAdd 143 146 - Store 140(f2) 147 - 153: 148(fvec3) Load 152(u_f3) - 156: 148(fvec3) Load 155(i_f3) - 157: 148(fvec3) FAdd 153 156 - Store 150(f3) 157 - 163: 158(fvec4) Load 162(u_f4) - 166: 158(fvec4) Load 165(i_f4) - 167: 158(fvec4) FAdd 163 166 - Store 160(f4) 167 - 171: 7(bool) Load 9(b) - 172: 16(bvec2) Load 18(b2) - 173: 7(bool) CompositeExtract 172 0 - 174: 7(bool) LogicalOr 171 173 - 175: 16(bvec2) Load 18(b2) - 176: 7(bool) CompositeExtract 175 1 - 177: 7(bool) LogicalOr 174 176 - 178: 34(bvec3) Load 36(b3) - 179: 7(bool) CompositeExtract 178 0 - 180: 7(bool) LogicalOr 177 179 - 181: 34(bvec3) Load 36(b3) - 182: 7(bool) CompositeExtract 181 1 - 183: 7(bool) LogicalOr 180 182 - 184: 34(bvec3) Load 36(b3) - 185: 7(bool) CompositeExtract 184 2 - 186: 7(bool) LogicalOr 183 185 - 187: 58(bvec4) Load 60(b4) - 188: 7(bool) CompositeExtract 187 0 - 189: 7(bool) LogicalOr 186 188 - 190: 58(bvec4) Load 60(b4) - 191: 7(bool) CompositeExtract 190 1 - 192: 7(bool) LogicalOr 189 191 - 193: 58(bvec4) Load 60(b4) - 194: 7(bool) CompositeExtract 193 2 - 195: 7(bool) LogicalOr 192 194 - 196: 58(bvec4) Load 60(b4) - 197: 7(bool) CompositeExtract 196 3 - 198: 7(bool) LogicalOr 195 197 - SelectionMerge 200 None - BranchConditional 198 199 260 - 199: Label - 201: 88(int) Load 90(i) - 202: 98(ivec2) Load 100(i2) - 203: 88(int) CompositeExtract 202 0 - 204: 88(int) IAdd 201 203 - 205: 98(ivec2) Load 100(i2) - 206: 88(int) CompositeExtract 205 1 - 207: 88(int) IAdd 204 206 - 208: 108(ivec3) Load 110(i3) - 209: 88(int) CompositeExtract 208 0 - 210: 88(int) IAdd 207 209 - 211: 108(ivec3) Load 110(i3) - 212: 88(int) CompositeExtract 211 1 - 213: 88(int) IAdd 210 212 - 214: 108(ivec3) Load 110(i3) - 215: 88(int) CompositeExtract 214 2 - 216: 88(int) IAdd 213 215 - 217: 118(ivec4) Load 120(i4) - 218: 88(int) CompositeExtract 217 0 - 219: 88(int) IAdd 216 218 - 220: 118(ivec4) Load 120(i4) - 221: 88(int) CompositeExtract 220 1 - 222: 88(int) IAdd 219 221 - 223: 118(ivec4) Load 120(i4) - 224: 88(int) CompositeExtract 223 2 - 225: 88(int) IAdd 222 224 - 226: 118(ivec4) Load 120(i4) - 227: 88(int) CompositeExtract 226 3 - 228: 88(int) IAdd 225 227 - 229: 128(float) ConvertSToF 228 - 230: 128(float) Load 130(f) - 231: 128(float) FAdd 229 230 - 232: 138(fvec2) Load 140(f2) - 233: 128(float) CompositeExtract 232 0 - 234: 128(float) FAdd 231 233 - 235: 138(fvec2) Load 140(f2) - 236: 128(float) CompositeExtract 235 1 - 237: 128(float) FAdd 234 236 - 238: 148(fvec3) Load 150(f3) - 239: 128(float) CompositeExtract 238 0 - 240: 128(float) FAdd 237 239 - 241: 148(fvec3) Load 150(f3) - 242: 128(float) CompositeExtract 241 1 - 243: 128(float) FAdd 240 242 - 244: 148(fvec3) Load 150(f3) - 245: 128(float) CompositeExtract 244 2 - 246: 128(float) FAdd 243 245 - 247: 158(fvec4) Load 160(f4) - 248: 128(float) CompositeExtract 247 0 - 249: 128(float) FAdd 246 248 - 250: 158(fvec4) Load 160(f4) - 251: 128(float) CompositeExtract 250 1 - 252: 128(float) FAdd 249 251 - 253: 158(fvec4) Load 160(f4) - 254: 128(float) CompositeExtract 253 2 - 255: 128(float) FAdd 252 254 - 256: 158(fvec4) Load 160(f4) - 257: 128(float) CompositeExtract 256 3 - 258: 128(float) FAdd 255 257 - 259: 158(fvec4) CompositeConstruct 258 258 258 258 - Store 170 259 - Branch 200 - 260: Label - Store 170 262 - Branch 200 - 200: Label - 263: 158(fvec4) Load 170 - Store 169(gl_FragColor) 263 - Branch 6 - 6: Label + 8(b): 7(ptr) Variable Function + 17(b2): 16(ptr) Variable Function + 35(b3): 34(ptr) Variable Function + 59(b4): 58(ptr) Variable Function + 89(i): 88(ptr) Variable Function + 99(i2): 98(ptr) Variable Function + 109(i3): 108(ptr) Variable Function + 119(i4): 118(ptr) Variable Function + 129(f): 128(ptr) Variable Function + 139(f2): 138(ptr) Variable Function + 149(f3): 148(ptr) Variable Function + 159(f4): 158(ptr) Variable Function + 169: 158(ptr) Variable Function + 11: 6(bool) Load 10(u_b) + 13: 6(bool) Load 12(i_b) + 14: 6(bool) LogicalAnd 11 13 + Store 8(b) 14 + 20: 15(bvec2) Load 19(u_b2) + 21: 6(bool) CompositeExtract 20 0 + 23: 15(bvec2) Load 22(i_b2) + 24: 6(bool) CompositeExtract 23 0 + 25: 6(bool) LogicalAnd 21 24 + 26: 15(bvec2) Load 19(u_b2) + 27: 6(bool) CompositeExtract 26 1 + 28: 6(bool) LogicalAnd 25 27 + 29: 15(bvec2) Load 22(i_b2) + 30: 6(bool) CompositeExtract 29 1 + 31: 6(bool) LogicalAnd 28 30 + 32: 15(bvec2) CompositeConstruct 31 31 + Store 17(b2) 32 + 38: 33(bvec3) Load 37(u_b3) + 39: 6(bool) CompositeExtract 38 0 + 41: 33(bvec3) Load 40(i_b3) + 42: 6(bool) CompositeExtract 41 0 + 43: 6(bool) LogicalAnd 39 42 + 44: 33(bvec3) Load 37(u_b3) + 45: 6(bool) CompositeExtract 44 1 + 46: 6(bool) LogicalAnd 43 45 + 47: 33(bvec3) Load 40(i_b3) + 48: 6(bool) CompositeExtract 47 1 + 49: 6(bool) LogicalAnd 46 48 + 50: 33(bvec3) Load 37(u_b3) + 51: 6(bool) CompositeExtract 50 2 + 52: 6(bool) LogicalAnd 49 51 + 53: 33(bvec3) Load 40(i_b3) + 54: 6(bool) CompositeExtract 53 2 + 55: 6(bool) LogicalAnd 52 54 + 56: 33(bvec3) CompositeConstruct 55 55 55 + Store 35(b3) 56 + 62: 57(bvec4) Load 61(u_b4) + 63: 6(bool) CompositeExtract 62 0 + 65: 57(bvec4) Load 64(i_b4) + 66: 6(bool) CompositeExtract 65 0 + 67: 6(bool) LogicalAnd 63 66 + 68: 57(bvec4) Load 61(u_b4) + 69: 6(bool) CompositeExtract 68 1 + 70: 6(bool) LogicalAnd 67 69 + 71: 57(bvec4) Load 64(i_b4) + 72: 6(bool) CompositeExtract 71 1 + 73: 6(bool) LogicalAnd 70 72 + 74: 57(bvec4) Load 61(u_b4) + 75: 6(bool) CompositeExtract 74 2 + 76: 6(bool) LogicalAnd 73 75 + 77: 57(bvec4) Load 64(i_b4) + 78: 6(bool) CompositeExtract 77 2 + 79: 6(bool) LogicalAnd 76 78 + 80: 57(bvec4) Load 61(u_b4) + 81: 6(bool) CompositeExtract 80 3 + 82: 6(bool) LogicalAnd 79 81 + 83: 57(bvec4) Load 64(i_b4) + 84: 6(bool) CompositeExtract 83 3 + 85: 6(bool) LogicalAnd 82 84 + 86: 57(bvec4) CompositeConstruct 85 85 85 85 + Store 59(b4) 86 + 92: 87(int) Load 91(u_i) + 95: 87(int) Load 94(i_i) + 96: 87(int) IAdd 92 95 + Store 89(i) 96 + 102: 97(ivec2) Load 101(u_i2) + 105: 97(ivec2) Load 104(i_i2) + 106: 97(ivec2) IAdd 102 105 + Store 99(i2) 106 + 112: 107(ivec3) Load 111(u_i3) + 115: 107(ivec3) Load 114(i_i3) + 116: 107(ivec3) IAdd 112 115 + Store 109(i3) 116 + 122: 117(ivec4) Load 121(u_i4) + 125: 117(ivec4) Load 124(i_i4) + 126: 117(ivec4) IAdd 122 125 + Store 119(i4) 126 + 132: 127(float) Load 131(u_f) + 135: 127(float) Load 134(i_f) + 136: 127(float) FAdd 132 135 + Store 129(f) 136 + 142: 137(fvec2) Load 141(u_f2) + 145: 137(fvec2) Load 144(i_f2) + 146: 137(fvec2) FAdd 142 145 + Store 139(f2) 146 + 152: 147(fvec3) Load 151(u_f3) + 155: 147(fvec3) Load 154(i_f3) + 156: 147(fvec3) FAdd 152 155 + Store 149(f3) 156 + 162: 157(fvec4) Load 161(u_f4) + 165: 157(fvec4) Load 164(i_f4) + 166: 157(fvec4) FAdd 162 165 + Store 159(f4) 166 + 170: 6(bool) Load 8(b) + 171: 15(bvec2) Load 17(b2) + 172: 6(bool) CompositeExtract 171 0 + 173: 6(bool) LogicalOr 170 172 + 174: 15(bvec2) Load 17(b2) + 175: 6(bool) CompositeExtract 174 1 + 176: 6(bool) LogicalOr 173 175 + 177: 33(bvec3) Load 35(b3) + 178: 6(bool) CompositeExtract 177 0 + 179: 6(bool) LogicalOr 176 178 + 180: 33(bvec3) Load 35(b3) + 181: 6(bool) CompositeExtract 180 1 + 182: 6(bool) LogicalOr 179 181 + 183: 33(bvec3) Load 35(b3) + 184: 6(bool) CompositeExtract 183 2 + 185: 6(bool) LogicalOr 182 184 + 186: 57(bvec4) Load 59(b4) + 187: 6(bool) CompositeExtract 186 0 + 188: 6(bool) LogicalOr 185 187 + 189: 57(bvec4) Load 59(b4) + 190: 6(bool) CompositeExtract 189 1 + 191: 6(bool) LogicalOr 188 190 + 192: 57(bvec4) Load 59(b4) + 193: 6(bool) CompositeExtract 192 2 + 194: 6(bool) LogicalOr 191 193 + 195: 57(bvec4) Load 59(b4) + 196: 6(bool) CompositeExtract 195 3 + 197: 6(bool) LogicalOr 194 196 + SelectionMerge 199 None + BranchConditional 197 198 259 + 198: Label + 200: 87(int) Load 89(i) + 201: 97(ivec2) Load 99(i2) + 202: 87(int) CompositeExtract 201 0 + 203: 87(int) IAdd 200 202 + 204: 97(ivec2) Load 99(i2) + 205: 87(int) CompositeExtract 204 1 + 206: 87(int) IAdd 203 205 + 207: 107(ivec3) Load 109(i3) + 208: 87(int) CompositeExtract 207 0 + 209: 87(int) IAdd 206 208 + 210: 107(ivec3) Load 109(i3) + 211: 87(int) CompositeExtract 210 1 + 212: 87(int) IAdd 209 211 + 213: 107(ivec3) Load 109(i3) + 214: 87(int) CompositeExtract 213 2 + 215: 87(int) IAdd 212 214 + 216: 117(ivec4) Load 119(i4) + 217: 87(int) CompositeExtract 216 0 + 218: 87(int) IAdd 215 217 + 219: 117(ivec4) Load 119(i4) + 220: 87(int) CompositeExtract 219 1 + 221: 87(int) IAdd 218 220 + 222: 117(ivec4) Load 119(i4) + 223: 87(int) CompositeExtract 222 2 + 224: 87(int) IAdd 221 223 + 225: 117(ivec4) Load 119(i4) + 226: 87(int) CompositeExtract 225 3 + 227: 87(int) IAdd 224 226 + 228: 127(float) ConvertSToF 227 + 229: 127(float) Load 129(f) + 230: 127(float) FAdd 228 229 + 231: 137(fvec2) Load 139(f2) + 232: 127(float) CompositeExtract 231 0 + 233: 127(float) FAdd 230 232 + 234: 137(fvec2) Load 139(f2) + 235: 127(float) CompositeExtract 234 1 + 236: 127(float) FAdd 233 235 + 237: 147(fvec3) Load 149(f3) + 238: 127(float) CompositeExtract 237 0 + 239: 127(float) FAdd 236 238 + 240: 147(fvec3) Load 149(f3) + 241: 127(float) CompositeExtract 240 1 + 242: 127(float) FAdd 239 241 + 243: 147(fvec3) Load 149(f3) + 244: 127(float) CompositeExtract 243 2 + 245: 127(float) FAdd 242 244 + 246: 157(fvec4) Load 159(f4) + 247: 127(float) CompositeExtract 246 0 + 248: 127(float) FAdd 245 247 + 249: 157(fvec4) Load 159(f4) + 250: 127(float) CompositeExtract 249 1 + 251: 127(float) FAdd 248 250 + 252: 157(fvec4) Load 159(f4) + 253: 127(float) CompositeExtract 252 2 + 254: 127(float) FAdd 251 253 + 255: 157(fvec4) Load 159(f4) + 256: 127(float) CompositeExtract 255 3 + 257: 127(float) FAdd 254 256 + 258: 157(fvec4) CompositeConstruct 257 257 257 257 + Store 169 258 + Branch 199 + 259: Label + Store 169 261 + Branch 199 + 199: Label + 262: 157(fvec4) Load 169 + Store 168(gl_FragColor) 262 Return FunctionEnd diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out index 4a839ca1..d7951a98 100755 --- a/Test/baseResults/spv.uint.frag.out +++ b/Test/baseResults/spv.uint.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 207 +// Id's are bound by 206 Source ESSL 300 Capability Shader @@ -14,344 +14,342 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "count" - Name 13 "u" - Name 16 "t" - Name 54 "shiftedii" - Name 56 "shiftedui" - Name 58 "shiftediu" - Name 59 "shifteduu" - Name 67 "c" - Name 71 "usampler" - Name 76 "tc" - Name 109 "af" - Name 113 "ab" - Name 117 "ai" - Name 152 "mask1" - Name 154 "mask2" - Name 156 "mask3" - Name 160 "mask4" - Name 200 "f" - Name 202 "v" - Name 204 "i" - Name 206 "b" - Decorate 9(count) RelaxedPrecision - Decorate 13(u) RelaxedPrecision - Decorate 16(t) RelaxedPrecision - Decorate 16(t) Flat - Decorate 54(shiftedii) RelaxedPrecision - Decorate 56(shiftedui) RelaxedPrecision - Decorate 58(shiftediu) RelaxedPrecision - Decorate 59(shifteduu) RelaxedPrecision - Decorate 67(c) RelaxedPrecision - Decorate 71(usampler) RelaxedPrecision - Decorate 76(tc) RelaxedPrecision - Decorate 76(tc) Smooth - Decorate 109(af) RelaxedPrecision - Decorate 117(ai) RelaxedPrecision - Decorate 152(mask1) RelaxedPrecision - Decorate 154(mask2) RelaxedPrecision - Decorate 156(mask3) RelaxedPrecision - Decorate 160(mask4) RelaxedPrecision - Decorate 200(f) RelaxedPrecision - Decorate 200(f) Smooth - Decorate 200(f) NoStaticUse - Decorate 202(v) RelaxedPrecision - Decorate 202(v) NoStaticUse - Decorate 204(i) RelaxedPrecision - Decorate 204(i) NoStaticUse - Decorate 206(b) NoStaticUse + Name 8 "count" + Name 12 "u" + Name 15 "t" + Name 53 "shiftedii" + Name 55 "shiftedui" + Name 57 "shiftediu" + Name 58 "shifteduu" + Name 66 "c" + Name 70 "usampler" + Name 75 "tc" + Name 108 "af" + Name 112 "ab" + Name 116 "ai" + Name 151 "mask1" + Name 153 "mask2" + Name 155 "mask3" + Name 159 "mask4" + Name 199 "f" + Name 201 "v" + Name 203 "i" + Name 205 "b" + Decorate 8(count) RelaxedPrecision + Decorate 12(u) RelaxedPrecision + Decorate 15(t) RelaxedPrecision + Decorate 15(t) Flat + Decorate 53(shiftedii) RelaxedPrecision + Decorate 55(shiftedui) RelaxedPrecision + Decorate 57(shiftediu) RelaxedPrecision + Decorate 58(shifteduu) RelaxedPrecision + Decorate 66(c) RelaxedPrecision + Decorate 70(usampler) RelaxedPrecision + Decorate 75(tc) RelaxedPrecision + Decorate 75(tc) Smooth + Decorate 108(af) RelaxedPrecision + Decorate 116(ai) RelaxedPrecision + Decorate 151(mask1) RelaxedPrecision + Decorate 153(mask2) RelaxedPrecision + Decorate 155(mask3) RelaxedPrecision + Decorate 159(mask4) RelaxedPrecision + Decorate 199(f) RelaxedPrecision + Decorate 199(f) Smooth + Decorate 199(f) NoStaticUse + Decorate 201(v) RelaxedPrecision + Decorate 201(v) NoStaticUse + Decorate 203(i) RelaxedPrecision + Decorate 203(i) NoStaticUse + Decorate 205(b) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 1 - 11: TypeInt 32 0 - 12: TypePointer Function 11(int) - 14: TypeVector 11(int) 2 - 15: TypePointer Input 14(ivec2) - 16(t): 15(ptr) Variable Input - 19: 11(int) Constant 3 - 21: TypeBool - 22: 21(bool) ConstantTrue - 25: 7(int) Constant 2 - 30: 7(int) Constant 3 - 33: 21(bool) ConstantFalse - 36: 7(int) Constant 5 - 41: 7(int) Constant 7 - 46: 7(int) Constant 11 - 51: 7(int) Constant 13 - 55: 7(int) Constant 4294967295 - 57: 11(int) Constant 4194303 - 65: TypeVector 11(int) 4 - 66: TypePointer Output 65(ivec4) - 67(c): 66(ptr) Variable Output - 68: TypeImage 11(int) 2D sampled format:Unknown - 69: TypeSampledImage 68 - 70: TypePointer UniformConstant 69 - 71(usampler): 70(ptr) Variable UniformConstant - 73: TypeFloat 32 - 74: TypeVector 73(float) 2 - 75: TypePointer Input 74(fvec2) - 76(tc): 75(ptr) Variable Input - 86: 73(float) Constant 1065353216 - 98: 73(float) Constant 1073741824 - 99: 74(fvec2) ConstantComposite 98 98 - 104: 11(int) Constant 4 - 108: TypePointer Function 73(float) - 112: TypePointer Function 21(bool) - 115: 11(int) Constant 0 - 123: 11(int) Constant 1 - 134: 7(int) Constant 17 - 139: 7(int) Constant 19 - 144: 7(int) Constant 23 - 149: 7(int) Constant 27 - 153: 11(int) Constant 161 - 155: 11(int) Constant 2576 - 158: 7(int) Constant 4 - 161: 11(int) Constant 2737 - 199: TypePointer Input 73(float) - 200(f): 199(ptr) Variable Input - 201: TypePointer UniformConstant 65(ivec4) - 202(v): 201(ptr) Variable UniformConstant - 203: TypePointer UniformConstant 7(int) - 204(i): 203(ptr) Variable UniformConstant - 205: TypePointer UniformConstant 21(bool) - 206(b): 205(ptr) Variable UniformConstant + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 1 + 10: TypeInt 32 0 + 11: TypePointer Function 10(int) + 13: TypeVector 10(int) 2 + 14: TypePointer Input 13(ivec2) + 15(t): 14(ptr) Variable Input + 18: 10(int) Constant 3 + 20: TypeBool + 21: 20(bool) ConstantTrue + 24: 6(int) Constant 2 + 29: 6(int) Constant 3 + 32: 20(bool) ConstantFalse + 35: 6(int) Constant 5 + 40: 6(int) Constant 7 + 45: 6(int) Constant 11 + 50: 6(int) Constant 13 + 54: 6(int) Constant 4294967295 + 56: 10(int) Constant 4194303 + 64: TypeVector 10(int) 4 + 65: TypePointer Output 64(ivec4) + 66(c): 65(ptr) Variable Output + 67: TypeImage 10(int) 2D sampled format:Unknown + 68: TypeSampledImage 67 + 69: TypePointer UniformConstant 68 + 70(usampler): 69(ptr) Variable UniformConstant + 72: TypeFloat 32 + 73: TypeVector 72(float) 2 + 74: TypePointer Input 73(fvec2) + 75(tc): 74(ptr) Variable Input + 85: 72(float) Constant 1065353216 + 97: 72(float) Constant 1073741824 + 98: 73(fvec2) ConstantComposite 97 97 + 103: 10(int) Constant 4 + 107: TypePointer Function 72(float) + 111: TypePointer Function 20(bool) + 114: 10(int) Constant 0 + 122: 10(int) Constant 1 + 133: 6(int) Constant 17 + 138: 6(int) Constant 19 + 143: 6(int) Constant 23 + 148: 6(int) Constant 27 + 152: 10(int) Constant 161 + 154: 10(int) Constant 2576 + 157: 6(int) Constant 4 + 160: 10(int) Constant 2737 + 198: TypePointer Input 72(float) + 199(f): 198(ptr) Variable Input + 200: TypePointer UniformConstant 64(ivec4) + 201(v): 200(ptr) Variable UniformConstant + 202: TypePointer UniformConstant 6(int) + 203(i): 202(ptr) Variable UniformConstant + 204: TypePointer UniformConstant 20(bool) + 205(b): 204(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 9(count): 8(ptr) Variable Function - 13(u): 12(ptr) Variable Function - 54(shiftedii): 8(ptr) Variable Function - 56(shiftedui): 12(ptr) Variable Function - 58(shiftediu): 8(ptr) Variable Function - 59(shifteduu): 12(ptr) Variable Function - 109(af): 108(ptr) Variable Function - 113(ab): 112(ptr) Variable Function - 117(ai): 8(ptr) Variable Function - 152(mask1): 12(ptr) Variable Function - 154(mask2): 12(ptr) Variable Function - 156(mask3): 12(ptr) Variable Function - 160(mask4): 12(ptr) Variable Function - Store 9(count) 10 - 17: 14(ivec2) Load 16(t) - 18: 11(int) CompositeExtract 17 1 - 20: 11(int) IAdd 18 19 - Store 13(u) 20 - SelectionMerge 24 None - BranchConditional 22 23 24 - 23: Label - 26: 7(int) Load 9(count) - 27: 7(int) IMul 26 25 - Store 9(count) 27 - Branch 24 - 24: Label - SelectionMerge 29 None - BranchConditional 22 28 29 - 28: Label - 31: 7(int) Load 9(count) - 32: 7(int) IMul 31 30 - Store 9(count) 32 - Branch 29 - 29: Label - SelectionMerge 35 None - BranchConditional 33 34 35 - 34: Label - 37: 7(int) Load 9(count) - 38: 7(int) IMul 37 36 - Store 9(count) 38 - Branch 35 - 35: Label - SelectionMerge 40 None - BranchConditional 22 39 40 - 39: Label - 42: 7(int) Load 9(count) - 43: 7(int) IMul 42 41 - Store 9(count) 43 - Branch 40 - 40: Label - SelectionMerge 45 None - BranchConditional 22 44 45 - 44: Label - 47: 7(int) Load 9(count) - 48: 7(int) IMul 47 46 - Store 9(count) 48 - Branch 45 - 45: Label - SelectionMerge 50 None - BranchConditional 33 49 50 - 49: Label - 52: 7(int) Load 9(count) - 53: 7(int) IMul 52 51 - Store 9(count) 53 - Branch 50 - 50: Label - Store 54(shiftedii) 55 - Store 56(shiftedui) 57 - Store 58(shiftediu) 55 - Store 59(shifteduu) 57 - 60: 7(int) Load 54(shiftedii) - 61: 7(int) Load 58(shiftediu) - 62: 21(bool) IEqual 60 61 - SelectionMerge 64 None - BranchConditional 62 63 64 - 63: Label - 72: 69 Load 71(usampler) - 77: 74(fvec2) Load 76(tc) - 78: 65(ivec4) ImageSampleImplicitLod 72 77 - Store 67(c) 78 - Branch 64 - 64: Label - 79: 11(int) Load 56(shiftedui) - 80: 11(int) Load 59(shifteduu) - 81: 21(bool) IEqual 79 80 - SelectionMerge 83 None - BranchConditional 81 82 83 - 82: Label - 84: 69 Load 71(usampler) - 85: 74(fvec2) Load 76(tc) - 87: 74(fvec2) CompositeConstruct 86 86 - 88: 74(fvec2) FAdd 85 87 - 89: 65(ivec4) ImageSampleImplicitLod 84 88 - Store 67(c) 89 - Branch 83 - 83: Label - 90: 7(int) Load 54(shiftedii) - 91: 11(int) Load 56(shiftedui) - 92: 7(int) Bitcast 91 - 93: 21(bool) IEqual 90 92 - SelectionMerge 95 None - BranchConditional 93 94 95 - 94: Label - 96: 69 Load 71(usampler) - 97: 74(fvec2) Load 76(tc) - 100: 74(fvec2) FSub 97 99 - 101: 65(ivec4) ImageSampleImplicitLod 96 100 - Store 67(c) 101 - Branch 95 - 95: Label - 102: 14(ivec2) Load 16(t) - 103: 11(int) CompositeExtract 102 0 - 105: 21(bool) UGreaterThan 103 104 - SelectionMerge 107 None - BranchConditional 105 106 107 - 106: Label - 110: 11(int) Load 13(u) - 111: 73(float) ConvertUToF 110 - Store 109(af) 111 - 114: 11(int) Load 13(u) - 116: 21(bool) INotEqual 114 115 - Store 113(ab) 116 - 118: 11(int) Load 13(u) - 119: 7(int) Bitcast 118 - Store 117(ai) 119 - 120: 73(float) Load 109(af) - 121: 11(int) ConvertFToU 120 - 122: 21(bool) Load 113(ab) - 124: 11(int) Select 122 123 115 - 125: 7(int) Load 117(ai) - 126: 11(int) Bitcast 125 - 127: 7(int) Load 9(count) - 128: 11(int) Bitcast 127 - 129: 65(ivec4) CompositeConstruct 121 124 126 128 - 130: 65(ivec4) Load 67(c) - 131: 65(ivec4) IAdd 130 129 - Store 67(c) 131 - Branch 107 - 107: Label - SelectionMerge 133 None - BranchConditional 22 132 133 - 132: Label - 135: 7(int) Load 9(count) - 136: 7(int) IMul 135 134 - Store 9(count) 136 - Branch 133 - 133: Label - SelectionMerge 138 None - BranchConditional 33 137 138 - 137: Label - 140: 7(int) Load 9(count) - 141: 7(int) IMul 140 139 - Store 9(count) 141 - Branch 138 - 138: Label - SelectionMerge 143 None - BranchConditional 22 142 143 - 142: Label - 145: 7(int) Load 9(count) - 146: 7(int) IMul 145 144 - Store 9(count) 146 - Branch 143 - 143: Label - SelectionMerge 148 None - BranchConditional 22 147 148 - 147: Label - 150: 7(int) Load 9(count) - 151: 7(int) IMul 150 149 - Store 9(count) 151 - Branch 148 - 148: Label - Store 152(mask1) 153 - Store 154(mask2) 155 - 157: 11(int) Load 152(mask1) - 159: 11(int) ShiftLeftLogical 157 158 - Store 156(mask3) 159 - Store 160(mask4) 161 - 162: 11(int) Load 156(mask3) - 163: 11(int) Load 154(mask2) - 164: 21(bool) IEqual 162 163 - SelectionMerge 166 None - BranchConditional 164 165 166 - 165: Label - 167: 7(int) Load 9(count) - 168: 7(int) IMul 167 25 - Store 9(count) 168 - Branch 166 - 166: Label - 169: 11(int) Load 156(mask3) - 170: 11(int) Load 152(mask1) - 171: 11(int) BitwiseAnd 169 170 - 172: 21(bool) INotEqual 171 115 - SelectionMerge 174 None - BranchConditional 172 173 174 - 173: Label - 175: 7(int) Load 9(count) - 176: 7(int) IMul 175 30 - Store 9(count) 176 - Branch 174 - 174: Label - 177: 11(int) Load 152(mask1) - 178: 11(int) Load 156(mask3) - 179: 11(int) BitwiseOr 177 178 - 180: 11(int) Load 160(mask4) - 181: 21(bool) IEqual 179 180 - SelectionMerge 183 None - BranchConditional 181 182 183 - 182: Label - 184: 7(int) Load 9(count) - 185: 7(int) IMul 184 36 - Store 9(count) 185 - Branch 183 - 183: Label - 186: 11(int) Load 152(mask1) - 187: 11(int) Load 160(mask4) - 188: 11(int) BitwiseXor 186 187 - 189: 21(bool) IEqual 188 155 - SelectionMerge 191 None - BranchConditional 189 190 191 - 190: Label - 192: 7(int) Load 9(count) - 193: 7(int) IMul 192 41 - Store 9(count) 193 - Branch 191 - 191: Label - 194: 7(int) Load 9(count) - 195: 11(int) Bitcast 194 - 196: 65(ivec4) CompositeConstruct 195 195 195 195 - 197: 65(ivec4) Load 67(c) - 198: 65(ivec4) IAdd 197 196 - Store 67(c) 198 - Branch 6 - 6: Label + 8(count): 7(ptr) Variable Function + 12(u): 11(ptr) Variable Function + 53(shiftedii): 7(ptr) Variable Function + 55(shiftedui): 11(ptr) Variable Function + 57(shiftediu): 7(ptr) Variable Function + 58(shifteduu): 11(ptr) Variable Function + 108(af): 107(ptr) Variable Function + 112(ab): 111(ptr) Variable Function + 116(ai): 7(ptr) Variable Function + 151(mask1): 11(ptr) Variable Function + 153(mask2): 11(ptr) Variable Function + 155(mask3): 11(ptr) Variable Function + 159(mask4): 11(ptr) Variable Function + Store 8(count) 9 + 16: 13(ivec2) Load 15(t) + 17: 10(int) CompositeExtract 16 1 + 19: 10(int) IAdd 17 18 + Store 12(u) 19 + SelectionMerge 23 None + BranchConditional 21 22 23 + 22: Label + 25: 6(int) Load 8(count) + 26: 6(int) IMul 25 24 + Store 8(count) 26 + Branch 23 + 23: Label + SelectionMerge 28 None + BranchConditional 21 27 28 + 27: Label + 30: 6(int) Load 8(count) + 31: 6(int) IMul 30 29 + Store 8(count) 31 + Branch 28 + 28: Label + SelectionMerge 34 None + BranchConditional 32 33 34 + 33: Label + 36: 6(int) Load 8(count) + 37: 6(int) IMul 36 35 + Store 8(count) 37 + Branch 34 + 34: Label + SelectionMerge 39 None + BranchConditional 21 38 39 + 38: Label + 41: 6(int) Load 8(count) + 42: 6(int) IMul 41 40 + Store 8(count) 42 + Branch 39 + 39: Label + SelectionMerge 44 None + BranchConditional 21 43 44 + 43: Label + 46: 6(int) Load 8(count) + 47: 6(int) IMul 46 45 + Store 8(count) 47 + Branch 44 + 44: Label + SelectionMerge 49 None + BranchConditional 32 48 49 + 48: Label + 51: 6(int) Load 8(count) + 52: 6(int) IMul 51 50 + Store 8(count) 52 + Branch 49 + 49: Label + Store 53(shiftedii) 54 + Store 55(shiftedui) 56 + Store 57(shiftediu) 54 + Store 58(shifteduu) 56 + 59: 6(int) Load 53(shiftedii) + 60: 6(int) Load 57(shiftediu) + 61: 20(bool) IEqual 59 60 + SelectionMerge 63 None + BranchConditional 61 62 63 + 62: Label + 71: 68 Load 70(usampler) + 76: 73(fvec2) Load 75(tc) + 77: 64(ivec4) ImageSampleImplicitLod 71 76 + Store 66(c) 77 + Branch 63 + 63: Label + 78: 10(int) Load 55(shiftedui) + 79: 10(int) Load 58(shifteduu) + 80: 20(bool) IEqual 78 79 + SelectionMerge 82 None + BranchConditional 80 81 82 + 81: Label + 83: 68 Load 70(usampler) + 84: 73(fvec2) Load 75(tc) + 86: 73(fvec2) CompositeConstruct 85 85 + 87: 73(fvec2) FAdd 84 86 + 88: 64(ivec4) ImageSampleImplicitLod 83 87 + Store 66(c) 88 + Branch 82 + 82: Label + 89: 6(int) Load 53(shiftedii) + 90: 10(int) Load 55(shiftedui) + 91: 6(int) Bitcast 90 + 92: 20(bool) IEqual 89 91 + SelectionMerge 94 None + BranchConditional 92 93 94 + 93: Label + 95: 68 Load 70(usampler) + 96: 73(fvec2) Load 75(tc) + 99: 73(fvec2) FSub 96 98 + 100: 64(ivec4) ImageSampleImplicitLod 95 99 + Store 66(c) 100 + Branch 94 + 94: Label + 101: 13(ivec2) Load 15(t) + 102: 10(int) CompositeExtract 101 0 + 104: 20(bool) UGreaterThan 102 103 + SelectionMerge 106 None + BranchConditional 104 105 106 + 105: Label + 109: 10(int) Load 12(u) + 110: 72(float) ConvertUToF 109 + Store 108(af) 110 + 113: 10(int) Load 12(u) + 115: 20(bool) INotEqual 113 114 + Store 112(ab) 115 + 117: 10(int) Load 12(u) + 118: 6(int) Bitcast 117 + Store 116(ai) 118 + 119: 72(float) Load 108(af) + 120: 10(int) ConvertFToU 119 + 121: 20(bool) Load 112(ab) + 123: 10(int) Select 121 122 114 + 124: 6(int) Load 116(ai) + 125: 10(int) Bitcast 124 + 126: 6(int) Load 8(count) + 127: 10(int) Bitcast 126 + 128: 64(ivec4) CompositeConstruct 120 123 125 127 + 129: 64(ivec4) Load 66(c) + 130: 64(ivec4) IAdd 129 128 + Store 66(c) 130 + Branch 106 + 106: Label + SelectionMerge 132 None + BranchConditional 21 131 132 + 131: Label + 134: 6(int) Load 8(count) + 135: 6(int) IMul 134 133 + Store 8(count) 135 + Branch 132 + 132: Label + SelectionMerge 137 None + BranchConditional 32 136 137 + 136: Label + 139: 6(int) Load 8(count) + 140: 6(int) IMul 139 138 + Store 8(count) 140 + Branch 137 + 137: Label + SelectionMerge 142 None + BranchConditional 21 141 142 + 141: Label + 144: 6(int) Load 8(count) + 145: 6(int) IMul 144 143 + Store 8(count) 145 + Branch 142 + 142: Label + SelectionMerge 147 None + BranchConditional 21 146 147 + 146: Label + 149: 6(int) Load 8(count) + 150: 6(int) IMul 149 148 + Store 8(count) 150 + Branch 147 + 147: Label + Store 151(mask1) 152 + Store 153(mask2) 154 + 156: 10(int) Load 151(mask1) + 158: 10(int) ShiftLeftLogical 156 157 + Store 155(mask3) 158 + Store 159(mask4) 160 + 161: 10(int) Load 155(mask3) + 162: 10(int) Load 153(mask2) + 163: 20(bool) IEqual 161 162 + SelectionMerge 165 None + BranchConditional 163 164 165 + 164: Label + 166: 6(int) Load 8(count) + 167: 6(int) IMul 166 24 + Store 8(count) 167 + Branch 165 + 165: Label + 168: 10(int) Load 155(mask3) + 169: 10(int) Load 151(mask1) + 170: 10(int) BitwiseAnd 168 169 + 171: 20(bool) INotEqual 170 114 + SelectionMerge 173 None + BranchConditional 171 172 173 + 172: Label + 174: 6(int) Load 8(count) + 175: 6(int) IMul 174 29 + Store 8(count) 175 + Branch 173 + 173: Label + 176: 10(int) Load 151(mask1) + 177: 10(int) Load 155(mask3) + 178: 10(int) BitwiseOr 176 177 + 179: 10(int) Load 159(mask4) + 180: 20(bool) IEqual 178 179 + SelectionMerge 182 None + BranchConditional 180 181 182 + 181: Label + 183: 6(int) Load 8(count) + 184: 6(int) IMul 183 35 + Store 8(count) 184 + Branch 182 + 182: Label + 185: 10(int) Load 151(mask1) + 186: 10(int) Load 159(mask4) + 187: 10(int) BitwiseXor 185 186 + 188: 20(bool) IEqual 187 154 + SelectionMerge 190 None + BranchConditional 188 189 190 + 189: Label + 191: 6(int) Load 8(count) + 192: 6(int) IMul 191 40 + Store 8(count) 192 + Branch 190 + 190: Label + 193: 6(int) Load 8(count) + 194: 10(int) Bitcast 193 + 195: 64(ivec4) CompositeConstruct 194 194 194 194 + 196: 64(ivec4) Load 66(c) + 197: 64(ivec4) IAdd 196 195 + Store 66(c) 197 Return FunctionEnd diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out index d2f7910a..b6536097 100755 --- a/Test/baseResults/spv.uniformArray.frag.out +++ b/Test/baseResults/spv.uniformArray.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 53 +// Id's are bound by 52 Source GLSL 130 Capability Shader @@ -14,69 +14,67 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "texColor" - Name 15 "color" - Name 26 "inColor" - Name 36 "alpha" - Name 47 "gl_FragColor" - Name 52 "texSampler2D" - Decorate 47(gl_FragColor) BuiltIn FragColor - Decorate 52(texSampler2D) NoStaticUse + Name 9 "texColor" + Name 14 "color" + Name 25 "inColor" + Name 35 "alpha" + Name 46 "gl_FragColor" + Name 51 "texSampler2D" + Decorate 46(gl_FragColor) BuiltIn FragColor + Decorate 51(texSampler2D) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypeInt 32 0 - 12: 11(int) Constant 6 - 13: TypeArray 8(fvec4) 12 - 14: TypePointer UniformConstant 13 - 15(color): 14(ptr) Variable UniformConstant - 16: TypeInt 32 1 - 17: 16(int) Constant 1 - 18: TypePointer UniformConstant 8(fvec4) - 24: TypeVector 7(float) 3 - 25: TypePointer UniformConstant 24(fvec3) - 26(inColor): 25(ptr) Variable UniformConstant - 33: 11(int) Constant 16 - 34: TypeArray 7(float) 33 - 35: TypePointer UniformConstant 34 - 36(alpha): 35(ptr) Variable UniformConstant - 37: 16(int) Constant 12 - 38: TypePointer UniformConstant 7(float) - 46: TypePointer Output 8(fvec4) -47(gl_FragColor): 46(ptr) Variable Output - 49: TypeImage 7(float) 2D sampled format:Unknown - 50: TypeSampledImage 49 - 51: TypePointer UniformConstant 50 -52(texSampler2D): 51(ptr) Variable UniformConstant + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeInt 32 0 + 11: 10(int) Constant 6 + 12: TypeArray 7(fvec4) 11 + 13: TypePointer UniformConstant 12 + 14(color): 13(ptr) Variable UniformConstant + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: TypePointer UniformConstant 7(fvec4) + 23: TypeVector 6(float) 3 + 24: TypePointer UniformConstant 23(fvec3) + 25(inColor): 24(ptr) Variable UniformConstant + 32: 10(int) Constant 16 + 33: TypeArray 6(float) 32 + 34: TypePointer UniformConstant 33 + 35(alpha): 34(ptr) Variable UniformConstant + 36: 15(int) Constant 12 + 37: TypePointer UniformConstant 6(float) + 45: TypePointer Output 7(fvec4) +46(gl_FragColor): 45(ptr) Variable Output + 48: TypeImage 6(float) 2D sampled format:Unknown + 49: TypeSampledImage 48 + 50: TypePointer UniformConstant 49 +51(texSampler2D): 50(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 10(texColor): 9(ptr) Variable Function - 19: 18(ptr) AccessChain 15(color) 17 - 20: 8(fvec4) Load 19 - 21: 18(ptr) AccessChain 15(color) 17 - 22: 8(fvec4) Load 21 - 23: 8(fvec4) FAdd 20 22 - Store 10(texColor) 23 - 27: 24(fvec3) Load 26(inColor) - 28: 8(fvec4) Load 10(texColor) - 29: 24(fvec3) VectorShuffle 28 28 0 1 2 - 30: 24(fvec3) FAdd 29 27 - 31: 8(fvec4) Load 10(texColor) - 32: 8(fvec4) VectorShuffle 31 30 4 5 6 3 - Store 10(texColor) 32 - 39: 38(ptr) AccessChain 36(alpha) 37 - 40: 7(float) Load 39 - 41: 8(fvec4) Load 10(texColor) - 42: 7(float) CompositeExtract 41 3 - 43: 7(float) FAdd 42 40 - 44: 8(fvec4) Load 10(texColor) - 45: 8(fvec4) CompositeInsert 43 44 3 - Store 10(texColor) 45 - 48: 8(fvec4) Load 10(texColor) - Store 47(gl_FragColor) 48 - Branch 6 - 6: Label + 9(texColor): 8(ptr) Variable Function + 18: 17(ptr) AccessChain 14(color) 16 + 19: 7(fvec4) Load 18 + 20: 17(ptr) AccessChain 14(color) 16 + 21: 7(fvec4) Load 20 + 22: 7(fvec4) FAdd 19 21 + Store 9(texColor) 22 + 26: 23(fvec3) Load 25(inColor) + 27: 7(fvec4) Load 9(texColor) + 28: 23(fvec3) VectorShuffle 27 27 0 1 2 + 29: 23(fvec3) FAdd 28 26 + 30: 7(fvec4) Load 9(texColor) + 31: 7(fvec4) VectorShuffle 30 29 4 5 6 3 + Store 9(texColor) 31 + 38: 37(ptr) AccessChain 35(alpha) 36 + 39: 6(float) Load 38 + 40: 7(fvec4) Load 9(texColor) + 41: 6(float) CompositeExtract 40 3 + 42: 6(float) FAdd 41 39 + 43: 7(fvec4) Load 9(texColor) + 44: 7(fvec4) CompositeInsert 42 43 3 + Store 9(texColor) 44 + 47: 7(fvec4) Load 9(texColor) + Store 46(gl_FragColor) 47 Return FunctionEnd diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out index 5931d595..215c22a9 100755 --- a/Test/baseResults/spv.variableArrayIndex.frag.out +++ b/Test/baseResults/spv.variableArrayIndex.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 94 +// Id's are bound by 93 Source GLSL 130 Capability Shader @@ -16,133 +16,131 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 9 "iLocal" - Name 11 "Count" - Name 14 "lunarStruct1" - MemberName 14(lunarStruct1) 0 "i" - MemberName 14(lunarStruct1) 1 "f" - Name 15 "lunarStruct2" - MemberName 15(lunarStruct2) 0 "i" - MemberName 15(lunarStruct2) 1 "f" - MemberName 15(lunarStruct2) 2 "s1_1" - Name 19 "lunarStruct3" - MemberName 19(lunarStruct3) 0 "s2_1" - MemberName 19(lunarStruct3) 1 "i" - MemberName 19(lunarStruct3) 2 "f" - MemberName 19(lunarStruct3) 3 "s1_1" - Name 21 "foo3" - Name 31 "scale" - Name 35 "foo2" - Name 37 "foo" - Name 55 "gl_FragColor" - Name 60 "sampler" - Name 64 "coord" - Name 70 "constructed" - Decorate 55(gl_FragColor) BuiltIn FragColor - Decorate 64(coord) Smooth + Name 8 "iLocal" + Name 10 "Count" + Name 13 "lunarStruct1" + MemberName 13(lunarStruct1) 0 "i" + MemberName 13(lunarStruct1) 1 "f" + Name 14 "lunarStruct2" + MemberName 14(lunarStruct2) 0 "i" + MemberName 14(lunarStruct2) 1 "f" + MemberName 14(lunarStruct2) 2 "s1_1" + Name 18 "lunarStruct3" + MemberName 18(lunarStruct3) 0 "s2_1" + MemberName 18(lunarStruct3) 1 "i" + MemberName 18(lunarStruct3) 2 "f" + MemberName 18(lunarStruct3) 3 "s1_1" + Name 20 "foo3" + Name 30 "scale" + Name 34 "foo2" + Name 36 "foo" + Name 54 "gl_FragColor" + Name 59 "sampler" + Name 63 "coord" + Name 69 "constructed" + Decorate 54(gl_FragColor) BuiltIn FragColor + Decorate 63(coord) Smooth 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: TypePointer UniformConstant 7(int) - 11(Count): 10(ptr) Variable UniformConstant - 13: TypeFloat 32 -14(lunarStruct1): TypeStruct 7(int) 13(float) -15(lunarStruct2): TypeStruct 7(int) 13(float) 14(lunarStruct1) - 16: TypeInt 32 0 - 17: 16(int) Constant 3 - 18: TypeArray 15(lunarStruct2) 17 -19(lunarStruct3): TypeStruct 18 7(int) 13(float) 14(lunarStruct1) - 20: TypePointer UniformConstant 19(lunarStruct3) - 21(foo3): 20(ptr) Variable UniformConstant - 22: 7(int) Constant 0 - 23: 7(int) Constant 1 - 26: TypeBool - 30: TypePointer Function 13(float) - 32: 16(int) Constant 5 - 33: TypeArray 15(lunarStruct2) 32 - 34: TypePointer UniformConstant 33 - 35(foo2): 34(ptr) Variable UniformConstant - 36: TypePointer UniformConstant 14(lunarStruct1) - 37(foo): 36(ptr) Variable UniformConstant - 42: 7(int) Constant 2 - 47: TypePointer UniformConstant 13(float) - 53: TypeVector 13(float) 4 - 54: TypePointer Output 53(fvec4) -55(gl_FragColor): 54(ptr) Variable Output - 57: TypeImage 13(float) 2D sampled format:Unknown - 58: TypeSampledImage 57 - 59: TypePointer UniformConstant 58 - 60(sampler): 59(ptr) Variable UniformConstant - 62: TypeVector 13(float) 2 - 63: TypePointer Input 62(fvec2) - 64(coord): 63(ptr) Variable Input - 68: TypeArray 62(fvec2) 17 - 69: TypePointer Function 68 - 74: 13(float) Constant 1065353216 - 75: 13(float) Constant 1073741824 - 76: 62(fvec2) ConstantComposite 74 75 - 80: TypePointer Function 62(fvec2) + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypePointer UniformConstant 6(int) + 10(Count): 9(ptr) Variable UniformConstant + 12: TypeFloat 32 +13(lunarStruct1): TypeStruct 6(int) 12(float) +14(lunarStruct2): TypeStruct 6(int) 12(float) 13(lunarStruct1) + 15: TypeInt 32 0 + 16: 15(int) Constant 3 + 17: TypeArray 14(lunarStruct2) 16 +18(lunarStruct3): TypeStruct 17 6(int) 12(float) 13(lunarStruct1) + 19: TypePointer UniformConstant 18(lunarStruct3) + 20(foo3): 19(ptr) Variable UniformConstant + 21: 6(int) Constant 0 + 22: 6(int) Constant 1 + 25: TypeBool + 29: TypePointer Function 12(float) + 31: 15(int) Constant 5 + 32: TypeArray 14(lunarStruct2) 31 + 33: TypePointer UniformConstant 32 + 34(foo2): 33(ptr) Variable UniformConstant + 35: TypePointer UniformConstant 13(lunarStruct1) + 36(foo): 35(ptr) Variable UniformConstant + 41: 6(int) Constant 2 + 46: TypePointer UniformConstant 12(float) + 52: TypeVector 12(float) 4 + 53: TypePointer Output 52(fvec4) +54(gl_FragColor): 53(ptr) Variable Output + 56: TypeImage 12(float) 2D sampled format:Unknown + 57: TypeSampledImage 56 + 58: TypePointer UniformConstant 57 + 59(sampler): 58(ptr) Variable UniformConstant + 61: TypeVector 12(float) 2 + 62: TypePointer Input 61(fvec2) + 63(coord): 62(ptr) Variable Input + 67: TypeArray 61(fvec2) 16 + 68: TypePointer Function 67 + 73: 12(float) Constant 1065353216 + 74: 12(float) Constant 1073741824 + 75: 61(fvec2) ConstantComposite 73 74 + 79: TypePointer Function 61(fvec2) 4(main): 2 Function None 3 5: Label - 9(iLocal): 8(ptr) Variable Function - 31(scale): 30(ptr) Variable Function - 70(constructed): 69(ptr) Variable Function - 12: 7(int) Load 11(Count) - Store 9(iLocal) 12 - 24: 10(ptr) AccessChain 21(foo3) 22 23 22 - 25: 7(int) Load 24 - 27: 26(bool) SGreaterThan 25 22 - SelectionMerge 29 None - BranchConditional 27 28 50 - 28: Label - 38: 10(ptr) AccessChain 37(foo) 22 - 39: 7(int) Load 38 - 40: 10(ptr) AccessChain 21(foo3) 22 39 22 - 41: 7(int) Load 40 - 43: 7(int) IAdd 41 42 - 44: 7(int) Load 9(iLocal) - 45: 7(int) IAdd 44 23 - Store 9(iLocal) 45 - 46: 7(int) IAdd 43 45 - 48: 47(ptr) AccessChain 35(foo2) 46 42 23 - 49: 13(float) Load 48 - Store 31(scale) 49 - Branch 29 - 50: Label - 51: 47(ptr) AccessChain 21(foo3) 22 22 42 23 - 52: 13(float) Load 51 - Store 31(scale) 52 - Branch 29 - 29: Label - 56: 13(float) Load 31(scale) - 61: 58 Load 60(sampler) - 65: 62(fvec2) Load 64(coord) - 66: 53(fvec4) ImageSampleImplicitLod 61 65 - 67: 53(fvec4) VectorTimesScalar 66 56 - Store 55(gl_FragColor) 67 - 71: 62(fvec2) Load 64(coord) - 72: 13(float) Load 31(scale) - 73: 62(fvec2) CompositeConstruct 72 72 - 77: 68 CompositeConstruct 71 73 76 - Store 70(constructed) 77 - 78: 10(ptr) AccessChain 37(foo) 22 - 79: 7(int) Load 78 - 81: 80(ptr) AccessChain 70(constructed) 79 - 82: 62(fvec2) Load 81 - 83: 10(ptr) AccessChain 37(foo) 22 - 84: 7(int) Load 83 - 85: 80(ptr) AccessChain 70(constructed) 84 - 86: 62(fvec2) Load 85 - 87: 13(float) CompositeExtract 82 0 - 88: 13(float) CompositeExtract 82 1 - 89: 13(float) CompositeExtract 86 0 - 90: 13(float) CompositeExtract 86 1 - 91: 53(fvec4) CompositeConstruct 87 88 89 90 - 92: 53(fvec4) Load 55(gl_FragColor) - 93: 53(fvec4) FAdd 92 91 - Store 55(gl_FragColor) 93 - Branch 6 - 6: Label + 8(iLocal): 7(ptr) Variable Function + 30(scale): 29(ptr) Variable Function + 69(constructed): 68(ptr) Variable Function + 11: 6(int) Load 10(Count) + Store 8(iLocal) 11 + 23: 9(ptr) AccessChain 20(foo3) 21 22 21 + 24: 6(int) Load 23 + 26: 25(bool) SGreaterThan 24 21 + SelectionMerge 28 None + BranchConditional 26 27 49 + 27: Label + 37: 9(ptr) AccessChain 36(foo) 21 + 38: 6(int) Load 37 + 39: 9(ptr) AccessChain 20(foo3) 21 38 21 + 40: 6(int) Load 39 + 42: 6(int) IAdd 40 41 + 43: 6(int) Load 8(iLocal) + 44: 6(int) IAdd 43 22 + Store 8(iLocal) 44 + 45: 6(int) IAdd 42 44 + 47: 46(ptr) AccessChain 34(foo2) 45 41 22 + 48: 12(float) Load 47 + Store 30(scale) 48 + Branch 28 + 49: Label + 50: 46(ptr) AccessChain 20(foo3) 21 21 41 22 + 51: 12(float) Load 50 + Store 30(scale) 51 + Branch 28 + 28: Label + 55: 12(float) Load 30(scale) + 60: 57 Load 59(sampler) + 64: 61(fvec2) Load 63(coord) + 65: 52(fvec4) ImageSampleImplicitLod 60 64 + 66: 52(fvec4) VectorTimesScalar 65 55 + Store 54(gl_FragColor) 66 + 70: 61(fvec2) Load 63(coord) + 71: 12(float) Load 30(scale) + 72: 61(fvec2) CompositeConstruct 71 71 + 76: 67 CompositeConstruct 70 72 75 + Store 69(constructed) 76 + 77: 9(ptr) AccessChain 36(foo) 21 + 78: 6(int) Load 77 + 80: 79(ptr) AccessChain 69(constructed) 78 + 81: 61(fvec2) Load 80 + 82: 9(ptr) AccessChain 36(foo) 21 + 83: 6(int) Load 82 + 84: 79(ptr) AccessChain 69(constructed) 83 + 85: 61(fvec2) Load 84 + 86: 12(float) CompositeExtract 81 0 + 87: 12(float) CompositeExtract 81 1 + 88: 12(float) CompositeExtract 85 0 + 89: 12(float) CompositeExtract 85 1 + 90: 52(fvec4) CompositeConstruct 86 87 88 89 + 91: 52(fvec4) Load 54(gl_FragColor) + 92: 52(fvec4) FAdd 91 90 + Store 54(gl_FragColor) 92 Return FunctionEnd diff --git a/Test/baseResults/spv.varyingArray.frag.out b/Test/baseResults/spv.varyingArray.frag.out index 848470fc..f42947f4 100755 --- a/Test/baseResults/spv.varyingArray.frag.out +++ b/Test/baseResults/spv.varyingArray.frag.out @@ -10,7 +10,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 62 +// Id's are bound by 61 Source GLSL 130 Capability Shader @@ -19,82 +19,80 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "texColor" - Name 14 "texSampler2D" - Name 20 "gl_TexCoord" - Name 35 "color" - Name 40 "alpha" - Name 45 "gl_FragColor" - Name 49 "foo" - Decorate 20(gl_TexCoord) Smooth - Decorate 35(color) Smooth - Decorate 40(alpha) Smooth - Decorate 45(gl_FragColor) BuiltIn FragColor - Decorate 49(foo) Smooth + Name 9 "texColor" + Name 13 "texSampler2D" + Name 19 "gl_TexCoord" + Name 34 "color" + Name 39 "alpha" + Name 44 "gl_FragColor" + Name 48 "foo" + Decorate 19(gl_TexCoord) Smooth + Decorate 34(color) Smooth + Decorate 39(alpha) Smooth + Decorate 44(gl_FragColor) BuiltIn FragColor + Decorate 48(foo) Smooth 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypeImage 7(float) 2D sampled format:Unknown - 12: TypeSampledImage 11 - 13: TypePointer UniformConstant 12 -14(texSampler2D): 13(ptr) Variable UniformConstant - 16: TypeInt 32 0 - 17: 16(int) Constant 6 - 18: TypeArray 8(fvec4) 17 - 19: TypePointer Input 18 - 20(gl_TexCoord): 19(ptr) Variable Input - 21: TypeInt 32 1 - 22: 21(int) Constant 4 - 23: TypePointer Input 8(fvec4) - 26: 21(int) Constant 5 - 30: TypeVector 7(float) 2 - 35(color): 23(ptr) Variable Input - 39: TypePointer Input 7(float) - 40(alpha): 39(ptr) Variable Input - 44: TypePointer Output 8(fvec4) -45(gl_FragColor): 44(ptr) Variable Output - 46: 16(int) Constant 3 - 47: TypeArray 8(fvec4) 46 - 48: TypePointer Input 47 - 49(foo): 48(ptr) Variable Input - 50: 21(int) Constant 1 - 53: 21(int) Constant 0 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 +13(texSampler2D): 12(ptr) Variable UniformConstant + 15: TypeInt 32 0 + 16: 15(int) Constant 6 + 17: TypeArray 7(fvec4) 16 + 18: TypePointer Input 17 + 19(gl_TexCoord): 18(ptr) Variable Input + 20: TypeInt 32 1 + 21: 20(int) Constant 4 + 22: TypePointer Input 7(fvec4) + 25: 20(int) Constant 5 + 29: TypeVector 6(float) 2 + 34(color): 22(ptr) Variable Input + 38: TypePointer Input 6(float) + 39(alpha): 38(ptr) Variable Input + 43: TypePointer Output 7(fvec4) +44(gl_FragColor): 43(ptr) Variable Output + 45: 15(int) Constant 3 + 46: TypeArray 7(fvec4) 45 + 47: TypePointer Input 46 + 48(foo): 47(ptr) Variable Input + 49: 20(int) Constant 1 + 52: 20(int) Constant 0 4(main): 2 Function None 3 5: Label - 10(texColor): 9(ptr) Variable Function - 15: 12 Load 14(texSampler2D) - 24: 23(ptr) AccessChain 20(gl_TexCoord) 22 - 25: 8(fvec4) Load 24 - 27: 23(ptr) AccessChain 20(gl_TexCoord) 26 - 28: 8(fvec4) Load 27 - 29: 8(fvec4) FAdd 25 28 - 31: 7(float) CompositeExtract 29 0 - 32: 7(float) CompositeExtract 29 1 - 33: 30(fvec2) CompositeConstruct 31 32 - 34: 8(fvec4) ImageSampleImplicitLod 15 33 - Store 10(texColor) 34 - 36: 8(fvec4) Load 35(color) - 37: 8(fvec4) Load 10(texColor) - 38: 8(fvec4) FAdd 37 36 - Store 10(texColor) 38 - 41: 7(float) Load 40(alpha) - 42: 8(fvec4) Load 10(texColor) - 43: 8(fvec4) CompositeInsert 41 42 3 - Store 10(texColor) 43 - 51: 23(ptr) AccessChain 49(foo) 50 - 52: 8(fvec4) Load 51 - 54: 23(ptr) AccessChain 20(gl_TexCoord) 53 - 55: 8(fvec4) Load 54 - 56: 8(fvec4) FAdd 52 55 - 57: 23(ptr) AccessChain 20(gl_TexCoord) 22 - 58: 8(fvec4) Load 57 - 59: 8(fvec4) FAdd 56 58 - 60: 8(fvec4) Load 10(texColor) - 61: 8(fvec4) FAdd 59 60 - Store 45(gl_FragColor) 61 - Branch 6 - 6: Label + 9(texColor): 8(ptr) Variable Function + 14: 11 Load 13(texSampler2D) + 23: 22(ptr) AccessChain 19(gl_TexCoord) 21 + 24: 7(fvec4) Load 23 + 26: 22(ptr) AccessChain 19(gl_TexCoord) 25 + 27: 7(fvec4) Load 26 + 28: 7(fvec4) FAdd 24 27 + 30: 6(float) CompositeExtract 28 0 + 31: 6(float) CompositeExtract 28 1 + 32: 29(fvec2) CompositeConstruct 30 31 + 33: 7(fvec4) ImageSampleImplicitLod 14 32 + Store 9(texColor) 33 + 35: 7(fvec4) Load 34(color) + 36: 7(fvec4) Load 9(texColor) + 37: 7(fvec4) FAdd 36 35 + Store 9(texColor) 37 + 40: 6(float) Load 39(alpha) + 41: 7(fvec4) Load 9(texColor) + 42: 7(fvec4) CompositeInsert 40 41 3 + Store 9(texColor) 42 + 50: 22(ptr) AccessChain 48(foo) 49 + 51: 7(fvec4) Load 50 + 53: 22(ptr) AccessChain 19(gl_TexCoord) 52 + 54: 7(fvec4) Load 53 + 55: 7(fvec4) FAdd 51 54 + 56: 22(ptr) AccessChain 19(gl_TexCoord) 21 + 57: 7(fvec4) Load 56 + 58: 7(fvec4) FAdd 55 57 + 59: 7(fvec4) Load 9(texColor) + 60: 7(fvec4) FAdd 58 59 + Store 44(gl_FragColor) 60 Return FunctionEnd diff --git a/Test/baseResults/spv.varyingArrayIndirect.frag.out b/Test/baseResults/spv.varyingArrayIndirect.frag.out index 9dfe588f..a6db8960 100755 --- a/Test/baseResults/spv.varyingArrayIndirect.frag.out +++ b/Test/baseResults/spv.varyingArrayIndirect.frag.out @@ -10,7 +10,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 70 +// Id's are bound by 69 Source GLSL 130 Capability Shader @@ -19,92 +19,90 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "texColor" - Name 14 "texSampler2D" - Name 20 "userIn" - Name 23 "b" - Name 31 "gl_TexCoord" - Name 32 "a" - Name 46 "color" - Name 51 "alpha" - Name 56 "gl_FragColor" - Decorate 20(userIn) Smooth - Decorate 31(gl_TexCoord) Smooth - Decorate 46(color) Smooth - Decorate 51(alpha) Smooth - Decorate 56(gl_FragColor) BuiltIn FragColor + Name 9 "texColor" + Name 13 "texSampler2D" + Name 19 "userIn" + Name 22 "b" + Name 30 "gl_TexCoord" + Name 31 "a" + Name 45 "color" + Name 50 "alpha" + Name 55 "gl_FragColor" + Decorate 19(userIn) Smooth + Decorate 30(gl_TexCoord) Smooth + Decorate 45(color) Smooth + Decorate 50(alpha) Smooth + Decorate 55(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypeImage 7(float) 2D sampled format:Unknown - 12: TypeSampledImage 11 - 13: TypePointer UniformConstant 12 -14(texSampler2D): 13(ptr) Variable UniformConstant - 16: TypeInt 32 0 - 17: 16(int) Constant 2 - 18: TypeArray 8(fvec4) 17 - 19: TypePointer Input 18 - 20(userIn): 19(ptr) Variable Input - 21: TypeInt 32 1 - 22: TypePointer UniformConstant 21(int) - 23(b): 22(ptr) Variable UniformConstant - 25: TypePointer Input 8(fvec4) - 28: 16(int) Constant 6 - 29: TypeArray 8(fvec4) 28 - 30: TypePointer Input 29 - 31(gl_TexCoord): 30(ptr) Variable Input - 32(a): 22(ptr) Variable UniformConstant - 37: 21(int) Constant 5 - 41: TypeVector 7(float) 2 - 46(color): 25(ptr) Variable Input - 50: TypePointer Input 7(float) - 51(alpha): 50(ptr) Variable Input - 55: TypePointer Output 8(fvec4) -56(gl_FragColor): 55(ptr) Variable Output - 57: 21(int) Constant 0 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypeSampledImage 10 + 12: TypePointer UniformConstant 11 +13(texSampler2D): 12(ptr) Variable UniformConstant + 15: TypeInt 32 0 + 16: 15(int) Constant 2 + 17: TypeArray 7(fvec4) 16 + 18: TypePointer Input 17 + 19(userIn): 18(ptr) Variable Input + 20: TypeInt 32 1 + 21: TypePointer UniformConstant 20(int) + 22(b): 21(ptr) Variable UniformConstant + 24: TypePointer Input 7(fvec4) + 27: 15(int) Constant 6 + 28: TypeArray 7(fvec4) 27 + 29: TypePointer Input 28 + 30(gl_TexCoord): 29(ptr) Variable Input + 31(a): 21(ptr) Variable UniformConstant + 36: 20(int) Constant 5 + 40: TypeVector 6(float) 2 + 45(color): 24(ptr) Variable Input + 49: TypePointer Input 6(float) + 50(alpha): 49(ptr) Variable Input + 54: TypePointer Output 7(fvec4) +55(gl_FragColor): 54(ptr) Variable Output + 56: 20(int) Constant 0 4(main): 2 Function None 3 5: Label - 10(texColor): 9(ptr) Variable Function - 15: 12 Load 14(texSampler2D) - 24: 21(int) Load 23(b) - 26: 25(ptr) AccessChain 20(userIn) 24 - 27: 8(fvec4) Load 26 - 33: 21(int) Load 32(a) - 34: 25(ptr) AccessChain 31(gl_TexCoord) 33 - 35: 8(fvec4) Load 34 - 36: 8(fvec4) FAdd 27 35 - 38: 25(ptr) AccessChain 31(gl_TexCoord) 37 - 39: 8(fvec4) Load 38 - 40: 8(fvec4) FAdd 36 39 - 42: 7(float) CompositeExtract 40 0 - 43: 7(float) CompositeExtract 40 1 - 44: 41(fvec2) CompositeConstruct 42 43 - 45: 8(fvec4) ImageSampleImplicitLod 15 44 - Store 10(texColor) 45 - 47: 8(fvec4) Load 46(color) - 48: 8(fvec4) Load 10(texColor) - 49: 8(fvec4) FAdd 48 47 - Store 10(texColor) 49 - 52: 7(float) Load 51(alpha) - 53: 8(fvec4) Load 10(texColor) - 54: 8(fvec4) CompositeInsert 52 53 3 - Store 10(texColor) 54 - 58: 25(ptr) AccessChain 31(gl_TexCoord) 57 - 59: 8(fvec4) Load 58 - 60: 21(int) Load 23(b) - 61: 25(ptr) AccessChain 31(gl_TexCoord) 60 - 62: 8(fvec4) Load 61 - 63: 8(fvec4) FAdd 59 62 - 64: 8(fvec4) Load 10(texColor) - 65: 8(fvec4) FAdd 63 64 - 66: 21(int) Load 32(a) - 67: 25(ptr) AccessChain 20(userIn) 66 - 68: 8(fvec4) Load 67 - 69: 8(fvec4) FAdd 65 68 - Store 56(gl_FragColor) 69 - Branch 6 - 6: Label + 9(texColor): 8(ptr) Variable Function + 14: 11 Load 13(texSampler2D) + 23: 20(int) Load 22(b) + 25: 24(ptr) AccessChain 19(userIn) 23 + 26: 7(fvec4) Load 25 + 32: 20(int) Load 31(a) + 33: 24(ptr) AccessChain 30(gl_TexCoord) 32 + 34: 7(fvec4) Load 33 + 35: 7(fvec4) FAdd 26 34 + 37: 24(ptr) AccessChain 30(gl_TexCoord) 36 + 38: 7(fvec4) Load 37 + 39: 7(fvec4) FAdd 35 38 + 41: 6(float) CompositeExtract 39 0 + 42: 6(float) CompositeExtract 39 1 + 43: 40(fvec2) CompositeConstruct 41 42 + 44: 7(fvec4) ImageSampleImplicitLod 14 43 + Store 9(texColor) 44 + 46: 7(fvec4) Load 45(color) + 47: 7(fvec4) Load 9(texColor) + 48: 7(fvec4) FAdd 47 46 + Store 9(texColor) 48 + 51: 6(float) Load 50(alpha) + 52: 7(fvec4) Load 9(texColor) + 53: 7(fvec4) CompositeInsert 51 52 3 + Store 9(texColor) 53 + 57: 24(ptr) AccessChain 30(gl_TexCoord) 56 + 58: 7(fvec4) Load 57 + 59: 20(int) Load 22(b) + 60: 24(ptr) AccessChain 30(gl_TexCoord) 59 + 61: 7(fvec4) Load 60 + 62: 7(fvec4) FAdd 58 61 + 63: 7(fvec4) Load 9(texColor) + 64: 7(fvec4) FAdd 62 63 + 65: 20(int) Load 31(a) + 66: 24(ptr) AccessChain 19(userIn) 65 + 67: 7(fvec4) Load 66 + 68: 7(fvec4) FAdd 64 67 + Store 55(gl_FragColor) 68 Return FunctionEnd diff --git a/Test/baseResults/spv.voidFunction.frag.out b/Test/baseResults/spv.voidFunction.frag.out index 6e288deb..a5086d3a 100755 --- a/Test/baseResults/spv.voidFunction.frag.out +++ b/Test/baseResults/spv.voidFunction.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 43 +// Id's are bound by 42 Source GLSL 120 Capability Shader @@ -14,67 +14,65 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 7 "foo(" - Name 9 "foo2(" - Name 13 "bar" - Name 23 "outColor" - Name 25 "bigColor" - Name 36 "gl_FragColor" - Name 40 "BaseColor" - Name 42 "d" - Decorate 36(gl_FragColor) BuiltIn FragColor - Decorate 40(BaseColor) Smooth - Decorate 40(BaseColor) NoStaticUse - Decorate 42(d) NoStaticUse + Name 6 "foo(" + Name 8 "foo2(" + Name 12 "bar" + Name 22 "outColor" + Name 24 "bigColor" + Name 35 "gl_FragColor" + Name 39 "BaseColor" + Name 41 "d" + Decorate 35(gl_FragColor) BuiltIn FragColor + Decorate 39(BaseColor) Smooth + Decorate 39(BaseColor) NoStaticUse + Decorate 41(d) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 11: TypeFloat 32 - 12: TypePointer PrivateGlobal 11(float) - 13(bar): 12(ptr) Variable PrivateGlobal - 14: 11(float) Constant 1073741824 - 16: 11(float) Constant 1065353216 - 21: TypeVector 11(float) 4 - 22: TypePointer Function 21(fvec4) - 24: TypePointer UniformConstant 21(fvec4) - 25(bigColor): 24(ptr) Variable UniformConstant - 35: TypePointer Output 21(fvec4) -36(gl_FragColor): 35(ptr) Variable Output - 39: TypePointer Input 21(fvec4) - 40(BaseColor): 39(ptr) Variable Input - 41: TypePointer UniformConstant 11(float) - 42(d): 41(ptr) Variable UniformConstant + 10: TypeFloat 32 + 11: TypePointer PrivateGlobal 10(float) + 12(bar): 11(ptr) Variable PrivateGlobal + 13: 10(float) Constant 1073741824 + 15: 10(float) Constant 1065353216 + 20: TypeVector 10(float) 4 + 21: TypePointer Function 20(fvec4) + 23: TypePointer UniformConstant 20(fvec4) + 24(bigColor): 23(ptr) Variable UniformConstant + 34: TypePointer Output 20(fvec4) +35(gl_FragColor): 34(ptr) Variable Output + 38: TypePointer Input 20(fvec4) + 39(BaseColor): 38(ptr) Variable Input + 40: TypePointer UniformConstant 10(float) + 41(d): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 23(outColor): 22(ptr) Variable Function - Store 13(bar) 14 - 26: 21(fvec4) Load 25(bigColor) - Store 23(outColor) 26 - 27: 2 FunctionCall 7(foo() - 28: 2 FunctionCall 9(foo2() - 29: 11(float) Load 13(bar) - 30: 21(fvec4) Load 23(outColor) - 31: 11(float) CompositeExtract 30 0 - 32: 11(float) FAdd 31 29 - 33: 21(fvec4) Load 23(outColor) - 34: 21(fvec4) CompositeInsert 32 33 0 - Store 23(outColor) 34 - 37: 21(fvec4) Load 23(outColor) - Store 36(gl_FragColor) 37 - Branch 6 - 6: Label + 22(outColor): 21(ptr) Variable Function + Store 12(bar) 13 + 25: 20(fvec4) Load 24(bigColor) + Store 22(outColor) 25 + 26: 2 FunctionCall 6(foo() + 27: 2 FunctionCall 8(foo2() + 28: 10(float) Load 12(bar) + 29: 20(fvec4) Load 22(outColor) + 30: 10(float) CompositeExtract 29 0 + 31: 10(float) FAdd 30 28 + 32: 20(fvec4) Load 22(outColor) + 33: 20(fvec4) CompositeInsert 31 32 0 + Store 22(outColor) 33 + 36: 20(fvec4) Load 22(outColor) + Store 35(gl_FragColor) 36 Return FunctionEnd - 7(foo(): 2 Function None 3 - 8: Label - 15: 11(float) Load 13(bar) - 17: 11(float) FAdd 15 16 - Store 13(bar) 17 + 6(foo(): 2 Function None 3 + 7: Label + 14: 10(float) Load 12(bar) + 16: 10(float) FAdd 14 15 + Store 12(bar) 16 Return FunctionEnd - 9(foo2(): 2 Function None 3 - 10: Label - 19: 11(float) Load 13(bar) - 20: 11(float) FAdd 19 16 - Store 13(bar) 20 + 8(foo2(): 2 Function None 3 + 9: Label + 18: 10(float) Load 12(bar) + 19: 10(float) FAdd 18 15 + Store 12(bar) 19 Return FunctionEnd diff --git a/Test/baseResults/spv.while-continue-break.vert.out b/Test/baseResults/spv.while-continue-break.vert.out index 1dba3c8e..533e4cba 100755 --- a/Test/baseResults/spv.while-continue-break.vert.out +++ b/Test/baseResults/spv.while-continue-break.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 43 +// Id's are bound by 42 Source ESSL 300 Capability Shader @@ -13,78 +13,76 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "i" - Name 18 "A" - Name 26 "B" - Name 28 "C" - Name 38 "D" - Name 41 "gl_VertexID" - Name 42 "gl_InstanceID" - Decorate 41(gl_VertexID) BuiltIn VertexId - Decorate 41(gl_VertexID) NoStaticUse - Decorate 42(gl_InstanceID) BuiltIn InstanceId - Decorate 42(gl_InstanceID) NoStaticUse + Name 8 "i" + Name 17 "A" + Name 25 "B" + Name 27 "C" + Name 37 "D" + Name 40 "gl_VertexID" + Name 41 "gl_InstanceID" + Decorate 40(gl_VertexID) BuiltIn VertexId + Decorate 40(gl_VertexID) NoStaticUse + Decorate 41(gl_InstanceID) BuiltIn InstanceId + Decorate 41(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 0 - 15: 7(int) Constant 10 - 16: TypeBool - 19: 7(int) Constant 1 - 21: 7(int) Constant 2 - 30: 7(int) Constant 5 - 39: 7(int) Constant 3 - 40: TypePointer Input 7(int) - 41(gl_VertexID): 40(ptr) Variable Input -42(gl_InstanceID): 40(ptr) Variable Input + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 14: 6(int) Constant 10 + 15: TypeBool + 18: 6(int) Constant 1 + 20: 6(int) Constant 2 + 29: 6(int) Constant 5 + 38: 6(int) Constant 3 + 39: TypePointer Input 6(int) + 40(gl_VertexID): 39(ptr) Variable Input +41(gl_InstanceID): 39(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(i): 8(ptr) Variable Function - 18(A): 8(ptr) Variable Function - 26(B): 8(ptr) Variable Function - 28(C): 8(ptr) Variable Function - 38(D): 8(ptr) Variable Function - Store 9(i) 10 - Branch 11 - 11: Label - 14: 7(int) Load 9(i) - 17: 16(bool) SLessThan 14 15 - LoopMerge 12 None - BranchConditional 17 13 12 - 13: Label - Store 18(A) 19 - 20: 7(int) Load 9(i) - 22: 7(int) SMod 20 21 - 23: 16(bool) IEqual 22 10 - SelectionMerge 25 None - BranchConditional 23 24 25 - 24: Label - Store 26(B) 21 + 8(i): 7(ptr) Variable Function + 17(A): 7(ptr) Variable Function + 25(B): 7(ptr) Variable Function + 27(C): 7(ptr) Variable Function + 37(D): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + 13: 6(int) Load 8(i) + 16: 15(bool) SLessThan 13 14 + LoopMerge 11 None + BranchConditional 16 12 11 + 12: Label + Store 17(A) 18 + 19: 6(int) Load 8(i) + 21: 6(int) SMod 19 20 + 22: 15(bool) IEqual 21 9 + SelectionMerge 24 None + BranchConditional 22 23 24 + 23: Label + Store 25(B) 20 + Branch 10 + 26: Label + Store 27(C) 20 + Branch 24 + 24: Label + 28: 6(int) Load 8(i) + 30: 6(int) SMod 28 29 + 31: 15(bool) IEqual 30 9 + SelectionMerge 33 None + BranchConditional 31 32 33 + 32: Label + Store 25(B) 20 Branch 11 - 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 - 36: 7(int) Load 9(i) - 37: 7(int) IAdd 36 19 - Store 9(i) 37 - Branch 11 - 12: Label - Store 38(D) 39 - Branch 6 - 6: Label + 34: Label + Store 27(C) 20 + Branch 33 + 33: Label + 35: 6(int) Load 8(i) + 36: 6(int) IAdd 35 18 + Store 8(i) 36 + Branch 10 + 11: Label + Store 37(D) 38 Return FunctionEnd diff --git a/Test/baseResults/spv.while-simple.vert.out b/Test/baseResults/spv.while-simple.vert.out index b896e9f6..9b04a521 100755 --- a/Test/baseResults/spv.while-simple.vert.out +++ b/Test/baseResults/spv.while-simple.vert.out @@ -5,7 +5,7 @@ Linked vertex stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 24 +// Id's are bound by 23 Source ESSL 300 Capability Shader @@ -13,41 +13,39 @@ Linked vertex stage: MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" Name 4 "main" - Name 9 "i" - Name 22 "gl_VertexID" - Name 23 "gl_InstanceID" - Decorate 22(gl_VertexID) BuiltIn VertexId - Decorate 22(gl_VertexID) NoStaticUse - Decorate 23(gl_InstanceID) BuiltIn InstanceId - Decorate 23(gl_InstanceID) NoStaticUse + Name 8 "i" + Name 21 "gl_VertexID" + Name 22 "gl_InstanceID" + Decorate 21(gl_VertexID) BuiltIn VertexId + Decorate 21(gl_VertexID) NoStaticUse + Decorate 22(gl_InstanceID) BuiltIn InstanceId + Decorate 22(gl_InstanceID) NoStaticUse 2: TypeVoid 3: TypeFunction 2 - 7: TypeInt 32 1 - 8: TypePointer Function 7(int) - 10: 7(int) Constant 0 - 15: 7(int) Constant 10 - 16: TypeBool - 19: 7(int) Constant 1 - 21: TypePointer Input 7(int) - 22(gl_VertexID): 21(ptr) Variable Input -23(gl_InstanceID): 21(ptr) Variable Input + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 14: 6(int) Constant 10 + 15: TypeBool + 18: 6(int) Constant 1 + 20: TypePointer Input 6(int) + 21(gl_VertexID): 20(ptr) Variable Input +22(gl_InstanceID): 20(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 9(i): 8(ptr) Variable Function - Store 9(i) 10 - Branch 11 + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + 13: 6(int) Load 8(i) + 16: 15(bool) SLessThan 13 14 + LoopMerge 11 None + BranchConditional 16 12 11 + 12: Label + 17: 6(int) Load 8(i) + 19: 6(int) IAdd 17 18 + Store 8(i) 19 + Branch 10 11: Label - 14: 7(int) Load 9(i) - 17: 16(bool) SLessThan 14 15 - LoopMerge 12 None - BranchConditional 17 13 12 - 13: Label - 18: 7(int) Load 9(i) - 20: 7(int) IAdd 18 19 - Store 9(i) 20 - Branch 11 - 12: Label - Branch 6 - 6: Label Return FunctionEnd diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out index bb7d9137..f6e59e15 100755 --- a/Test/baseResults/spv.whileLoop.frag.out +++ b/Test/baseResults/spv.whileLoop.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 99 // Generated by (magic number): 51a00bb -// Id's are bound by 32 +// Id's are bound by 31 Source GLSL 110 Capability Shader @@ -14,50 +14,48 @@ Linked fragment stage: EntryPoint Fragment 4 "main" ExecutionMode 4 OriginLowerLeft Name 4 "main" - Name 10 "color" - Name 12 "BaseColor" - Name 20 "d" - Name 25 "bigColor" - Name 30 "gl_FragColor" - Decorate 12(BaseColor) Smooth - Decorate 30(gl_FragColor) BuiltIn FragColor + Name 9 "color" + Name 11 "BaseColor" + Name 19 "d" + Name 24 "bigColor" + Name 29 "gl_FragColor" + Decorate 11(BaseColor) Smooth + Decorate 29(gl_FragColor) BuiltIn FragColor 2: TypeVoid 3: TypeFunction 2 - 7: TypeFloat 32 - 8: TypeVector 7(float) 4 - 9: TypePointer Function 8(fvec4) - 11: TypePointer Input 8(fvec4) - 12(BaseColor): 11(ptr) Variable Input - 19: TypePointer UniformConstant 7(float) - 20(d): 19(ptr) Variable UniformConstant - 22: TypeBool - 24: TypePointer UniformConstant 8(fvec4) - 25(bigColor): 24(ptr) Variable UniformConstant - 29: TypePointer Output 8(fvec4) -30(gl_FragColor): 29(ptr) Variable Output + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 18: TypePointer UniformConstant 6(float) + 19(d): 18(ptr) Variable UniformConstant + 21: TypeBool + 23: TypePointer UniformConstant 7(fvec4) + 24(bigColor): 23(ptr) Variable UniformConstant + 28: TypePointer Output 7(fvec4) +29(gl_FragColor): 28(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 10(color): 9(ptr) Variable Function - 13: 8(fvec4) Load 12(BaseColor) - Store 10(color) 13 - Branch 14 + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + 16: 7(fvec4) Load 9(color) + 17: 6(float) CompositeExtract 16 0 + 20: 6(float) Load 19(d) + 22: 21(bool) FOrdLessThan 17 20 + LoopMerge 14 None + BranchConditional 22 15 14 + 15: Label + 25: 7(fvec4) Load 24(bigColor) + 26: 7(fvec4) Load 9(color) + 27: 7(fvec4) FAdd 26 25 + Store 9(color) 27 + Branch 13 14: Label - 17: 8(fvec4) Load 10(color) - 18: 7(float) CompositeExtract 17 0 - 21: 7(float) Load 20(d) - 23: 22(bool) FOrdLessThan 18 21 - LoopMerge 15 None - BranchConditional 23 16 15 - 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 - 31: 8(fvec4) Load 10(color) - Store 30(gl_FragColor) 31 - Branch 6 - 6: Label + 30: 7(fvec4) Load 9(color) + Store 29(gl_FragColor) 30 Return FunctionEnd diff --git a/Test/spv.queryL.frag b/Test/spv.queryL.frag new file mode 100644 index 00000000..6f4ad5c8 --- /dev/null +++ b/Test/spv.queryL.frag @@ -0,0 +1,64 @@ +#version 430 core + +uniform sampler1D samp1D; +uniform isampler2D isamp2D; +uniform usampler2D usamp2D; +uniform isampler3D isamp3D; +uniform usampler3D usamp3D; +uniform samplerCube sampCube; +uniform isamplerCube isampCube; +uniform isampler1DArray isamp1DA; +uniform sampler2DArray samp2DA; +uniform usampler2DArray usamp2DA; +uniform isamplerCubeArray isampCubeA; +uniform usamplerCubeArray usampCubeA; + +uniform sampler1DShadow samp1Ds; +uniform sampler2DShadow samp2Ds; +uniform samplerCubeShadow sampCubes; +uniform sampler1DArrayShadow samp1DAs; +uniform sampler2DArrayShadow samp2DAs; +uniform samplerCubeArrayShadow sampCubeAs; + +uniform samplerBuffer sampBuf; +uniform sampler2DRect sampRect; + +void main() +{ + vec2 lod; + float pf; + vec2 pf2; + vec3 pf3; + + lod = textureQueryLod(samp1D, pf); + lod += textureQueryLod(isamp2D, pf2); + lod += textureQueryLod(usamp3D, pf3); + lod += textureQueryLod(sampCube, pf3); + lod += textureQueryLod(isamp1DA, pf); + lod += textureQueryLod(usamp2DA, pf2); + lod += textureQueryLod(isampCubeA, pf3); + + lod += textureQueryLod(samp1Ds, pf); + lod += textureQueryLod(samp2Ds, pf2); + lod += textureQueryLod(sampCubes, pf3); + lod += textureQueryLod(samp1DAs, pf); + lod += textureQueryLod(samp2DAs, pf2); + lod += textureQueryLod(sampCubeAs, pf3); + + int levels; + + levels = textureQueryLevels(samp1D); + levels += textureQueryLevels(usamp2D); + levels += textureQueryLevels(isamp3D); + levels += textureQueryLevels(isampCube); + levels += textureQueryLevels(isamp1DA); + levels += textureQueryLevels(samp2DA); + levels += textureQueryLevels(usampCubeA); + + levels = textureQueryLevels(samp1Ds); + levels += textureQueryLevels(samp2Ds); + levels += textureQueryLevels(sampCubes); + levels += textureQueryLevels(samp1DAs); + levels += textureQueryLevels(samp2DAs); + levels += textureQueryLevels(sampCubeAs); +} diff --git a/Test/test-spirv-list b/Test/test-spirv-list index a7d8c8de..bddd8aa8 100644 --- a/Test/test-spirv-list +++ b/Test/test-spirv-list @@ -80,3 +80,4 @@ spv.voidFunction.frag spv.whileLoop.frag spv.atomic.comp spv.AofA.frag +spv.queryL.frag diff --git a/Todo.txt b/Todo.txt index d10fd6ee..57d1a8fc 100644 --- a/Todo.txt +++ b/Todo.txt @@ -8,27 +8,27 @@ Key: Summary of main missing features: AEP - - GL_KHR_blend_equation_advanced - - GL_OES_sample_variables - - GL_OES_shader_image_atomic - - GL_OES_shader_multisample_interpolation - - GL_OES_texture_storage_multisample_2d_array + + GL_KHR_blend_equation_advanced + + GL_OES_sample_variables + + GL_OES_shader_image_atomic + + GL_OES_shader_multisample_interpolation + + GL_OES_texture_storage_multisample_2d_array + GL_EXT_geometry_shader + GL_EXT_geometry_point_size + GL_EXT_gpu_shader5 - - GL_EXT_primitive_bounding_box + + GL_EXT_primitive_bounding_box + GL_EXT_shader_io_blocks + GL_EXT_tessellation_shader + GL_EXT_tessellation_point_size - - GL_EXT_texture_buffer - - GL_EXT_texture_cube_map_array + + GL_EXT_texture_buffer + + GL_EXT_texture_cube_map_array Missing features in ES 3.1 - [johnkslang] Arrays of arrays - - .length() on run-time array + + Arrays of arrays + + .length() on run-time array Missing desktop features that are in EAP - - per-sample shading + + per-sample shading - "precise" Missing desktop features, non AEP @@ -36,7 +36,7 @@ Missing desktop features, non AEP - built-in functions for type 'double' - second-generation function-overloading disambiguation algorithm (version 400) - Preprocessor token pasting (##), ## does macro expansion after pasting not before - - textureQueryLevels and textureQueryLod + + textureQueryLevels and textureQueryLod Bugs - implicitly-sized gl_ClipDistance[] (at least in tessellation shaders) with sizes greater than one are not getting sizes greater than one @@ -196,7 +196,7 @@ Shader Functionality to Implement/Finish + bitfieldExtract() and bitfieldInsert() + bitfieldReverse() + bitCount(), findLSB(), andfindMSB() - - New built-in to query LOD, textureQueryLod(). + + New built-in to query LOD, textureQueryLod(). - New overloaded function matching algorithm, handling selection from many valid multiple choices. + Texture gather functions that return four texels with a single call. + textureGather() @@ -286,7 +286,7 @@ Shader Functionality to Implement/Finish - For layout qualifiers, + make negative output locations a compile-time error, once integer expressions are allowed in layouts - make indexes outside the range [0,1] a compile-time error. - - Add textureQueryLevels() built-ins to query the number of mipmap levels, as per the + + Add textureQueryLevels() built-ins to query the number of mipmap levels, as per the GL_ARB_texture_query_levels extension. + Make gl_Layer and gl_ViewportIndex also be inputs to the fragment shader, as per the GL_ARB_fragment_layer_viewport extension. diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index c765d443..9d7c2807 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -513,8 +513,8 @@ public: int layoutOffset; int layoutAlign; - unsigned int layoutLocation : 7; - static const unsigned int layoutLocationEnd = 0x3F; + unsigned int layoutLocation :12; + static const unsigned int layoutLocationEnd = 0xFFF; unsigned int layoutComponent : 3; static const unsigned int layoutComponentEnd = 4; @@ -574,7 +574,7 @@ public: } bool hasLocation() const { - return layoutLocation != layoutLocationEnd; + return layoutLocation != layoutLocationEnd; } bool hasComponent() const { diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index cd2e5473..aa5dcd95 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // 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). -#define GLSLANG_REVISION "3.0.750" -#define GLSLANG_DATE "13-Sep-2015" +#define GLSLANG_REVISION "3.0.756" +#define GLSLANG_DATE "15-Sep-2015" diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 0411a46e..df7ab84d 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -1848,7 +1848,8 @@ void TBuiltIns::initialize(int version, EProfile profile) if (version >= 130) add2ndGenerationSamplingImaging(version, profile); - // printf("%s\n", commonBuiltins.c_str()); + //printf("%s\n", commonBuiltins.c_str()); + //printf("%s\n", stageBuiltins[EShLangFragment].c_str()); } // @@ -1946,21 +1947,21 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile) // void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int version, EProfile profile) { - // - // textureSize - // - if (sampler.image && ((profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 430))) return; + // + // textureSize() and imageSize() + // + + int sizeDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0) - (sampler.dim == EsdCube ? 1 : 0); if (profile == EEsProfile) commonBuiltins.append("highp "); - int dims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0) - (sampler.dim == EsdCube ? 1 : 0); - if (dims == 1) + if (sizeDims == 1) commonBuiltins.append("int"); else { commonBuiltins.append("ivec"); - commonBuiltins.append(postfixes[dims]); + commonBuiltins.append(postfixes[sizeDims]); } if (sampler.image) commonBuiltins.append(" imageSize(readonly writeonly volatile coherent "); @@ -1972,6 +1973,10 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int versi else commonBuiltins.append(");\n"); + // + // textureSamples() and imageSamples() + // + // GL_ARB_shader_texture_image_samples // TODO: spec issue? there are no memory qualifiers; how to query a writeonly/readonly image, etc? if (profile != EEsProfile && version >= 430 && sampler.ms) { @@ -1983,6 +1988,32 @@ void TBuiltIns::addQueryFunctions(TSampler sampler, TString& typeName, int versi commonBuiltins.append(typeName); commonBuiltins.append(");\n"); } + + // + // textureQueryLod(), fragment stage only + // + + if (profile != EEsProfile && version >= 400 && ! sampler.image && sampler.dim != EsdRect && ! sampler.ms && sampler.dim != EsdBuffer) { + stageBuiltins[EShLangFragment].append("vec2 textureQueryLod("); + stageBuiltins[EShLangFragment].append(typeName); + if (dimMap[sampler.dim] == 1) + stageBuiltins[EShLangFragment].append(", float"); + else { + stageBuiltins[EShLangFragment].append(", vec"); + stageBuiltins[EShLangFragment].append(postfixes[dimMap[sampler.dim]]); + } + stageBuiltins[EShLangFragment].append(");\n"); + } + + // + // textureQueryLevels() + // + + if (profile != EEsProfile && version >= 430 && ! sampler.image && sampler.dim != EsdRect && ! sampler.ms && sampler.dim != EsdBuffer) { + commonBuiltins.append("int textureQueryLevels("); + commonBuiltins.append(typeName); + commonBuiltins.append(");\n"); + } } //