From 778b876587c6d84f8c3876bdf2c80bfceb1fc749 Mon Sep 17 00:00:00 2001 From: Dejan Mircevski Date: Mon, 11 Jan 2016 16:42:47 -0500 Subject: [PATCH 01/48] Add .clang-format. This allows automatic source-file formatting with clang-format, freeing contributors from worrying about formatting while keeping the style consistent everywhere. --- .clang-format | 11 ++ SPIRV/SpvBuilder.cpp | 260 +++++++++++++++++++++---------------------- SPIRV/SpvBuilder.h | 161 +++++++++++++++------------ 3 files changed, 229 insertions(+), 203 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 00000000..2cb0f2f5 --- /dev/null +++ b/.clang-format @@ -0,0 +1,11 @@ +Language: Cpp +IndentWidth: 4 +BreakBeforeBraces: Custom +BraceWrapping: { AfterFunction: true } +IndentCaseLabels: false +ColumnLimit: 100 +AccessModifierOffset: -4 +AlignTrailingComments: true +AllowShortBlocksOnASingleLine: false +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false \ No newline at end of file diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 3915b66e..cecc735c 100755 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -1,11 +1,11 @@ // -//Copyright (C) 2014 LunarG, Inc. +// Copyright (C) 2014 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -//POSSIBILITY OF SUCH DAMAGE. +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. // // Author: John Kessenich, LunarG @@ -50,33 +50,30 @@ #include "SpvBuilder.h" #ifndef _WIN32 - #include +#include #endif namespace spv { -Builder::Builder(unsigned int magicNumber) : - source(SourceLanguageUnknown), - sourceVersion(0), - addressModel(AddressingModelLogical), - memoryModel(MemoryModelGLSL450), - builderNumber(magicNumber), - buildPoint(0), - uniqueId(0), - mainFunction(0) +Builder::Builder(unsigned int magicNumber) + : source(SourceLanguageUnknown), + sourceVersion(0), + addressModel(AddressingModelLogical), + memoryModel(MemoryModelGLSL450), + builderNumber(magicNumber), + buildPoint(0), + uniqueId(0), + mainFunction(0) { clearAccessChain(); } -Builder::~Builder() -{ -} - +Builder::~Builder() {} Id Builder::import(const char* name) { Instruction* import = new Instruction(getUniqueId(), NoType, OpExtInstImport); import->addStringOperand(name); - + imports.push_back(import); return import->getResultId(); } @@ -219,8 +216,7 @@ Id Builder::makeStructResultType(Id type0, Id type1) type = groupedTypes[OpTypeStruct][t]; if (type->getNumOperands() != 2) continue; - if (type->getIdOperand(0) != type0 || - type->getIdOperand(1) != type1) + if (type->getIdOperand(0) != type0 || type->getIdOperand(1) != type1) continue; return type->getResultId(); } @@ -239,8 +235,7 @@ Id Builder::makeVectorType(Id component, int size) Instruction* type; for (int t = 0; t < (int)groupedTypes[OpTypeVector].size(); ++t) { type = groupedTypes[OpTypeVector][t]; - if (type->getIdOperand(0) == component && - type->getImmediateOperand(1) == (unsigned)size) + if (type->getIdOperand(0) == component && type->getImmediateOperand(1) == (unsigned)size) return type->getResultId(); } @@ -265,8 +260,7 @@ Id Builder::makeMatrixType(Id component, int cols, int rows) Instruction* type; for (int t = 0; t < (int)groupedTypes[OpTypeMatrix].size(); ++t) { type = groupedTypes[OpTypeMatrix][t]; - if (type->getIdOperand(0) == column && - type->getImmediateOperand(1) == (unsigned)cols) + if (type->getIdOperand(0) == column && type->getImmediateOperand(1) == (unsigned)cols) return type->getResultId(); } @@ -294,8 +288,7 @@ Id Builder::makeArrayType(Id element, unsigned size, int stride) // try to find existing type for (int t = 0; t < (int)groupedTypes[OpTypeArray].size(); ++t) { type = groupedTypes[OpTypeArray][t]; - if (type->getIdOperand(0) == element && - type->getIdOperand(1) == sizeId) + if (type->getIdOperand(0) == element && type->getIdOperand(1) == sizeId) return type->getResultId(); } } @@ -327,7 +320,8 @@ Id Builder::makeFunctionType(Id returnType, std::vector& paramTypes) Instruction* type; for (int t = 0; t < (int)groupedTypes[OpTypeFunction].size(); ++t) { type = groupedTypes[OpTypeFunction][t]; - if (type->getIdOperand(0) != returnType || (int)paramTypes.size() != type->getNumOperands() - 1) + if (type->getIdOperand(0) != returnType || + (int)paramTypes.size() != type->getNumOperands() - 1) continue; bool mismatch = false; for (int p = 0; p < (int)paramTypes.size(); ++p) { @@ -336,7 +330,7 @@ Id Builder::makeFunctionType(Id returnType, std::vector& paramTypes) break; } } - if (! mismatch) + if (!mismatch) return type->getResultId(); } @@ -352,7 +346,8 @@ Id Builder::makeFunctionType(Id returnType, std::vector& paramTypes) return type->getResultId(); } -Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format) +Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, + unsigned sampled, ImageFormat format) { // try to find it Instruction* type; @@ -360,9 +355,9 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo type = groupedTypes[OpTypeImage][t]; if (type->getIdOperand(0) == sampledType && type->getImmediateOperand(1) == (unsigned int)dim && - type->getImmediateOperand(2) == ( depth ? 1u : 0u) && + type->getImmediateOperand(2) == (depth ? 1u : 0u) && type->getImmediateOperand(3) == (arrayed ? 1u : 0u) && - type->getImmediateOperand(4) == ( ms ? 1u : 0u) && + type->getImmediateOperand(4) == (ms ? 1u : 0u) && type->getImmediateOperand(5) == sampled && type->getImmediateOperand(6) == (unsigned int)format) return type->getResultId(); @@ -371,10 +366,10 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo // not found, make it type = new Instruction(getUniqueId(), NoType, OpTypeImage); type->addIdOperand(sampledType); - type->addImmediateOperand( dim); - type->addImmediateOperand( depth ? 1 : 0); + type->addImmediateOperand(dim); + type->addImmediateOperand(depth ? 1 : 0); type->addImmediateOperand(arrayed ? 1 : 0); - type->addImmediateOperand( ms ? 1 : 0); + type->addImmediateOperand(ms ? 1 : 0); type->addImmediateOperand(sampled); type->addImmediateOperand((unsigned int)format); @@ -419,8 +414,7 @@ Op Builder::getMostBasicTypeClass(Id typeId) const Instruction* instr = module.getInstruction(typeId); Op typeClass = instr->getOpCode(); - switch (typeClass) - { + switch (typeClass) { case OpTypeVoid: case OpTypeBool: case OpTypeInt: @@ -444,8 +438,7 @@ int Builder::getNumTypeConstituents(Id typeId) const { Instruction* instr = module.getInstruction(typeId); - switch (instr->getOpCode()) - { + switch (instr->getOpCode()) { case OpTypeBool: case OpTypeInt: case OpTypeFloat: @@ -470,8 +463,7 @@ Id Builder::getScalarTypeId(Id typeId) const Instruction* instr = module.getInstruction(typeId); Op typeClass = instr->getOpCode(); - switch (typeClass) - { + switch (typeClass) { case OpTypeVoid: case OpTypeBool: case OpTypeInt: @@ -496,8 +488,7 @@ Id Builder::getContainedTypeId(Id typeId, int member) const Instruction* instr = module.getInstruction(typeId); Op typeClass = instr->getOpCode(); - switch (typeClass) - { + switch (typeClass) { case OpTypeVector: case OpTypeMatrix: case OpTypeArray: @@ -514,11 +505,7 @@ Id Builder::getContainedTypeId(Id typeId, int member) const } // Return the immediately contained type of a given composite type. -Id Builder::getContainedTypeId(Id typeId) const -{ - return getContainedTypeId(typeId, 0); -} - +Id Builder::getContainedTypeId(Id typeId) const { return getContainedTypeId(typeId, 0); } // See if a scalar constant of this type has already been created, so it // can be reused rather than duplicated. (Required by the specification). Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const @@ -526,8 +513,7 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned valu Instruction* constant; for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { constant = groupedConstants[typeClass][i]; - if (constant->getOpCode() == opcode && - constant->getTypeId() == typeId && + if (constant->getOpCode() == opcode && constant->getTypeId() == typeId && constant->getImmediateOperand(0) == value) return constant->getResultId(); } @@ -541,10 +527,8 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, Instruction* constant; for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { constant = groupedConstants[typeClass][i]; - if (constant->getOpCode() == opcode && - constant->getTypeId() == typeId && - constant->getImmediateOperand(0) == v1 && - constant->getImmediateOperand(1) == v2) + if (constant->getOpCode() == opcode && constant->getTypeId() == typeId && + constant->getImmediateOperand(0) == v1 && constant->getImmediateOperand(1) == v2) return constant->getResultId(); } @@ -557,7 +541,7 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, bool Builder::isConstantOpCode(Op opcode) const { switch (opcode) { - case OpUndef: + case OpUndef: case OpConstantTrue: case OpConstantFalse: case OpConstant: @@ -579,7 +563,8 @@ Id Builder::makeBoolConstant(bool b, bool specConstant) { Id typeId = makeBoolType(); Instruction* constant; - Op opcode = specConstant ? (b ? OpSpecConstantTrue : OpSpecConstantFalse) : (b ? OpConstantTrue : OpConstantFalse); + Op opcode = specConstant ? (b ? OpSpecConstantTrue : OpSpecConstantFalse) + : (b ? OpConstantTrue : OpConstantFalse); // See if we already made it Id existing = 0; @@ -675,7 +660,7 @@ Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const break; } } - if (! mismatch) { + if (!mismatch) { found = true; break; } @@ -728,7 +713,8 @@ Instruction* Builder::addEntryPoint(ExecutionModel model, Function* function, co } // Currently relying on the fact that all 'value' of interest are small non-negative values. -void Builder::addExecutionMode(Function* entryPoint, ExecutionMode mode, int value1, int value2, int value3) +void Builder::addExecutionMode(Function* entryPoint, ExecutionMode mode, int value1, int value2, + int value3) { Instruction* instr = new Instruction(OpExecutionMode); instr->addIdOperand(entryPoint->getId()); @@ -801,7 +787,7 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat // Comments in header Function* Builder::makeMain() { - assert(! mainFunction); + assert(!mainFunction); Block* entry; std::vector params; @@ -812,7 +798,8 @@ Function* Builder::makeMain() } // Comments in header -Function* Builder::makeFunctionEntry(Id returnType, const char* name, std::vector& paramTypes, Block **entry) +Function* Builder::makeFunctionEntry(Id returnType, const char* name, std::vector& paramTypes, + Block** entry) { Id typeId = makeFunctionType(returnType, paramTypes); Id firstParamId = paramTypes.size() == 0 ? 0 : getUniqueIds((int)paramTypes.size()); @@ -840,7 +827,7 @@ void Builder::makeReturn(bool implicit, Id retVal) } else buildPoint->addInstruction(new Instruction(NoResult, NoType, OpReturn)); - if (! implicit) + if (!implicit) createAndSetNoPredecessorBlock("post-return"); } @@ -852,8 +839,7 @@ void Builder::leaveFunction() assert(block); // If our function did not contain a return, add a return void now. - if (! block->isTerminated()) { - + if (!block->isTerminated()) { // Whether we're in an unreachable (non-entry) block. bool unreachable = function.getEntryBlock() != block && block->getNumPredecessors() == 0; @@ -910,9 +896,9 @@ Id Builder::createVariable(StorageClass storageClass, Id type, const char* name) // Comments in header Id Builder::createUndefined(Id type) { - Instruction* inst = new Instruction(getUniqueId(), type, OpUndef); - buildPoint->addInstruction(inst); - return inst->getResultId(); + Instruction* inst = new Instruction(getUniqueId(), type, OpUndef); + buildPoint->addInstruction(inst); + return inst->getResultId(); } // Comments in header @@ -1002,7 +988,8 @@ Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, unsigned i return insert->getResultId(); } -Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, std::vector& indexes) +Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, + std::vector& indexes) { Instruction* insert = new Instruction(getUniqueId(), typeId, OpCompositeInsert); insert->addIdOperand(object); @@ -1182,9 +1169,11 @@ void Builder::promoteScalar(Decoration precision, Id& left, Id& right) int direction = getNumComponents(right) - getNumComponents(left); if (direction > 0) - left = smearScalar(precision, left, makeVectorType(getTypeId(left), getNumComponents(right))); + left = + smearScalar(precision, left, makeVectorType(getTypeId(left), getNumComponents(right))); else if (direction < 0) - right = smearScalar(precision, right, makeVectorType(getTypeId(right), getNumComponents(left))); + right = + smearScalar(precision, right, makeVectorType(getTypeId(right), getNumComponents(left))); return; } @@ -1208,7 +1197,8 @@ Id Builder::smearScalar(Decoration /*precision*/, Id scalar, Id vectorType) } // Comments in header -Id Builder::createBuiltinCall(Decoration /*precision*/, Id resultType, Id builtins, int entryPoint, std::vector& args) +Id Builder::createBuiltinCall(Decoration /*precision*/, Id resultType, Id builtins, int entryPoint, + std::vector& args) { Instruction* inst = new Instruction(getUniqueId(), resultType, OpExtInst); inst->addIdOperand(builtins); @@ -1222,7 +1212,8 @@ Id Builder::createBuiltinCall(Decoration /*precision*/, Id resultType, Id builti // Accept all parameters needed to create a texture instruction. // Create the correct instruction based on the inputs, and make the call. -Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, bool gather, const TextureParameters& parameters) +Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, + bool gather, const TextureParameters& parameters) { static const int maxTextureArgs = 10; Id texArgs[maxTextureArgs] = {}; @@ -1242,9 +1233,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, b // // Set up the optional arguments // - int optArgNum = numArgs; // track which operand, if it exists, is the mask of optional arguments - ++numArgs; // speculatively make room for the mask operand - ImageOperandsMask mask = ImageOperandsMaskNone; // the mask operand + int optArgNum = + numArgs; // track which operand, if it exists, is the mask of optional arguments + ++numArgs; // speculatively make room for the mask operand + ImageOperandsMask mask = ImageOperandsMaskNone; // the mask operand if (parameters.bias) { mask = (ImageOperandsMask)(mask | ImageOperandsBiasMask); texArgs[numArgs++] = parameters.bias; @@ -1322,7 +1314,7 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool fetch, b // This happens when a legacy shadow*() call is made, which // gets a vec4 back instead of a float. Id smearedType = resultType; - if (! isScalarType(resultType)) { + if (!isScalarType(resultType)) { switch (opCode) { case OpImageSampleDrefImplicitLod: case OpImageSampleDrefExplicitLod: @@ -1363,8 +1355,7 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter Id resultType = 0; switch (opCode) { case OpImageQuerySize: - case OpImageQuerySizeLod: - { + case OpImageQuerySizeLod: { int numComponents; switch (getTypeDimensionality(getImageType(parameters.sampler))) { case Dim1D: @@ -1480,7 +1471,8 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b if (constituent == 0) resultId = subResultId; else - resultId = createBinOp(equal ? OpLogicalAnd : OpLogicalOr, boolType, resultId, subResultId); + resultId = + createBinOp(equal ? OpLogicalAnd : OpLogicalOr, boolType, resultId, subResultId); } return resultId; @@ -1489,7 +1481,8 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b // OpCompositeConstruct Id Builder::createCompositeConstruct(Id typeId, std::vector& constituents) { - assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && getNumTypeConstituents(typeId) == (int)constituents.size())); + assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && + getNumTypeConstituents(typeId) == (int)constituents.size())); Instruction* op = new Instruction(getUniqueId(), typeId, OpCompositeConstruct); for (int c = 0; c < (int)constituents.size(); ++c) @@ -1514,7 +1507,7 @@ Id Builder::createConstructor(Decoration precision, const std::vector& sourc Id scalarTypeId = getScalarTypeId(resultTypeId); std::vector constituents; // accumulate the arguments for OpCompositeConstruct for (unsigned int i = 0; i < sources.size(); ++i) { - assert(! isAggregate(sources[i])); + assert(!isAggregate(sources[i])); unsigned int sourceSize = getNumComponents(sources[i]); unsigned int sourcesToUse = sourceSize; if (sourcesToUse + targetComponent > numTargetComponents) @@ -1548,7 +1541,8 @@ Id Builder::createConstructor(Decoration precision, const std::vector& sourc } // Comments in header -Id Builder::createMatrixConstructor(Decoration precision, const std::vector& sources, Id resultTypeId) +Id Builder::createMatrixConstructor(Decoration precision, const std::vector& sources, + Id resultTypeId) { Id componentTypeId = getScalarTypeId(resultTypeId); int numCols = getTypeNumColumns(resultTypeId); @@ -1562,7 +1556,7 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& // initialize the array to the identity matrix Id ids[maxMatrixSize][maxMatrixSize]; - Id one = makeFloatConstant(1.0); + Id one = makeFloatConstant(1.0); Id zero = makeFloatConstant(0.0); for (int col = 0; col < 4; ++col) { for (int row = 0; row < 4; ++row) { @@ -1579,7 +1573,8 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& for (int col = 0; col < 4; ++col) ids[col][col] = sources[0]; } else if (isMatrix(sources[0])) { - // constructing from another matrix; copy over the parts that exist in both the argument and constructee + // constructing from another matrix; copy over the parts that exist in both the argument and + // constructee Id matrix = sources[0]; int minCols = std::min(numCols, getNumColumns(matrix)); int minRows = std::min(numRows, getNumRows(matrix)); @@ -1614,7 +1609,6 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } } - // Step 2: Construct a matrix from that array. // First make the column vectors, then make the matrix. @@ -1633,10 +1627,7 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } // Comments in header -Builder::If::If(Id cond, Builder& gb) : - builder(gb), - condition(cond), - elseBlock(0) +Builder::If::If(Id cond, Builder& gb) : builder(gb), condition(cond), elseBlock(0) { function = &builder.getBuildPoint()->getParent(); @@ -1688,7 +1679,8 @@ void Builder::If::makeEndIf() } // Comments in header -void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseValues, std::vector& valueIndexToSegment, int defaultSegment, +void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseValues, + std::vector& valueIndexToSegment, int defaultSegment, std::vector& segmentBlocks) { Function& function = buildPoint->getParent(); @@ -1705,7 +1697,8 @@ void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseVal // make the switch instruction Instruction* switchInst = new Instruction(NoResult, NoType, OpSwitch); switchInst->addIdOperand(selector); - switchInst->addIdOperand(defaultSegment >= 0 ? segmentBlocks[defaultSegment]->getId() : mergeBlock->getId()); + switchInst->addIdOperand(defaultSegment >= 0 ? segmentBlocks[defaultSegment]->getId() + : mergeBlock->getId()); for (int i = 0; i < (int)caseValues.size(); ++i) { switchInst->addImmediateOperand(caseValues[i]); switchInst->addIdOperand(segmentBlocks[valueIndexToSegment[i]]->getId()); @@ -1730,7 +1723,7 @@ void Builder::nextSwitchSegment(std::vector& segmentBlock, int nextSegme int lastSegment = nextSegment - 1; if (lastSegment >= 0) { // Close out previous segment by jumping, if necessary, to next segment - if (! buildPoint->isTerminated()) + if (!buildPoint->isTerminated()) createBranch(segmentBlock[nextSegment]); } Block* block = segmentBlock[nextSegment]; @@ -1742,7 +1735,7 @@ void Builder::nextSwitchSegment(std::vector& segmentBlock, int nextSegme void Builder::endSwitch(std::vector& /*segmentBlock*/) { // Close out previous segment by jumping, if necessary, to next segment - if (! buildPoint->isTerminated()) + if (!buildPoint->isTerminated()) addSwitchBreak(); switchMerges.top()->getParent().addBlock(switchMerges.top()); @@ -1944,13 +1937,15 @@ void Builder::accessChainStore(Id rvalue) Id source = NoResult; if (accessChain.swizzle.size()) { Id tempBaseId = createLoad(base); - source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle); + source = + createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle); } // dynamic component selection if (accessChain.component != NoResult) { Id tempBaseId = (source == NoResult) ? createLoad(base) : source; - source = createVectorInsertDynamic(tempBaseId, getTypeId(tempBaseId), rvalue, accessChain.component); + source = createVectorInsertDynamic(tempBaseId, getTypeId(tempBaseId), rvalue, + accessChain.component); } if (source == NoResult) @@ -1968,8 +1963,10 @@ Id Builder::accessChainLoad(Id resultType) // transfer access chain, but keep it static, so we can stay in registers transferAccessChainSwizzle(false); if (accessChain.indexChain.size() > 0) { - Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType; - + Id swizzleBase = accessChain.preSwizzleBaseType != NoType + ? accessChain.preSwizzleBaseType + : resultType; + // if all the accesses are constants, we can use OpCompositeExtract std::vector indexes; bool constant = true; @@ -1986,7 +1983,8 @@ Id Builder::accessChainLoad(Id resultType) id = createCompositeExtract(accessChain.base, swizzleBase, indexes); else { // make a new function variable for this r-value - Id lValue = createVariable(StorageClassFunction, getTypeId(accessChain.base), "indexable"); + Id lValue = + createVariable(StorageClassFunction, getTypeId(accessChain.base), "indexable"); // store into it createStore(accessChain.base, lValue); @@ -2111,8 +2109,10 @@ Id Builder::collapseAccessChain() if (accessChain.indexChain.size() > 0) { if (accessChain.instr == 0) { - StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); - accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain); + StorageClass storageClass = + (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); + accessChain.instr = + createAccessChain(storageClass, accessChain.base, accessChain.indexChain); } return accessChain.instr; @@ -2194,7 +2194,7 @@ void Builder::createAndSetNoPredecessorBlock(const char* /*name*/) buildPoint->getParent().addBlock(block); setBuildPoint(block); - //if (name) + // if (name) // addName(block->getId(), name); } @@ -2235,7 +2235,8 @@ void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* els elseBlock->addPredecessor(buildPoint); } -void Builder::dumpInstructions(std::vector& out, const std::vector& instructions) const +void Builder::dumpInstructions(std::vector& out, + const std::vector& instructions) const { for (int i = 0; i < (int)instructions.size(); ++i) { instructions[i]->dump(out); @@ -2252,29 +2253,24 @@ void TbdFunctionality(const char* tbd) } } -void MissingFunctionality(const char* fun) -{ - printf("Missing functionality: %s\n", fun); -} - +void MissingFunctionality(const char* fun) { printf("Missing functionality: %s\n", fun); } Builder::Loop::Loop(Builder& builder, bool testFirstArg) - : function(&builder.getBuildPoint()->getParent()), - header(new Block(builder.getUniqueId(), *function)), - merge(new Block(builder.getUniqueId(), *function)), - body(new Block(builder.getUniqueId(), *function)), - testFirst(testFirstArg), - isFirstIteration(nullptr) + : function(&builder.getBuildPoint()->getParent()), + header(new Block(builder.getUniqueId(), *function)), + merge(new Block(builder.getUniqueId(), *function)), + body(new Block(builder.getUniqueId(), *function)), + testFirst(testFirstArg), + isFirstIteration(nullptr) { - if (!testFirst) - { -// You may be tempted to rewrite this as -// new Instruction(builder.getUniqueId(), builder.makeBoolType(), OpPhi); -// This will cause subtle test failures because builder.getUniqueId(), -// and builder.makeBoolType() can then get run in a compiler-specific -// order making tests fail for certain configurations. + if (!testFirst) { + // You may be tempted to rewrite this as + // new Instruction(builder.getUniqueId(), builder.makeBoolType(), OpPhi); + // This will cause subtle test failures because builder.getUniqueId(), + // and builder.makeBoolType() can then get run in a compiler-specific + // order making tests fail for certain configurations. Id instructionId = builder.getUniqueId(); isFirstIteration = new Instruction(instructionId, builder.makeBoolType(), OpPhi); } } -}; // end spv namespace +}; // end spv namespace diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 7bf43962..bf2b2f27 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -1,11 +1,11 @@ // -//Copyright (C) 2014 LunarG, Inc. +// Copyright (C) 2014 LunarG, Inc. // -//All rights reserved. +// All rights reserved. // -//Redistribution and use in source and binary forms, with or without -//modification, are permitted provided that the following conditions -//are met: +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -19,18 +19,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -//POSSIBILITY OF SUCH DAMAGE. +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. // // Author: John Kessenich, LunarG @@ -52,8 +52,8 @@ #include "spvIR.h" #include -#include #include +#include namespace spv { @@ -78,10 +78,8 @@ public: } void addCapability(spv::Capability cap) { capabilities.push_back(cap); } - // To get a new for anything needing a new one. Id getUniqueId() { return ++uniqueId; } - // To get a set of new s, e.g., for a set of function parameters Id getUniqueIds(int numIds) { @@ -94,7 +92,7 @@ public: Id makeVoidType(); Id makeBoolType(); Id makePointer(StorageClass, Id type); - Id makeIntegerType(int width, bool hasSign); // generic + Id makeIntegerType(int width, bool hasSign); // generic Id makeIntType(int width) { return makeIntegerType(width, true); } Id makeUintType(int width) { return makeIntegerType(width, false); } Id makeFloatType(int width); @@ -105,7 +103,8 @@ public: Id makeArrayType(Id element, unsigned size, int stride); // 0 means no stride decoration Id makeRuntimeArray(Id element); Id makeFunctionType(Id returnType, std::vector& paramTypes); - Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format); + Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, + ImageFormat format); Id makeSamplerType(); Id makeSampledImageType(Id imageType); @@ -122,31 +121,42 @@ public: Id getContainedTypeId(Id typeId) const; Id getContainedTypeId(Id typeId, int) const; StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); } - - bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } - bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } - bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); } - bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); } - bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } + bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } + bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } + bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); } + bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); } + bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); } - - bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } - bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } - bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; } - bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } - bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; } - bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; } - bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; } - bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); } - bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; } - bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } + bool isBoolType(Id typeId) const + { + return groupedTypes[OpTypeBool].size() > 0 && + typeId == groupedTypes[OpTypeBool].back()->getResultId(); + } + bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } + bool isScalarType(Id typeId) const + { + return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || + getTypeClass(typeId) == OpTypeBool; + } + bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } + bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; } + bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; } + bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; } + bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); } + bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; } + bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; } - bool isConstantOpCode(Op opcode) const; bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); } bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; } - unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); } - StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); } + unsigned int getConstantScalar(Id resultId) const + { + return module.getInstruction(resultId)->getImmediateOperand(0); + } + StorageClass getStorageClass(Id resultId) const + { + return getTypeStorageClass(getTypeId(resultId)); + } int getTypeNumColumns(Id typeId) const { @@ -160,7 +170,6 @@ public: return getNumTypeComponents(getContainedTypeId(typeId)); } int getNumRows(Id resultId) const { return getTypeNumRows(getTypeId(resultId)); } - Dim getTypeDimensionality(Id typeId) const { assert(isImageType(typeId)); @@ -180,8 +189,14 @@ public: // For making new constants (will return old constant if the requested one was already made). Id makeBoolConstant(bool b, bool specConstant = false); - Id makeIntConstant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(32), (unsigned)i, specConstant); } - Id makeUintConstant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(32), u, specConstant); } + Id makeIntConstant(int i, bool specConstant = false) + { + return makeIntConstant(makeIntType(32), (unsigned)i, specConstant); + } + Id makeUintConstant(unsigned u, bool specConstant = false) + { + return makeIntConstant(makeUintType(32), u, specConstant); + } Id makeFloatConstant(float f, bool specConstant = false); Id makeDoubleConstant(double d, bool specConstant = false); @@ -190,7 +205,8 @@ public: // Methods for adding information outside the CFG. Instruction* addEntryPoint(ExecutionModel, Function*, const char* name); - void addExecutionMode(Function*, ExecutionMode mode, int value1 = -1, int value2 = -1, int value3 = -1); + void addExecutionMode(Function*, ExecutionMode mode, int value1 = -1, int value2 = -1, + int value3 = -1); void addName(Id, const char* name); void addMemberName(Id, int member, const char* name); void addLine(Id target, Id fileName, int line, int column); @@ -200,13 +216,13 @@ public: // At the end of what block do the next create*() instructions go? void setBuildPoint(Block* bp) { buildPoint = bp; } Block* getBuildPoint() const { return buildPoint; } - // Make the main function. Function* makeMain(); // 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); + Function* makeFunctionEntry(Id returnType, const char* name, std::vector& paramTypes, + Block** entry = 0); // 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. @@ -271,7 +287,7 @@ public: void setPrecision(Id /* value */, Decoration precision) { if (precision != NoPrecision) { - ;// TODO + ; // TODO } } @@ -282,10 +298,11 @@ public: // - promoteScalar(scalar, scalar) // do nothing // Other forms are not allowed. // - // Generally, the type of 'scalar' does not need to be the same type as the components in 'vector'. + // Generally, the type of 'scalar' does not need to be the same type as the components in + // 'vector'. // The type of the created vector is a vector of components of the same type as the scalar. // - // Note: One of the arguments will change, with the result coming back that way rather than + // Note: One of the arguments will change, with the result coming back that way rather than // through the return value. void promoteScalar(Decoration precision, Id& left, Id& right); @@ -295,7 +312,8 @@ public: Id smearScalar(Decoration precision, Id scalarVal, Id vectorType); // Create a call to a built-in function. - Id createBuiltinCall(Decoration precision, Id resultType, Id builtins, int entryPoint, std::vector& args); + Id createBuiltinCall(Decoration precision, Id resultType, Id builtins, int entryPoint, + std::vector& args); // List of parameters used to create a texture operation struct TextureParameters { @@ -313,7 +331,8 @@ public: }; // Select the correct texture operation based on all inputs, and emit the correct instruction - Id createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, bool gather, const TextureParameters&); + Id createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, bool gather, + const TextureParameters&); // Emit the OpTextureQuery* instruction that was passed in. // Figure out the right return value and type, and return it. @@ -325,7 +344,8 @@ public: Id createBitFieldInsertCall(Decoration precision, Id, Id, Id, Id); // Reduction comparision for composites: For equal and not-equal resulting in a scalar. - Id createCompositeCompare(Decoration precision, Id, Id, bool /* true if for equal, false if for not-equal */); + Id createCompositeCompare(Decoration precision, Id, Id, + bool /* true if for equal, false if for not-equal */); // OpCompositeConstruct Id createCompositeConstruct(Id typeId, std::vector& constituents); @@ -334,14 +354,14 @@ public: Id createConstructor(Decoration precision, const std::vector& sources, Id resultTypeId); // matrix constructor - Id createMatrixConstructor(Decoration precision, const std::vector& sources, Id constructee); + Id createMatrixConstructor(Decoration precision, const std::vector& sources, + Id constructee); // Helper to use for building nested control flow with if-then-else. class If { public: If(Id condition, Builder& builder); ~If() {} - void makeBeginElse(); void makeEndIf(); @@ -370,7 +390,8 @@ public: // Returns the right set of basic blocks to start each code segment with, so that the caller's // recursion stack can hold the memory for it. // - void makeSwitch(Id condition, int numSegments, std::vector& caseValues, std::vector& valueToSegment, int defaultSegment, + void makeSwitch(Id condition, int numSegments, std::vector& caseValues, + std::vector& valueToSegment, int defaultSegment, std::vector& segmentBB); // return argument // Add a branch to the innermost switch's merge block. @@ -440,13 +461,16 @@ public: // struct AccessChain { - Id base; // for l-values, pointer to the base object, for r-values, the base object + Id base; // for l-values, pointer to the base object, for r-values, the base object std::vector indexChain; - Id instr; // cache the instruction that generates this access chain - std::vector swizzle; // each std::vector element selects the next GLSL component number - Id component; // a dynamic component index, can coexist with a swizzle, done after the swizzle, NoResult if not present - Id preSwizzleBaseType; // dereferenced type, before swizzle or component is applied; NoType unless a swizzle or component is present - bool isRValue; // true if 'base' is an r-value, otherwise, base is an l-value + Id instr; // cache the instruction that generates this access chain + std::vector + swizzle; // each std::vector element selects the next GLSL component number + Id component; // a dynamic component index, can coexist with a swizzle, done after the + // swizzle, NoResult if not present + Id preSwizzleBaseType; // dereferenced type, before swizzle or component is applied; NoType + // unless a swizzle or component is present + bool isRValue; // true if 'base' is an r-value, otherwise, base is an l-value }; // @@ -457,7 +481,6 @@ public: // for external save and restore AccessChain getAccessChain() { return accessChain; } void setAccessChain(AccessChain newChain) { accessChain = newChain; } - // clear accessChain void clearAccessChain(); @@ -476,11 +499,7 @@ public: } // push offset onto the end of the chain - void accessChainPush(Id offset) - { - accessChain.indexChain.push_back(offset); - } - + void accessChainPush(Id offset) { accessChain.indexChain.push_back(offset); } // push new swizzle onto the end of any existing swizzle, merging into a single swizzle void accessChainPushSwizzle(std::vector& swizzle, Id preSwizzleBaseType); @@ -518,7 +537,7 @@ protected: void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock); void dumpInstructions(std::vector&, const std::vector&) const; - struct Loop; // Defined below. + struct Loop; // Defined below. void createBranchToLoopHeaderFromInside(const Loop& loop); SourceLanguage source; @@ -544,7 +563,7 @@ protected: std::vector constantsTypesGlobals; std::vector externals; - // not output, internally used for quick & dirty canonical (unique) creation + // not output, internally used for quick & dirty canonical (unique) creation std::vector groupedConstants[OpConstant]; // all types appear before OpConstant std::vector groupedTypes[OpConstant]; @@ -602,4 +621,4 @@ void MissingFunctionality(const char*); }; // end spv namespace -#endif // SpvBuilder_H +#endif // SpvBuilder_H From 757b3d342118caac11043657252b36b34f124ce3 Mon Sep 17 00:00:00 2001 From: Dejan Mircevski Date: Wed, 9 Mar 2016 00:31:07 -0500 Subject: [PATCH 02/48] Don't reflow comments. --- .clang-format | 3 ++- SPIRV/SpvBuilder.cpp | 50 ++++++++++++++++++++++---------------------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/.clang-format b/.clang-format index 2cb0f2f5..8d6c5d27 100644 --- a/.clang-format +++ b/.clang-format @@ -3,9 +3,10 @@ IndentWidth: 4 BreakBeforeBraces: Custom BraceWrapping: { AfterFunction: true } IndentCaseLabels: false +ReflowComments: false ColumnLimit: 100 AccessModifierOffset: -4 AlignTrailingComments: true AllowShortBlocksOnASingleLine: false AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false \ No newline at end of file +AllowShortLoopsOnASingleLine: false diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index cecc735c..dc02f0e8 100755 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -1,36 +1,36 @@ // -// Copyright (C) 2014 LunarG, Inc. +//Copyright (C) 2014 LunarG, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. // -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. // -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. // // Author: John Kessenich, LunarG From 8a4e22ce27df0d398b642cb8e1c84398ff065419 Mon Sep 17 00:00:00 2001 From: Dejan Mircevski Date: Wed, 9 Mar 2016 00:40:03 -0500 Subject: [PATCH 03/48] Fully restore copyright spacing. --- SPIRV/SpvBuilder.cpp | 18 +++++++++--------- SPIRV/SpvBuilder.h | 30 +++++++++++++++--------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 658b525a..698e42be 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -8,17 +8,17 @@ //modification, are permitted provided that the following conditions //are met: // -// Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. // -// Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. // -// Neither the name of 3Dlabs Inc. Ltd. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. +// Neither the name of 3Dlabs Inc. Ltd. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. // //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 918a480f..83b4cbb5 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -2,11 +2,11 @@ //Copyright (C) 2014-2015 LunarG, Inc. //Copyright (C) 2015-2016 Google, Inc. // -// All rights reserved. +//All rights reserved. // -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. @@ -20,18 +20,18 @@ // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. // // Author: John Kessenich, LunarG From 24c6bb308dc314b3445806de59309dc448fcb82d Mon Sep 17 00:00:00 2001 From: Dejan Mircevski Date: Sat, 26 Mar 2016 15:53:12 -0400 Subject: [PATCH 04/48] Put braces on new line after if/for/switch/case. --- .clang-format | 2 +- SPIRV/SpvBuilder.cpp | 345 ++++++++++++++++++++++++++++--------------- 2 files changed, 231 insertions(+), 116 deletions(-) diff --git a/.clang-format b/.clang-format index 8d6c5d27..ad2b1282 100644 --- a/.clang-format +++ b/.clang-format @@ -1,7 +1,7 @@ Language: Cpp IndentWidth: 4 BreakBeforeBraces: Custom -BraceWrapping: { AfterFunction: true } +BraceWrapping: { AfterFunction: true, AfterControlStatement: true } IndentCaseLabels: false ReflowComments: false ColumnLimit: 100 diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 698e42be..ca650185 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -83,7 +83,8 @@ Id Builder::import(const char* name) Id Builder::makeVoidType() { Instruction* type; - if (groupedTypes[OpTypeVoid].size() == 0) { + if (groupedTypes[OpTypeVoid].size() == 0) + { type = new Instruction(getUniqueId(), NoType, OpTypeVoid); groupedTypes[OpTypeVoid].push_back(type); constantsTypesGlobals.push_back(std::unique_ptr(type)); @@ -97,7 +98,8 @@ Id Builder::makeVoidType() Id Builder::makeBoolType() { Instruction* type; - if (groupedTypes[OpTypeBool].size() == 0) { + if (groupedTypes[OpTypeBool].size() == 0) + { type = new Instruction(getUniqueId(), NoType, OpTypeBool); groupedTypes[OpTypeBool].push_back(type); constantsTypesGlobals.push_back(std::unique_ptr(type)); @@ -111,7 +113,8 @@ Id Builder::makeBoolType() Id Builder::makeSamplerType() { Instruction* type; - if (groupedTypes[OpTypeSampler].size() == 0) { + if (groupedTypes[OpTypeSampler].size() == 0) + { type = new Instruction(getUniqueId(), NoType, OpTypeSampler); groupedTypes[OpTypeSampler].push_back(type); constantsTypesGlobals.push_back(std::unique_ptr(type)); @@ -126,7 +129,8 @@ Id Builder::makePointer(StorageClass storageClass, Id pointee) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypePointer].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypePointer].size(); ++t) + { type = groupedTypes[OpTypePointer][t]; if (type->getImmediateOperand(0) == (unsigned)storageClass && type->getIdOperand(1) == pointee) @@ -148,7 +152,8 @@ Id Builder::makeIntegerType(int width, bool hasSign) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeInt].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeInt].size(); ++t) + { type = groupedTypes[OpTypeInt][t]; if (type->getImmediateOperand(0) == (unsigned)width && type->getImmediateOperand(1) == (hasSign ? 1u : 0u)) @@ -164,7 +169,8 @@ Id Builder::makeIntegerType(int width, bool hasSign) module.mapInstruction(type); // deal with capabilities - switch (width) { + switch (width) + { case 16: addCapability(CapabilityInt16); break; @@ -182,7 +188,8 @@ Id Builder::makeFloatType(int width) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeFloat].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeFloat].size(); ++t) + { type = groupedTypes[OpTypeFloat][t]; if (type->getImmediateOperand(0) == (unsigned)width) return type->getResultId(); @@ -196,7 +203,8 @@ Id Builder::makeFloatType(int width) module.mapInstruction(type); // deal with capabilities - switch (width) { + switch (width) + { case 16: addCapability(CapabilityFloat16); break; @@ -237,7 +245,8 @@ Id Builder::makeStructResultType(Id type0, Id type1) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeStruct].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeStruct].size(); ++t) + { type = groupedTypes[OpTypeStruct][t]; if (type->getNumOperands() != 2) continue; @@ -258,7 +267,8 @@ Id Builder::makeVectorType(Id component, int size) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeVector].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeVector].size(); ++t) + { type = groupedTypes[OpTypeVector][t]; if (type->getIdOperand(0) == component && type->getImmediateOperand(1) == (unsigned)size) return type->getResultId(); @@ -283,7 +293,8 @@ Id Builder::makeMatrixType(Id component, int cols, int rows) // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeMatrix].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeMatrix].size(); ++t) + { type = groupedTypes[OpTypeMatrix][t]; if (type->getIdOperand(0) == column && type->getImmediateOperand(1) == (unsigned)cols) return type->getResultId(); @@ -307,9 +318,11 @@ Id Builder::makeMatrixType(Id component, int cols, int rows) Id Builder::makeArrayType(Id element, Id sizeId, int stride) { Instruction* type; - if (stride == 0) { + if (stride == 0) + { // try to find existing type - for (int t = 0; t < (int)groupedTypes[OpTypeArray].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeArray].size(); ++t) + { type = groupedTypes[OpTypeArray][t]; if (type->getIdOperand(0) == element && type->getIdOperand(1) == sizeId) return type->getResultId(); @@ -341,14 +354,17 @@ Id Builder::makeFunctionType(Id returnType, const std::vector& paramTypes) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeFunction].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeFunction].size(); ++t) + { type = groupedTypes[OpTypeFunction][t]; if (type->getIdOperand(0) != returnType || (int)paramTypes.size() != type->getNumOperands() - 1) continue; bool mismatch = false; - for (int p = 0; p < (int)paramTypes.size(); ++p) { - if (paramTypes[p] != type->getIdOperand(p + 1)) { + for (int p = 0; p < (int)paramTypes.size(); ++p) + { + if (paramTypes[p] != type->getIdOperand(p + 1)) + { mismatch = true; break; } @@ -374,7 +390,8 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) + { type = groupedTypes[OpTypeImage][t]; if (type->getIdOperand(0) == sampledType && type->getImmediateOperand(1) == (unsigned int)dim && @@ -401,7 +418,8 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo module.mapInstruction(type); // deal with capabilities - switch (dim) { + switch (dim) + { case DimBuffer: if (sampled) addCapability(CapabilitySampledBuffer); @@ -415,7 +433,8 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo addCapability(CapabilityImage1D); break; case DimCube: - if (arrayed) { + if (arrayed) + { if (sampled) addCapability(CapabilitySampledCubeArray); else @@ -435,7 +454,8 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo break; } - if (ms) { + if (ms) + { if (arrayed) addCapability(CapabilityImageMSArray); if (!sampled) @@ -449,7 +469,8 @@ Id Builder::makeSampledImageType(Id imageType) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeSampledImage].size(); ++t) { + for (int t = 0; t < (int)groupedTypes[OpTypeSampledImage].size(); ++t) + { type = groupedTypes[OpTypeSampledImage][t]; if (type->getIdOperand(0) == imageType) return type->getResultId(); @@ -479,7 +500,8 @@ Op Builder::getMostBasicTypeClass(Id typeId) const Instruction* instr = module.getInstruction(typeId); Op typeClass = instr->getOpCode(); - switch (typeClass) { + switch (typeClass) + { case OpTypeVoid: case OpTypeBool: case OpTypeInt: @@ -503,7 +525,8 @@ int Builder::getNumTypeConstituents(Id typeId) const { Instruction* instr = module.getInstruction(typeId); - switch (instr->getOpCode()) { + switch (instr->getOpCode()) + { case OpTypeBool: case OpTypeInt: case OpTypeFloat: @@ -511,7 +534,8 @@ int Builder::getNumTypeConstituents(Id typeId) const case OpTypeVector: case OpTypeMatrix: return instr->getImmediateOperand(1); - case OpTypeArray: { + case OpTypeArray: + { Id lengthId = instr->getImmediateOperand(1); return module.getInstruction(lengthId)->getImmediateOperand(0); } @@ -531,7 +555,8 @@ Id Builder::getScalarTypeId(Id typeId) const Instruction* instr = module.getInstruction(typeId); Op typeClass = instr->getOpCode(); - switch (typeClass) { + switch (typeClass) + { case OpTypeVoid: case OpTypeBool: case OpTypeInt: @@ -556,7 +581,8 @@ Id Builder::getContainedTypeId(Id typeId, int member) const Instruction* instr = module.getInstruction(typeId); Op typeClass = instr->getOpCode(); - switch (typeClass) { + switch (typeClass) + { case OpTypeVector: case OpTypeMatrix: case OpTypeArray: @@ -579,7 +605,8 @@ Id Builder::getContainedTypeId(Id typeId) const { return getContainedTypeId(type Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const { Instruction* constant; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { + for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) + { constant = groupedConstants[typeClass][i]; if (constant->getOpCode() == opcode && constant->getTypeId() == typeId && constant->getImmediateOperand(0) == value) @@ -593,7 +620,8 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned valu Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const { Instruction* constant; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { + for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) + { constant = groupedConstants[typeClass][i]; if (constant->getOpCode() == opcode && constant->getTypeId() == typeId && constant->getImmediateOperand(0) == v1 && constant->getImmediateOperand(1) == v2) @@ -608,7 +636,8 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, // the value consumed will be a constant, so includes specialization. bool Builder::isConstantOpCode(Op opcode) const { - switch (opcode) { + switch (opcode) + { case OpUndef: case OpConstantTrue: case OpConstantFalse: @@ -636,9 +665,11 @@ Id Builder::makeBoolConstant(bool b, bool specConstant) // See if we already made it. Applies only to regular constants, because specialization constants // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) { + if (!specConstant) + { Id existing = 0; - for (int i = 0; i < (int)groupedConstants[OpTypeBool].size(); ++i) { + for (int i = 0; i < (int)groupedConstants[OpTypeBool].size(); ++i) + { constant = groupedConstants[OpTypeBool][i]; if (constant->getTypeId() == typeId && constant->getOpCode() == opcode) existing = constant->getResultId(); @@ -663,7 +694,8 @@ Id Builder::makeIntConstant(Id typeId, unsigned value, bool specConstant) // See if we already made it. Applies only to regular constants, because specialization constants // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) { + if (!specConstant) + { Id existing = findScalarConstant(OpTypeInt, opcode, typeId, value); if (existing) return existing; @@ -691,7 +723,8 @@ Id Builder::makeFloatConstant(float f, bool specConstant) // See if we already made it. Applies only to regular constants, because specialization constants // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) { + if (!specConstant) + { Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value); if (existing) return existing; @@ -721,7 +754,8 @@ Id Builder::makeDoubleConstant(double d, bool specConstant) // See if we already made it. Applies only to regular constants, because specialization constants // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) { + if (!specConstant) + { Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, op1, op2); if (existing) return existing; @@ -741,7 +775,8 @@ Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const { Instruction* constant = 0; bool found = false; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { + for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) + { constant = groupedConstants[typeClass][i]; // same shape? @@ -750,13 +785,16 @@ Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const // same contents? bool mismatch = false; - for (int op = 0; op < constant->getNumOperands(); ++op) { - if (constant->getIdOperand(op) != comps[op]) { + for (int op = 0; op < constant->getNumOperands(); ++op) + { + if (constant->getIdOperand(op) != comps[op]) + { mismatch = true; break; } } - if (!mismatch) { + if (!mismatch) + { found = true; break; } @@ -772,7 +810,8 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector& members, bool spec assert(typeId); Op typeClass = getTypeClass(typeId); - switch (typeClass) { + switch (typeClass) + { case OpTypeVector: case OpTypeArray: case OpTypeStruct: @@ -783,7 +822,8 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector& members, bool spec return makeFloatConstant(0.0); } - if (!specConstant) { + if (!specConstant) + { Id existing = findCompositeConstant(typeClass, members); if (existing) return existing; @@ -914,7 +954,8 @@ Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const setPrecision(firstParamId + p, precisions[p]); // CFG - if (entry) { + if (entry) + { *entry = new Block(getUniqueId(), *function); function->addBlock(*entry); setBuildPoint(*entry); @@ -931,7 +972,8 @@ Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const // Comments in header void Builder::makeReturn(bool implicit, Id retVal) { - if (retVal) { + if (retVal) + { Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue); inst->addIdOperand(retVal); buildPoint->addInstruction(std::unique_ptr(inst)); @@ -951,10 +993,12 @@ void Builder::leaveFunction() assert(block); // If our function did not contain a return, add a return void now. - if (!block->isTerminated()) { + if (!block->isTerminated()) + { if (function.getReturnType() == makeVoidType()) makeReturn(true); - else { + else + { makeReturn(true, createUndefined(function.getReturnType())); } } @@ -974,7 +1018,8 @@ Id Builder::createVariable(StorageClass storageClass, Id type, const char* name) Instruction* inst = new Instruction(getUniqueId(), pointerType, OpVariable); inst->addImmediateOperand(storageClass); - switch (storageClass) { + switch (storageClass) + { case StorageClassFunction: // Validation rules require the declaration in the entry block buildPoint->getParent().addLocalVariable(std::unique_ptr(inst)); @@ -1026,8 +1071,10 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, std::vector 0); typeId = getContainedTypeId(typeId); - for (int i = 0; i < (int)offsets.size(); ++i) { - if (isStructType(typeId)) { + for (int i = 0; i < (int)offsets.size(); ++i) + { + if (isStructType(typeId)) + { assert(isConstantScalar(offsets[i])); typeId = getContainedTypeId(typeId, getConstantScalar(offsets[i])); } else @@ -1338,42 +1385,50 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, numArgs; // track which operand, if it exists, is the mask of optional arguments ++numArgs; // speculatively make room for the mask operand ImageOperandsMask mask = ImageOperandsMaskNone; // the mask operand - if (parameters.bias) { + if (parameters.bias) + { mask = (ImageOperandsMask)(mask | ImageOperandsBiasMask); texArgs[numArgs++] = parameters.bias; } - if (parameters.lod) { + if (parameters.lod) + { mask = (ImageOperandsMask)(mask | ImageOperandsLodMask); texArgs[numArgs++] = parameters.lod; explicitLod = true; - } else if (parameters.gradX) { + } else if (parameters.gradX) + { mask = (ImageOperandsMask)(mask | ImageOperandsGradMask); texArgs[numArgs++] = parameters.gradX; texArgs[numArgs++] = parameters.gradY; explicitLod = true; - } else if (noImplicitLod && !fetch && !gather) { + } else if (noImplicitLod && !fetch && !gather) + { // have to explicitly use lod of 0 if not allowed to have them be implicit, and // we would otherwise be about to issue an implicit instruction mask = (ImageOperandsMask)(mask | ImageOperandsLodMask); texArgs[numArgs++] = makeFloatConstant(0.0); explicitLod = true; } - if (parameters.offset) { + if (parameters.offset) + { if (isConstant(parameters.offset)) mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetMask); else mask = (ImageOperandsMask)(mask | ImageOperandsOffsetMask); texArgs[numArgs++] = parameters.offset; } - if (parameters.offsets) { + if (parameters.offsets) + { mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask); texArgs[numArgs++] = parameters.offsets; } - if (parameters.sample) { + if (parameters.sample) + { mask = (ImageOperandsMask)(mask | ImageOperandsSampleMask); texArgs[numArgs++] = parameters.sample; } - if (parameters.lodClamp) { + if (parameters.lodClamp) + { // capability if this bit is used addCapability(CapabilityMinLod); @@ -1389,12 +1444,14 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, // Set up the instruction // Op opCode = OpNop; // All paths below need to set this - if (fetch) { + if (fetch) + { if (sparse) opCode = OpImageSparseFetch; else opCode = OpImageFetch; - } else if (gather) { + } else if (gather) + { if (parameters.Dref) if (sparse) opCode = OpImageSparseDrefGather; @@ -1404,8 +1461,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, opCode = OpImageSparseGather; else opCode = OpImageGather; - } else if (explicitLod) { - if (parameters.Dref) { + } else if (explicitLod) + { + if (parameters.Dref) + { if (proj) if (sparse) opCode = OpImageSparseSampleProjDrefExplicitLod; @@ -1415,7 +1474,8 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, opCode = OpImageSparseSampleDrefExplicitLod; else opCode = OpImageSampleDrefExplicitLod; - } else { + } else + { if (proj) if (sparse) opCode = OpImageSparseSampleProjExplicitLod; @@ -1426,8 +1486,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, else opCode = OpImageSampleExplicitLod; } - } else { - if (parameters.Dref) { + } else + { + if (parameters.Dref) + { if (proj) if (sparse) opCode = OpImageSparseSampleProjDrefImplicitLod; @@ -1437,7 +1499,8 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, opCode = OpImageSparseSampleDrefImplicitLod; else opCode = OpImageSampleDrefImplicitLod; - } else { + } else + { if (proj) if (sparse) opCode = OpImageSparseSampleProjImplicitLod; @@ -1454,8 +1517,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, // 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) { + if (!isScalarType(resultType)) + { + switch (opCode) + { case OpImageSampleDrefImplicitLod: case OpImageSampleDrefExplicitLod: case OpImageSampleProjDrefImplicitLod: @@ -1470,7 +1535,8 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, Id typeId0 = 0; Id typeId1 = 0; - if (sparse) { + if (sparse) + { typeId0 = resultType; typeId1 = getDerefTypeId(parameters.texelOut); resultType = makeStructResultType(typeId0, typeId1); @@ -1489,7 +1555,8 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, Id resultId = textureInst->getResultId(); - if (sparse) { + if (sparse) + { // set capability addCapability(CapabilitySparseResidency); @@ -1497,7 +1564,8 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, createStore(createCompositeExtract(resultId, typeId1, 1), parameters.texelOut); resultId = createCompositeExtract(resultId, typeId0, 0); setPrecision(resultId, precision); - } else { + } else + { // When a smear is needed, do it, as per what was computed // above when resultType was changed to a scalar type. if (resultType != smearedType) @@ -1515,11 +1583,14 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter // Figure out the result type Id resultType = 0; - switch (opCode) { + switch (opCode) + { case OpImageQuerySize: - case OpImageQuerySizeLod: { + case OpImageQuerySizeLod: + { int numComponents = 0; - switch (getTypeDimensionality(getImageType(parameters.sampler))) { + switch (getTypeDimensionality(getImageType(parameters.sampler))) + { case Dim1D: case DimBuffer: numComponents = 1; @@ -1583,12 +1654,14 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b // Scalars and Vectors - if (isScalarType(valueType) || isVectorType(valueType)) { + if (isScalarType(valueType) || isVectorType(valueType)) + { assert(valueType == getTypeId(value2)); // These just need a single comparison, just have // to figure out what it is. Op op; - switch (getMostBasicTypeClass(valueType)) { + switch (getMostBasicTypeClass(valueType)) + { case OpTypeFloat: op = equal ? OpFOrdEqual : OpFOrdNotEqual; break; @@ -1602,10 +1675,12 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b break; } - if (isScalarType(valueType)) { + if (isScalarType(valueType)) + { // scalar resultId = createBinOp(op, boolType, value1, value2); - } else { + } else + { // vector resultId = createBinOp(op, makeVectorType(boolType, numConstituents), value1, value2); setPrecision(resultId, precision); @@ -1621,7 +1696,8 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b assert(isAggregateType(valueType) || isMatrixType(valueType)); // Compare each pair of constituents - for (int constituent = 0; constituent < numConstituents; ++constituent) { + for (int constituent = 0; constituent < numConstituents; ++constituent) + { std::vector indexes(1, constituent); Id constituentType1 = getContainedTypeId(getTypeId(value1), constituent); Id constituentType2 = getContainedTypeId(getTypeId(value2), constituent); @@ -1669,16 +1745,19 @@ Id Builder::createConstructor(Decoration precision, const std::vector& sourc Id scalarTypeId = getScalarTypeId(resultTypeId); std::vector constituents; // accumulate the arguments for OpCompositeConstruct - for (unsigned int i = 0; i < sources.size(); ++i) { + for (unsigned int i = 0; i < sources.size(); ++i) + { assert(!isAggregate(sources[i])); unsigned int sourceSize = getNumComponents(sources[i]); unsigned int sourcesToUse = sourceSize; if (sourcesToUse + targetComponent > numTargetComponents) sourcesToUse = numTargetComponents - targetComponent; - for (unsigned int s = 0; s < sourcesToUse; ++s) { + for (unsigned int s = 0; s < sourcesToUse; ++s) + { Id arg = sources[i]; - if (sourceSize > 1) { + if (sourceSize > 1) + { std::vector swiz; swiz.push_back(s); arg = createRvalueSwizzle(precision, scalarTypeId, arg, swiz); @@ -1719,8 +1798,10 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& Id ids[maxMatrixSize][maxMatrixSize]; Id one = makeFloatConstant(1.0); Id zero = makeFloatConstant(0.0); - for (int col = 0; col < 4; ++col) { - for (int row = 0; row < 4; ++row) { + for (int col = 0; col < 4; ++col) + { + for (int row = 0; row < 4; ++row) + { if (col == row) ids[col][row] = one; else @@ -1729,40 +1810,49 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } // modify components as dictated by the arguments - if (sources.size() == 1 && isScalar(sources[0])) { + if (sources.size() == 1 && isScalar(sources[0])) + { // a single scalar; resets the diagonals for (int col = 0; col < 4; ++col) ids[col][col] = sources[0]; - } else if (isMatrix(sources[0])) { + } else if (isMatrix(sources[0])) + { // constructing from another matrix; copy over the parts that exist in both the argument and // constructee Id matrix = sources[0]; int minCols = std::min(numCols, getNumColumns(matrix)); int minRows = std::min(numRows, getNumRows(matrix)); - for (int col = 0; col < minCols; ++col) { + for (int col = 0; col < minCols; ++col) + { std::vector indexes; indexes.push_back(col); - for (int row = 0; row < minRows; ++row) { + for (int row = 0; row < minRows; ++row) + { indexes.push_back(row); ids[col][row] = createCompositeExtract(matrix, componentTypeId, indexes); indexes.pop_back(); setPrecision(ids[col][row], precision); } } - } else { + } else + { // fill in the matrix in column-major order with whatever argument components are available int row = 0; int col = 0; - for (int arg = 0; arg < (int)sources.size(); ++arg) { + for (int arg = 0; arg < (int)sources.size(); ++arg) + { Id argComp = sources[arg]; - for (int comp = 0; comp < getNumComponents(sources[arg]); ++comp) { - if (getNumComponents(sources[arg]) > 1) { + for (int comp = 0; comp < getNumComponents(sources[arg]); ++comp) + { + if (getNumComponents(sources[arg]) > 1) + { argComp = createCompositeExtract(sources[arg], componentTypeId, comp); setPrecision(argComp, precision); } ids[col][row++] = argComp; - if (row == numRows) { + if (row == numRows) + { row = 0; col++; } @@ -1776,7 +1866,8 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& // make the column vectors Id columnTypeId = getContainedTypeId(resultTypeId); std::vector matrixColumns; - for (int col = 0; col < numCols; ++col) { + for (int col = 0; col < numCols; ++col) + { std::vector vectorComponents; for (int row = 0; row < numRows; ++row) vectorComponents.push_back(ids[col][row]); @@ -1863,7 +1954,8 @@ void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseVal auto defaultOrMerge = (defaultSegment >= 0) ? segmentBlocks[defaultSegment] : mergeBlock; switchInst->addIdOperand(defaultOrMerge->getId()); defaultOrMerge->addPredecessor(buildPoint); - for (int i = 0; i < (int)caseValues.size(); ++i) { + for (int i = 0; i < (int)caseValues.size(); ++i) + { switchInst->addImmediateOperand(caseValues[i]); switchInst->addIdOperand(segmentBlocks[valueIndexToSegment[i]]->getId()); segmentBlocks[valueIndexToSegment[i]]->addPredecessor(buildPoint); @@ -1886,7 +1978,8 @@ void Builder::addSwitchBreak() void Builder::nextSwitchSegment(std::vector& segmentBlock, int nextSegment) { int lastSegment = nextSegment - 1; - if (lastSegment >= 0) { + if (lastSegment >= 0) + { // Close out previous segment by jumping, if necessary, to next segment if (!buildPoint->isTerminated()) createBranch(segmentBlock[nextSegment]); @@ -1960,10 +2053,12 @@ void Builder::accessChainPushSwizzle(std::vector& swizzle, Id preSwizz accessChain.preSwizzleBaseType = preSwizzleBaseType; // if needed, propagate the swizzle for the current access chain - if (accessChain.swizzle.size()) { + if (accessChain.swizzle.size()) + { std::vector oldSwizzle = accessChain.swizzle; accessChain.swizzle.resize(0); - for (unsigned int i = 0; i < swizzle.size(); ++i) { + for (unsigned int i = 0; i < swizzle.size(); ++i) + { accessChain.swizzle.push_back(oldSwizzle[swizzle[i]]); } } else @@ -1987,14 +2082,16 @@ void Builder::accessChainStore(Id rvalue) // If swizzle still exists, it is out-of-order or not full, we must load the target vector, // extract and insert elements to perform writeMask and/or swizzle. Id source = NoResult; - if (accessChain.swizzle.size()) { + if (accessChain.swizzle.size()) + { Id tempBaseId = createLoad(base); source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle); } // dynamic component selection - if (accessChain.component != NoResult) { + if (accessChain.component != NoResult) + { Id tempBaseId = (source == NoResult) ? createLoad(base) : source; source = createVectorInsertDynamic(tempBaseId, getTypeId(tempBaseId), rvalue, accessChain.component); @@ -2011,10 +2108,12 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) { Id id; - if (accessChain.isRValue) { + if (accessChain.isRValue) + { // transfer access chain, but keep it static, so we can stay in registers transferAccessChainSwizzle(false); - if (accessChain.indexChain.size() > 0) { + if (accessChain.indexChain.size() > 0) + { Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType; @@ -2022,10 +2121,12 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) // if all the accesses are constants, we can use OpCompositeExtract std::vector indexes; bool constant = true; - for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) { + for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) + { if (isConstantScalar(accessChain.indexChain[i])) indexes.push_back(getConstantScalar(accessChain.indexChain[i])); - else { + else + { constant = false; break; } @@ -2033,7 +2134,8 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) if (constant) id = createCompositeExtract(accessChain.base, swizzleBase, indexes); - else { + else + { // make a new function variable for this r-value Id lValue = createVariable(StorageClassFunction, getTypeId(accessChain.base), "indexable"); @@ -2051,7 +2153,8 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) setPrecision(id, precision); } else id = accessChain.base; // no precision, it was set when this was defined - } else { + } else + { transferAccessChainSwizzle(true); // load through the access chain id = createLoad(collapseAccessChain()); @@ -2064,7 +2167,8 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) // Do remaining swizzling // First, static swizzling - if (accessChain.swizzle.size()) { + if (accessChain.swizzle.size()) + { // static swizzle Id swizzledType = getScalarTypeId(getTypeId(id)); if (accessChain.swizzle.size() > 1) @@ -2109,7 +2213,8 @@ Id Builder::accessChainGetInferredType() type = getContainedTypeId(type); // dereference each index - for (auto it = accessChain.indexChain.cbegin(); it != accessChain.indexChain.cend(); ++it) { + for (auto it = accessChain.indexChain.cbegin(); it != accessChain.indexChain.cend(); ++it) + { if (isStructType(type)) type = getContainedTypeId(type, getConstantScalar(*it)); else @@ -2139,7 +2244,8 @@ void Builder::dump(std::vector& out) const out.push_back(0); // Capabilities - for (auto it = capabilities.cbegin(); it != capabilities.cend(); ++it) { + for (auto it = capabilities.cbegin(); it != capabilities.cend(); ++it) + { Instruction capInst(0, 0, OpCapability); capInst.addImmediateOperand(*it); capInst.dump(out); @@ -2158,13 +2264,15 @@ void Builder::dump(std::vector& out) const dumpInstructions(out, executionModes); // Debug instructions - if (source != SourceLanguageUnknown) { + if (source != SourceLanguageUnknown) + { Instruction sourceInst(0, 0, OpSource); sourceInst.addImmediateOperand(source); sourceInst.addImmediateOperand(sourceVersion); sourceInst.dump(out); } - for (int e = 0; e < (int)extensions.size(); ++e) { + for (int e = 0; e < (int)extensions.size(); ++e) + { Instruction extInst(0, 0, OpSourceExtension); extInst.addStringOperand(extensions[e]); extInst.dump(out); @@ -2195,8 +2303,10 @@ Id Builder::collapseAccessChain() { assert(accessChain.isRValue == false); - if (accessChain.indexChain.size() > 0) { - if (accessChain.instr == 0) { + if (accessChain.indexChain.size() > 0) + { + if (accessChain.instr == 0) + { StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); accessChain.instr = @@ -2220,7 +2330,8 @@ void Builder::simplifyAccessChainSwizzle() return; // if components are out of order, it is a swizzle - for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) { + for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) + { if (i != accessChain.swizzle[i]) return; } @@ -2256,7 +2367,8 @@ void Builder::transferAccessChainSwizzle(bool dynamic) if (isBoolType(getContainedTypeId(accessChain.preSwizzleBaseType))) return; - if (accessChain.swizzle.size() == 1) { + if (accessChain.swizzle.size() == 1) + { // handle static component accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle.front())); accessChain.swizzle.clear(); @@ -2264,7 +2376,8 @@ void Builder::transferAccessChainSwizzle(bool dynamic) // component, so don't bother even looking at accessChain.component accessChain.preSwizzleBaseType = NoType; accessChain.component = NoResult; - } else if (dynamic && accessChain.component != NoResult) { + } else if (dynamic && accessChain.component != NoResult) + { // handle dynamic component accessChain.indexChain.push_back(accessChain.component); accessChain.preSwizzleBaseType = NoType; @@ -2326,7 +2439,8 @@ void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* els void Builder::dumpInstructions(std::vector& out, const std::vector >& instructions) const { - for (int i = 0; i < (int)instructions.size(); ++i) { + for (int i = 0; i < (int)instructions.size(); ++i) + { instructions[i]->dump(out); } } @@ -2335,7 +2449,8 @@ void TbdFunctionality(const char* tbd) { static std::unordered_set issued; - if (issued.find(tbd) == issued.end()) { + if (issued.find(tbd) == issued.end()) + { printf("TBD functionality: %s\n", tbd); issued.insert(tbd); } From 1e194e86130faadf37232221c03ad3511034b701 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Wed, 25 May 2016 13:08:34 -0700 Subject: [PATCH 05/48] Produce different names for files in debug builds on MSVC --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index a3722bac..9af56b7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix") project(glslang) if(WIN32) + set(CMAKE_DEBUG_POSTFIX "d") include(ChooseMSVCCRT.cmake) add_definitions(-DGLSLANG_OSINCLUDE_WIN32) elseif(UNIX) From 0f5e3ad23cb69c46bfbeff9c61047e6ceccfa62e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 29 May 2016 18:24:31 -0600 Subject: [PATCH 06/48] Fix issue #313: Catch internal attempts to modify built-in symbols that don't exist. Also beefed up support for running compute shaders is #version 420, but this work is only partially done. --- Test/420.comp | 7 +++++ Test/baseResults/420.comp.out | 32 ++++++++++++++++++++++ glslang/MachineIndependent/Initialize.cpp | 11 +++++++- glslang/MachineIndependent/ParseHelper.cpp | 20 ++++++++++++-- glslang/MachineIndependent/ShaderLang.cpp | 6 ++-- gtests/AST.FromFile.cpp | 1 + 6 files changed, 70 insertions(+), 7 deletions(-) create mode 100755 Test/420.comp create mode 100755 Test/baseResults/420.comp.out diff --git a/Test/420.comp b/Test/420.comp new file mode 100755 index 00000000..4e6885be --- /dev/null +++ b/Test/420.comp @@ -0,0 +1,7 @@ +#version 420 + +layout(local_size_x = 2) in; // ERROR, no compute + +#extension GL_ARB_compute_shader : enable + +layout(local_size_x = 2) in; diff --git a/Test/baseResults/420.comp.out b/Test/baseResults/420.comp.out new file mode 100755 index 00000000..c21df076 --- /dev/null +++ b/Test/baseResults/420.comp.out @@ -0,0 +1,32 @@ +420.comp +Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:3: 'gl_WorkgroupSize' : not supported for this version or the enabled extensions +WARNING: 0:5: '#extension' : extension is only partially supported: GL_ARB_compute_shader +ERROR: 1 compilation errors. No code generated. + + +Shader version: 420 +Requested GL_ARB_compute_shader +local_size = (2, 1, 1) +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) + + +Linked compute stage: + +ERROR: Linking compute stage: Missing entry point: Each stage requires one "void main()" entry point + +Shader version: 420 +Requested GL_ARB_compute_shader +local_size = (2, 1, 1) +ERROR: node is still EOpNull! +0:? Linker Objects +0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) +0:? 2 (const uint) +0:? 1 (const uint) +0:? 1 (const uint) + diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 034962a2..c4ffdf20 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -1871,7 +1871,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) // //============================================================================ - if ((profile != EEsProfile && version >= 430) || + if ((profile != EEsProfile && version >= 420) || (profile == EEsProfile && version >= 310)) { stageBuiltins[EShLangCompute].append( "in highp uvec3 gl_NumWorkGroups;" @@ -3896,6 +3896,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul BuiltInVariable("gl_LocalInvocationID", EbvLocalInvocationId, symbolTable); BuiltInVariable("gl_GlobalInvocationID", EbvGlobalInvocationId, symbolTable); BuiltInVariable("gl_LocalInvocationIndex", EbvLocalInvocationIndex, symbolTable); + + if (profile != EEsProfile && version < 430) { + symbolTable.setVariableExtensions("gl_NumWorkGroups", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_WorkGroupSize", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_WorkGroupID", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_LocalInvocationID", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_GlobalInvocationID", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_LocalInvocationIndex", 1, &E_GL_ARB_compute_shader); + } break; default: diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 15d0dae3..39344cf5 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -622,10 +622,20 @@ void TParseContext::makeEditable(TSymbol*& symbol) intermediate.addSymbolLinkageNode(linkage, *symbol); } +// Return a writable version of the variable 'name'. +// +// Return nullptr if 'name' is not found. This should mean +// something is seriously wrong (e.g., compiler asking self for +// built-in that doesn't exist). TVariable* TParseContext::getEditableVariable(const char* name) { bool builtIn; TSymbol* symbol = symbolTable.find(name, &builtIn); + + assert(symbol != nullptr); + if (symbol == nullptr) + return nullptr; + if (builtIn) makeEditable(symbol); @@ -3844,7 +3854,7 @@ void TParseContext::finalErrorCheck() break; case EShLangCompute: if (profile != EEsProfile && version < 430) - requireExtensions(getCurrentLoc(), 1, &E_GL_ARB_compute_shader, "tessellation shaders"); + requireExtensions(getCurrentLoc(), 1, &E_GL_ARB_compute_shader, "compute shaders"); break; default: break; @@ -4222,6 +4232,8 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi case EShLangCompute: if (id.compare(0, 11, "local_size_") == 0) { + profileRequires(loc, EEsProfile, 310, 0, "gl_WorkgroupSize"); + profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkgroupSize"); if (id == "local_size_x") { publicType.shaderQualifiers.localSize[0] = value; return; @@ -5967,7 +5979,8 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con // Fix the existing constant gl_WorkGroupSize with this new information. TVariable* workGroupSize = getEditableVariable("gl_WorkGroupSize"); - workGroupSize->getWritableConstArray()[i].setUConst(intermediate.getLocalSize(i)); + if (workGroupSize != nullptr) + workGroupSize->getWritableConstArray()[i].setUConst(intermediate.getLocalSize(i)); } } else error(loc, "can only apply to 'in'", "local_size", ""); @@ -5980,7 +5993,8 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con error(loc, "can only apply to 'in'", "local_size id", ""); // Set the workgroup built-in variable as a specialization constant TVariable* workGroupSize = getEditableVariable("gl_WorkGroupSize"); - workGroupSize->getWritableType().getQualifier().specConstant = true; + if (workGroupSize != nullptr) + workGroupSize->getWritableType().getQualifier().specConstant = true; } } if (publicType.shaderQualifiers.earlyFragmentTests) { diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 1446298c..1abb5535 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -235,10 +235,10 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS InitializeStageSymbolTable(*builtInParseables, version, profile, spv, vulkan, EShLangGeometry, infoSink, commonTable, symbolTables); // check for compute - if ((profile != EEsProfile && version >= 430) || + if ((profile != EEsProfile && version >= 420) || (profile == EEsProfile && version >= 310)) InitializeStageSymbolTable(*builtInParseables, version, profile, spv, vulkan, EShLangCompute, infoSink, commonTable, symbolTables); - + return true; } @@ -417,7 +417,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo (profile != EEsProfile && version < 420)) { correct = false; infoSink.info.message(EPrefixError, "#version: compute shaders require es profile with version 310 or above, or non-es profile with version 420 or above"); - version = profile == EEsProfile ? 310 : 430; // 420 supports the extension, correction is to 430 which does not + version = profile == EEsProfile ? 310 : 420; } break; default: diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp index 3f4819a3..08ec919b 100644 --- a/gtests/AST.FromFile.cpp +++ b/gtests/AST.FromFile.cpp @@ -113,6 +113,7 @@ INSTANTIATE_TEST_CASE_P( "110scope.vert", "300scope.vert", "400.frag", + "420.comp", "420.frag", "420.vert", "420.geom", From d94c003fb7d2be208d0a80e1f2707f0553c8ed41 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 30 May 2016 19:29:40 -0600 Subject: [PATCH 07/48] Front-end: Complete GL_ARB_compute_shader implementation. Core compute shaders were working, but the extension wasn't implemented. --- SPIRV/GlslangToSpv.cpp | 2 +- Test/420.comp | 17 +++- Test/baseResults/420.comp.out | 94 +++++++++++++++++++--- glslang/MachineIndependent/Initialize.cpp | 10 ++- glslang/MachineIndependent/ParseHelper.cpp | 4 +- glslang/MachineIndependent/Versions.cpp | 2 +- glslang/MachineIndependent/glslang.y | 2 +- glslang/MachineIndependent/glslang_tab.cpp | 2 +- 8 files changed, 116 insertions(+), 17 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index d6ae9415..5609769b 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -4042,7 +4042,7 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n // We now know we have a specialization constant to build - // gl_WorkgroupSize is a special case until the front-end handles hierarchical specialization constants, + // gl_WorkGroupSize is a special case until the front-end handles hierarchical specialization constants, // even then, it's specialization ids are handled by special case syntax in GLSL: layout(local_size_x = ... if (node.getType().getQualifier().builtIn == glslang::EbvWorkGroupSize) { std::vector dimConstId; diff --git a/Test/420.comp b/Test/420.comp index 4e6885be..e8cee3c7 100755 --- a/Test/420.comp +++ b/Test/420.comp @@ -4,4 +4,19 @@ layout(local_size_x = 2) in; // ERROR, no compute #extension GL_ARB_compute_shader : enable -layout(local_size_x = 2) in; +layout(local_size_x = 2, local_size_y = 4, local_size_z = 6) in; + +shared vec3 sfoo; + +void main() +{ + sfoo = vec3(gl_WorkGroupSize.x, gl_WorkGroupSize.y, gl_WorkGroupSize.z); + sfoo += gl_WorkGroupSize + gl_NumWorkGroups + gl_WorkGroupID + gl_LocalInvocationID + gl_GlobalInvocationID; + sfoo *= gl_LocalInvocationIndex; + sfoo += gl_MaxComputeWorkGroupCount + gl_MaxComputeWorkGroupSize; + sfoo *= gl_MaxComputeUniformComponents + + gl_MaxComputeTextureImageUnits + + gl_MaxComputeImageUniforms + + gl_MaxComputeAtomicCounters + + gl_MaxComputeAtomicCounterBuffers; +} \ No newline at end of file diff --git a/Test/baseResults/420.comp.out b/Test/baseResults/420.comp.out index c21df076..719054df 100755 --- a/Test/baseResults/420.comp.out +++ b/Test/baseResults/420.comp.out @@ -1,32 +1,108 @@ 420.comp Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. -ERROR: 0:3: 'gl_WorkgroupSize' : not supported for this version or the enabled extensions -WARNING: 0:5: '#extension' : extension is only partially supported: GL_ARB_compute_shader +ERROR: 0:3: 'gl_WorkGroupSize' : not supported for this version or the enabled extensions ERROR: 1 compilation errors. No code generated. Shader version: 420 Requested GL_ARB_compute_shader -local_size = (2, 1, 1) +local_size = (2, 4, 6) ERROR: node is still EOpNull! +0:11 Function Definition: main( (global void) +0:11 Function Parameters: +0:13 Sequence +0:13 move second child to first child (temp 3-component vector of float) +0:13 'sfoo' (shared 3-component vector of float) +0:13 Constant: +0:13 2.000000 +0:13 4.000000 +0:13 6.000000 +0:14 add second child into first child (temp 3-component vector of float) +0:14 'sfoo' (shared 3-component vector of float) +0:14 Convert uint to float (temp 3-component vector of float) +0:14 add (temp 3-component vector of uint) +0:14 add (temp 3-component vector of uint) +0:14 add (temp 3-component vector of uint) +0:14 add (temp 3-component vector of uint) +0:14 Constant: +0:14 2 (const uint) +0:14 4 (const uint) +0:14 6 (const uint) +0:14 'gl_NumWorkGroups' (in 3-component vector of uint NumWorkGroups) +0:14 'gl_WorkGroupID' (in 3-component vector of uint WorkGroupID) +0:14 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID) +0:14 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID) +0:15 vector scale second child into first child (temp 3-component vector of float) +0:15 'sfoo' (shared 3-component vector of float) +0:15 Convert uint to float (temp float) +0:15 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex) +0:16 add second child into first child (temp 3-component vector of float) +0:16 'sfoo' (shared 3-component vector of float) +0:16 Constant: +0:16 66559.000000 +0:16 66559.000000 +0:16 65599.000000 +0:17 vector scale second child into first child (temp 3-component vector of float) +0:17 'sfoo' (shared 3-component vector of float) +0:17 Constant: +0:17 1057.000000 0:? Linker Objects 0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) 0:? 2 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) +0:? 4 (const uint) +0:? 6 (const uint) +0:? 'sfoo' (shared 3-component vector of float) Linked compute stage: -ERROR: Linking compute stage: Missing entry point: Each stage requires one "void main()" entry point Shader version: 420 Requested GL_ARB_compute_shader -local_size = (2, 1, 1) +local_size = (2, 4, 6) ERROR: node is still EOpNull! +0:11 Function Definition: main( (global void) +0:11 Function Parameters: +0:13 Sequence +0:13 move second child to first child (temp 3-component vector of float) +0:13 'sfoo' (shared 3-component vector of float) +0:13 Constant: +0:13 2.000000 +0:13 4.000000 +0:13 6.000000 +0:14 add second child into first child (temp 3-component vector of float) +0:14 'sfoo' (shared 3-component vector of float) +0:14 Convert uint to float (temp 3-component vector of float) +0:14 add (temp 3-component vector of uint) +0:14 add (temp 3-component vector of uint) +0:14 add (temp 3-component vector of uint) +0:14 add (temp 3-component vector of uint) +0:14 Constant: +0:14 2 (const uint) +0:14 4 (const uint) +0:14 6 (const uint) +0:14 'gl_NumWorkGroups' (in 3-component vector of uint NumWorkGroups) +0:14 'gl_WorkGroupID' (in 3-component vector of uint WorkGroupID) +0:14 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID) +0:14 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID) +0:15 vector scale second child into first child (temp 3-component vector of float) +0:15 'sfoo' (shared 3-component vector of float) +0:15 Convert uint to float (temp float) +0:15 'gl_LocalInvocationIndex' (in uint LocalInvocationIndex) +0:16 add second child into first child (temp 3-component vector of float) +0:16 'sfoo' (shared 3-component vector of float) +0:16 Constant: +0:16 66559.000000 +0:16 66559.000000 +0:16 65599.000000 +0:17 vector scale second child into first child (temp 3-component vector of float) +0:17 'sfoo' (shared 3-component vector of float) +0:17 Constant: +0:17 1057.000000 0:? Linker Objects 0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) 0:? 2 (const uint) -0:? 1 (const uint) -0:? 1 (const uint) +0:? 4 (const uint) +0:? 6 (const uint) +0:? 'sfoo' (shared 3-component vector of float) diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index c4ffdf20..35d7be13 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -3421,7 +3421,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf // compute - if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 430)) { + if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) { snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX, resources.maxComputeWorkGroupCountY, resources.maxComputeWorkGroupCountZ); @@ -3904,6 +3904,14 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul symbolTable.setVariableExtensions("gl_LocalInvocationID", 1, &E_GL_ARB_compute_shader); symbolTable.setVariableExtensions("gl_GlobalInvocationID", 1, &E_GL_ARB_compute_shader); symbolTable.setVariableExtensions("gl_LocalInvocationIndex", 1, &E_GL_ARB_compute_shader); + + symbolTable.setVariableExtensions("gl_MaxComputeWorkGroupCount", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_MaxComputeWorkGroupSize", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_MaxComputeUniformComponents", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_MaxComputeTextureImageUnits", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_MaxComputeImageUniforms", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounters", 1, &E_GL_ARB_compute_shader); + symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounterBuffers", 1, &E_GL_ARB_compute_shader); } break; diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 39344cf5..31a94d26 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4232,8 +4232,8 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi case EShLangCompute: if (id.compare(0, 11, "local_size_") == 0) { - profileRequires(loc, EEsProfile, 310, 0, "gl_WorkgroupSize"); - profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkgroupSize"); + profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize"); + profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize"); if (id == "local_size_x") { publicType.shaderQualifiers.localSize[0] = value; return; diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index eeff270a..c1192071 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -162,7 +162,7 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_ARB_texture_gather] = EBhDisable; extensionBehavior[E_GL_ARB_gpu_shader5] = EBhDisablePartial; extensionBehavior[E_GL_ARB_separate_shader_objects] = EBhDisable; - extensionBehavior[E_GL_ARB_compute_shader] = EBhDisablePartial; + extensionBehavior[E_GL_ARB_compute_shader] = EBhDisable; extensionBehavior[E_GL_ARB_tessellation_shader] = EBhDisable; extensionBehavior[E_GL_ARB_enhanced_layouts] = EBhDisable; extensionBehavior[E_GL_ARB_texture_cube_map_array] = EBhDisable; diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index f4c7857c..4f8e3fc1 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -1208,7 +1208,7 @@ storage_qualifier $$.qualifier.storage = EvqBuffer; } | SHARED { - parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, 0, "shared"); + parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); parseContext.profileRequires($1.loc, EEsProfile, 310, 0, "shared"); parseContext.requireStage($1.loc, EShLangCompute, "shared"); $$.init($1.loc); diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 9d632d8a..a284fda4 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -4737,7 +4737,7 @@ yyreduce: case 155: #line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, 0, "shared"); + parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared"); parseContext.requireStage((yyvsp[0].lex).loc, EShLangCompute, "shared"); (yyval.interm.type).init((yyvsp[0].lex).loc); From 548c3adecd615d85bae2e94cdc367342ae4403bf Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 30 May 2016 19:38:39 -0600 Subject: [PATCH 08/48] Front-end: Complete GL_ARB_compute_shader, previous commit was missing new barriers. This amends the previous commit, which ommitted barriers in version 420 for compute shader. --- Test/420.comp | 8 ++++++++ Test/baseResults/420.comp.out | 14 ++++++++++++++ glslang/MachineIndependent/Initialize.cpp | 11 +++++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/Test/420.comp b/Test/420.comp index e8cee3c7..d92e6f0d 100755 --- a/Test/420.comp +++ b/Test/420.comp @@ -19,4 +19,12 @@ void main() gl_MaxComputeImageUniforms + gl_MaxComputeAtomicCounters + gl_MaxComputeAtomicCounterBuffers; + + barrier(); + memoryBarrier(); + memoryBarrierAtomicCounter(); + memoryBarrierBuffer(); + memoryBarrierImage(); + memoryBarrierShared(); + groupMemoryBarrier(); } \ No newline at end of file diff --git a/Test/baseResults/420.comp.out b/Test/baseResults/420.comp.out index 719054df..a2311d5a 100755 --- a/Test/baseResults/420.comp.out +++ b/Test/baseResults/420.comp.out @@ -46,6 +46,13 @@ ERROR: node is still EOpNull! 0:17 'sfoo' (shared 3-component vector of float) 0:17 Constant: 0:17 1057.000000 +0:23 Barrier (global void) +0:24 MemoryBarrier (global void) +0:25 MemoryBarrierAtomicCounter (global void) +0:26 MemoryBarrierBuffer (global void) +0:27 MemoryBarrierImage (global void) +0:28 MemoryBarrierShared (global void) +0:29 GroupMemoryBarrier (global void) 0:? Linker Objects 0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) 0:? 2 (const uint) @@ -99,6 +106,13 @@ ERROR: node is still EOpNull! 0:17 'sfoo' (shared 3-component vector of float) 0:17 Constant: 0:17 1057.000000 +0:23 Barrier (global void) +0:24 MemoryBarrier (global void) +0:25 MemoryBarrierAtomicCounter (global void) +0:26 MemoryBarrierBuffer (global void) +0:27 MemoryBarrierImage (global void) +0:28 MemoryBarrierShared (global void) +0:29 GroupMemoryBarrier (global void) 0:? Linker Objects 0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) 0:? 2 (const uint) diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 35d7be13..6a9fb201 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -1572,7 +1572,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) stageBuiltins[EShLangTessControl].append( "void barrier();" ); - if ((profile != EEsProfile && version >= 430) || esBarrier) + if ((profile != EEsProfile && version >= 420) || esBarrier) stageBuiltins[EShLangCompute].append( "void barrier();" ); @@ -1580,7 +1580,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) commonBuiltins.append( "void memoryBarrier();" ); - if ((profile != EEsProfile && version >= 430) || esBarrier) { + if ((profile != EEsProfile && version >= 420) || esBarrier) { commonBuiltins.append( "void memoryBarrierAtomicCounter();" "void memoryBarrierBuffer();" @@ -3912,6 +3912,13 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul symbolTable.setVariableExtensions("gl_MaxComputeImageUniforms", 1, &E_GL_ARB_compute_shader); symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounters", 1, &E_GL_ARB_compute_shader); symbolTable.setVariableExtensions("gl_MaxComputeAtomicCounterBuffers", 1, &E_GL_ARB_compute_shader); + + symbolTable.setFunctionExtensions("barrier", 1, &E_GL_ARB_compute_shader); + symbolTable.setFunctionExtensions("memoryBarrierAtomicCounter", 1, &E_GL_ARB_compute_shader); + symbolTable.setFunctionExtensions("memoryBarrierBuffer", 1, &E_GL_ARB_compute_shader); + symbolTable.setFunctionExtensions("memoryBarrierImage", 1, &E_GL_ARB_compute_shader); + symbolTable.setFunctionExtensions("memoryBarrierShared", 1, &E_GL_ARB_compute_shader); + symbolTable.setFunctionExtensions("groupMemoryBarrier", 1, &E_GL_ARB_compute_shader); } break; From af7f1c8f24df636a06cd9e78c767d6df77d3945b Mon Sep 17 00:00:00 2001 From: iostrows Date: Wed, 1 Jun 2016 16:40:00 +0200 Subject: [PATCH 09/48] Fix double matrix creation --- SPIRV/SpvBuilder.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index a08e5488..152a4639 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -1830,6 +1830,9 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& int numCols = getTypeNumColumns(resultTypeId); int numRows = getTypeNumRows(resultTypeId); + Instruction* instr = module.getInstruction(componentTypeId); + Id bitCount = instr->getIdOperand(0); + // Will use a two step process // 1. make a compile-time 2D array of values // 2. construct a matrix from that array @@ -1838,8 +1841,8 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& // initialize the array to the identity matrix Id ids[maxMatrixSize][maxMatrixSize]; - Id one = makeFloatConstant(1.0); - Id zero = makeFloatConstant(0.0); + Id one = (bitCount == 64 ? makeDoubleConstant(1.0) : makeFloatConstant(1.0)); + Id zero = (bitCount == 64 ? makeDoubleConstant(0.0) : makeFloatConstant(0.0)); for (int col = 0; col < 4; ++col) { for (int row = 0; row < 4; ++row) { if (col == row) From b37dc0e4584301f60a3efc026d34877071028c9d Mon Sep 17 00:00:00 2001 From: David Neto Date: Thu, 2 Jun 2016 14:37:24 -0400 Subject: [PATCH 10/48] For MinGW, statically link exes against basic runtimes Avoids the need to ship basic runtimes like libgcc_s_sjlj-1.dll with the executables. --- CMakeLists.txt | 11 +++++++++++ StandAlone/CMakeLists.txt | 2 ++ gtests/CMakeLists.txt | 1 + 3 files changed, 14 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9af56b7c..f2f23559 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,17 @@ elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") add_definitions(-std=c++11) endif() +function(glslang_set_link_args TARGET) + # For MinGW compiles, statically link against the GCC and C++ runtimes. + # This avoids the need to ship those runtimes as DLLs. + if(WIN32) + if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") + set_target_properties(${TARGET} PROPERTIES + LINK_FLAGS "-static -static-libgcc -static-libstdc++") + endif() + endif(WIN32) +endfunction(glslang_set_link_args) + # We depend on these for later projects, so they should come first. add_subdirectory(External) diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt index e2e884a5..d69351ef 100644 --- a/StandAlone/CMakeLists.txt +++ b/StandAlone/CMakeLists.txt @@ -15,6 +15,8 @@ add_executable(glslangValidator ${SOURCES}) add_executable(spirv-remap ${REMAPPER_SOURCES}) set_property(TARGET glslangValidator PROPERTY FOLDER tools) set_property(TARGET spirv-remap PROPERTY FOLDER tools) +glslang_set_link_args(glslangValidator) +glslang_set_link_args(spirv-remap) set(LIBRARIES glslang diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt index dae0df3c..4aafd11f 100644 --- a/gtests/CMakeLists.txt +++ b/gtests/CMakeLists.txt @@ -22,6 +22,7 @@ if (TARGET gmock) add_executable(glslangtests ${TEST_SOURCES}) set_property(TARGET glslangtests PROPERTY FOLDER tests) + glslang_set_link_args(glslangtests) install(TARGETS glslangtests RUNTIME DESTINATION bin) From a5c33d6ffb34ccede5b233bc724c907166b6e479 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 2 Jun 2016 23:45:21 -0600 Subject: [PATCH 11/48] SPV: Fix issue #320: Fetch needs to extract the image. GLSL takes a traditional sampler, but SPIR-V wants just the sampled image, not the combined sampler and image. --- SPIRV/GlslangToSpv.cpp | 7 + Test/baseResults/spv.newTexture.frag.out | 490 +++++++------- Test/baseResults/spv.sparseTexture.frag.out | 693 ++++++++++---------- Test/baseResults/spv.texture.frag.out | 183 +++--- 4 files changed, 695 insertions(+), 678 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 5609769b..cfbee00f 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -2558,6 +2558,13 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO bias = true; } + // See if the sampler param should really be just the SPV image part + if (cracked.fetch) { + // a fetch needs to have the image extracted first + if (builder.isSampledImage(params.sampler)) + params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); + } + // set the rest of the arguments params.coords = arguments[1]; diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out index 1c99ac01..4390e26d 100755 --- a/Test/baseResults/spv.newTexture.frag.out +++ b/Test/baseResults/spv.newTexture.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 278 +// Id's are bound by 282 Capability Shader Capability SampledRect @@ -15,7 +15,7 @@ Linked fragment stage: Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277 + EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 251 281 ExecutionMode 4 OriginUpperLeft Source GLSL 430 Name 4 "main" @@ -31,24 +31,24 @@ Linked fragment stage: Name 64 "s2DShadow" Name 81 "ic3D" Name 84 "ic1D" - Name 91 "ic2D" - Name 100 "sr" - Name 125 "sCube" - Name 136 "s2DArrayShadow" - Name 164 "iv" - Name 168 "is2D" - Name 203 "is3D" - Name 215 "isCube" - Name 227 "is2DArray" - Name 237 "iv2" - Name 241 "sCubeShadow" - Name 247 "FragData" - Name 259 "is2Dms" - Name 263 "us2D" - Name 267 "us3D" - Name 271 "usCube" - Name 275 "us2DArray" - Name 277 "ic4D" + Name 92 "ic2D" + Name 102 "sr" + Name 128 "sCube" + Name 139 "s2DArrayShadow" + Name 167 "iv" + Name 171 "is2D" + Name 206 "is3D" + Name 218 "isCube" + Name 230 "is2DArray" + Name 241 "iv2" + Name 245 "sCubeShadow" + Name 251 "FragData" + Name 263 "is2Dms" + Name 267 "us2D" + Name 271 "us3D" + Name 275 "usCube" + Name 279 "us2DArray" + Name 281 "ic4D" Decorate 13(s2D) DescriptorSet 0 Decorate 23(sCubeArrayShadow) DescriptorSet 0 Decorate 42(s3D) DescriptorSet 0 @@ -56,21 +56,21 @@ Linked fragment stage: Decorate 64(s2DShadow) DescriptorSet 0 Decorate 81(ic3D) Flat Decorate 84(ic1D) Flat - Decorate 91(ic2D) Flat - Decorate 100(sr) DescriptorSet 0 - Decorate 125(sCube) DescriptorSet 0 - Decorate 136(s2DArrayShadow) DescriptorSet 0 - Decorate 168(is2D) DescriptorSet 0 - Decorate 203(is3D) DescriptorSet 0 - Decorate 215(isCube) DescriptorSet 0 - Decorate 227(is2DArray) DescriptorSet 0 - Decorate 241(sCubeShadow) DescriptorSet 0 - Decorate 259(is2Dms) DescriptorSet 0 - Decorate 263(us2D) DescriptorSet 0 - Decorate 267(us3D) DescriptorSet 0 - Decorate 271(usCube) DescriptorSet 0 - Decorate 275(us2DArray) DescriptorSet 0 - Decorate 277(ic4D) Flat + Decorate 92(ic2D) Flat + Decorate 102(sr) DescriptorSet 0 + Decorate 128(sCube) DescriptorSet 0 + Decorate 139(s2DArrayShadow) DescriptorSet 0 + Decorate 171(is2D) DescriptorSet 0 + Decorate 206(is3D) DescriptorSet 0 + Decorate 218(isCube) DescriptorSet 0 + Decorate 230(is2DArray) DescriptorSet 0 + Decorate 245(sCubeShadow) DescriptorSet 0 + Decorate 263(is2Dms) DescriptorSet 0 + Decorate 267(us2D) DescriptorSet 0 + Decorate 271(us3D) DescriptorSet 0 + Decorate 275(usCube) DescriptorSet 0 + Decorate 279(us2DArray) DescriptorSet 0 + Decorate 281(ic4D) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -119,78 +119,78 @@ Linked fragment stage: 81(ic3D): 80(ptr) Variable Input 83: TypePointer Input 67(int) 84(ic1D): 83(ptr) Variable Input - 90: TypePointer Input 68(ivec2) - 91(ic2D): 90(ptr) Variable Input - 93: 67(int) Constant 4 - 97: TypeImage 6(float) Rect sampled format:Unknown - 98: TypeSampledImage 97 - 99: TypePointer UniformConstant 98 - 100(sr): 99(ptr) Variable UniformConstant - 103: 68(ivec2) ConstantComposite 93 93 - 122: TypeImage 6(float) Cube sampled format:Unknown - 123: TypeSampledImage 122 - 124: TypePointer UniformConstant 123 - 125(sCube): 124(ptr) Variable UniformConstant - 133: TypeImage 6(float) 2D depth array sampled format:Unknown - 134: TypeSampledImage 133 - 135: TypePointer UniformConstant 134 -136(s2DArrayShadow): 135(ptr) Variable UniformConstant - 143: 32(int) Constant 0 - 162: TypeVector 67(int) 4 - 163: TypePointer Function 162(ivec4) - 165: TypeImage 67(int) 2D sampled format:Unknown - 166: TypeSampledImage 165 - 167: TypePointer UniformConstant 166 - 168(is2D): 167(ptr) Variable UniformConstant - 200: TypeImage 67(int) 3D sampled format:Unknown - 201: TypeSampledImage 200 - 202: TypePointer UniformConstant 201 - 203(is3D): 202(ptr) Variable UniformConstant - 206: 6(float) Constant 1082549862 - 212: TypeImage 67(int) Cube sampled format:Unknown - 213: TypeSampledImage 212 - 214: TypePointer UniformConstant 213 - 215(isCube): 214(ptr) Variable UniformConstant - 224: TypeImage 67(int) 2D array sampled format:Unknown - 225: TypeSampledImage 224 - 226: TypePointer UniformConstant 225 - 227(is2DArray): 226(ptr) Variable UniformConstant - 236: TypePointer Function 68(ivec2) - 238: TypeImage 6(float) Cube depth sampled format:Unknown - 239: TypeSampledImage 238 - 240: TypePointer UniformConstant 239 -241(sCubeShadow): 240(ptr) Variable UniformConstant - 243: 67(int) Constant 2 - 246: TypePointer Output 7(fvec4) - 247(FragData): 246(ptr) Variable Output - 251: 6(float) Constant 0 - 256: TypeImage 67(int) 2D multi-sampled sampled format:Unknown - 257: TypeSampledImage 256 - 258: TypePointer UniformConstant 257 - 259(is2Dms): 258(ptr) Variable UniformConstant - 260: TypeImage 32(int) 2D sampled format:Unknown + 91: TypePointer Input 68(ivec2) + 92(ic2D): 91(ptr) Variable Input + 94: 67(int) Constant 4 + 99: TypeImage 6(float) Rect sampled format:Unknown + 100: TypeSampledImage 99 + 101: TypePointer UniformConstant 100 + 102(sr): 101(ptr) Variable UniformConstant + 105: 68(ivec2) ConstantComposite 94 94 + 125: TypeImage 6(float) Cube sampled format:Unknown + 126: TypeSampledImage 125 + 127: TypePointer UniformConstant 126 + 128(sCube): 127(ptr) Variable UniformConstant + 136: TypeImage 6(float) 2D depth array sampled format:Unknown + 137: TypeSampledImage 136 + 138: TypePointer UniformConstant 137 +139(s2DArrayShadow): 138(ptr) Variable UniformConstant + 146: 32(int) Constant 0 + 165: TypeVector 67(int) 4 + 166: TypePointer Function 165(ivec4) + 168: TypeImage 67(int) 2D sampled format:Unknown + 169: TypeSampledImage 168 + 170: TypePointer UniformConstant 169 + 171(is2D): 170(ptr) Variable UniformConstant + 203: TypeImage 67(int) 3D sampled format:Unknown + 204: TypeSampledImage 203 + 205: TypePointer UniformConstant 204 + 206(is3D): 205(ptr) Variable UniformConstant + 209: 6(float) Constant 1082549862 + 215: TypeImage 67(int) Cube sampled format:Unknown + 216: TypeSampledImage 215 + 217: TypePointer UniformConstant 216 + 218(isCube): 217(ptr) Variable UniformConstant + 227: TypeImage 67(int) 2D array sampled format:Unknown + 228: TypeSampledImage 227 + 229: TypePointer UniformConstant 228 + 230(is2DArray): 229(ptr) Variable UniformConstant + 240: TypePointer Function 68(ivec2) + 242: TypeImage 6(float) Cube depth sampled format:Unknown + 243: TypeSampledImage 242 + 244: TypePointer UniformConstant 243 +245(sCubeShadow): 244(ptr) Variable UniformConstant + 247: 67(int) Constant 2 + 250: TypePointer Output 7(fvec4) + 251(FragData): 250(ptr) Variable Output + 255: 6(float) Constant 0 + 260: TypeImage 67(int) 2D multi-sampled sampled format:Unknown 261: TypeSampledImage 260 262: TypePointer UniformConstant 261 - 263(us2D): 262(ptr) Variable UniformConstant - 264: TypeImage 32(int) 3D sampled format:Unknown + 263(is2Dms): 262(ptr) Variable UniformConstant + 264: TypeImage 32(int) 2D sampled format:Unknown 265: TypeSampledImage 264 266: TypePointer UniformConstant 265 - 267(us3D): 266(ptr) Variable UniformConstant - 268: TypeImage 32(int) Cube sampled format:Unknown + 267(us2D): 266(ptr) Variable UniformConstant + 268: TypeImage 32(int) 3D sampled format:Unknown 269: TypeSampledImage 268 270: TypePointer UniformConstant 269 - 271(usCube): 270(ptr) Variable UniformConstant - 272: TypeImage 32(int) 2D array sampled format:Unknown + 271(us3D): 270(ptr) Variable UniformConstant + 272: TypeImage 32(int) Cube sampled format:Unknown 273: TypeSampledImage 272 274: TypePointer UniformConstant 273 - 275(us2DArray): 274(ptr) Variable UniformConstant - 276: TypePointer Input 162(ivec4) - 277(ic4D): 276(ptr) Variable Input + 275(usCube): 274(ptr) Variable UniformConstant + 276: TypeImage 32(int) 2D array sampled format:Unknown + 277: TypeSampledImage 276 + 278: TypePointer UniformConstant 277 + 279(us2DArray): 278(ptr) Variable UniformConstant + 280: TypePointer Input 165(ivec4) + 281(ic4D): 280(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(v): 8(ptr) Variable Function - 164(iv): 163(ptr) Variable Function - 237(iv2): 236(ptr) Variable Function + 167(iv): 166(ptr) Variable Function + 241(iv2): 240(ptr) Variable Function 14: 11 Load 13(s2D) 18: 15(fvec2) Load 17(c2D) 19: 7(fvec4) ImageSampleImplicitLod 14 18 @@ -229,153 +229,157 @@ Linked fragment stage: 78: 40 Load 42(s3D) 82: 79(ivec3) Load 81(ic3D) 85: 67(int) Load 84(ic1D) - 86: 7(fvec4) ImageFetch 78 82 Lod 85 - 87: 7(fvec4) Load 9(v) - 88: 7(fvec4) FAdd 87 86 - Store 9(v) 88 - 89: 11 Load 13(s2D) - 92: 68(ivec2) Load 91(ic2D) - 94: 7(fvec4) ImageFetch 89 92 Lod ConstOffset 93 70 - 95: 7(fvec4) Load 9(v) - 96: 7(fvec4) FAdd 95 94 - Store 9(v) 96 - 101: 98 Load 100(sr) - 102: 68(ivec2) Load 91(ic2D) - 104: 7(fvec4) ImageFetch 101 102 ConstOffset 103 - 105: 7(fvec4) Load 9(v) - 106: 7(fvec4) FAdd 105 104 - Store 9(v) 106 - 107: 62 Load 64(s2DShadow) - 108: 53(fvec3) Load 55(c3D) - 109: 6(float) Load 29(c1D) - 110: 6(float) CompositeExtract 108 2 - 111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod ConstOffset 109 70 - 112: 34(ptr) AccessChain 9(v) 33 - 113: 6(float) Load 112 - 114: 6(float) FAdd 113 111 + 86: 39 Image 78 + 87: 7(fvec4) ImageFetch 86 82 Lod 85 + 88: 7(fvec4) Load 9(v) + 89: 7(fvec4) FAdd 88 87 + Store 9(v) 89 + 90: 11 Load 13(s2D) + 93: 68(ivec2) Load 92(ic2D) + 95: 10 Image 90 + 96: 7(fvec4) ImageFetch 95 93 Lod ConstOffset 94 70 + 97: 7(fvec4) Load 9(v) + 98: 7(fvec4) FAdd 97 96 + Store 9(v) 98 + 103: 100 Load 102(sr) + 104: 68(ivec2) Load 92(ic2D) + 106: 99 Image 103 + 107: 7(fvec4) ImageFetch 106 104 ConstOffset 105 + 108: 7(fvec4) Load 9(v) + 109: 7(fvec4) FAdd 108 107 + Store 9(v) 109 + 110: 62 Load 64(s2DShadow) + 111: 53(fvec3) Load 55(c3D) + 112: 6(float) Load 29(c1D) + 113: 6(float) CompositeExtract 111 2 + 114: 6(float) ImageSampleDrefExplicitLod 110 111 113 Lod ConstOffset 112 70 115: 34(ptr) AccessChain 9(v) 33 - Store 115 114 - 116: 11 Load 13(s2D) - 117: 53(fvec3) Load 55(c3D) - 118: 6(float) Load 29(c1D) - 119: 7(fvec4) ImageSampleProjExplicitLod 116 117 Lod ConstOffset 118 70 - 120: 7(fvec4) Load 9(v) - 121: 7(fvec4) FAdd 120 119 - Store 9(v) 121 - 126: 123 Load 125(sCube) - 127: 53(fvec3) Load 55(c3D) - 128: 53(fvec3) Load 55(c3D) - 129: 53(fvec3) Load 55(c3D) - 130: 7(fvec4) ImageSampleExplicitLod 126 127 Grad 128 129 - 131: 7(fvec4) Load 9(v) - 132: 7(fvec4) FAdd 131 130 - Store 9(v) 132 - 137: 134 Load 136(s2DArrayShadow) - 138: 7(fvec4) Load 26(c4D) - 139: 15(fvec2) Load 17(c2D) - 140: 15(fvec2) Load 17(c2D) - 141: 6(float) CompositeExtract 138 3 - 142: 6(float) ImageSampleDrefExplicitLod 137 138 141 Grad ConstOffset 139 140 70 - 144: 34(ptr) AccessChain 9(v) 143 - 145: 6(float) Load 144 - 146: 6(float) FAdd 145 142 - 147: 34(ptr) AccessChain 9(v) 143 - Store 147 146 - 148: 40 Load 42(s3D) - 149: 7(fvec4) Load 26(c4D) - 150: 53(fvec3) Load 55(c3D) - 151: 53(fvec3) Load 55(c3D) - 152: 7(fvec4) ImageSampleProjExplicitLod 148 149 Grad 150 151 - 153: 7(fvec4) Load 9(v) - 154: 7(fvec4) FAdd 153 152 - Store 9(v) 154 - 155: 11 Load 13(s2D) - 156: 53(fvec3) Load 55(c3D) - 157: 15(fvec2) Load 17(c2D) - 158: 15(fvec2) Load 17(c2D) - 159: 7(fvec4) ImageSampleProjExplicitLod 155 156 Grad ConstOffset 157 158 70 - 160: 7(fvec4) Load 9(v) - 161: 7(fvec4) FAdd 160 159 - Store 9(v) 161 - 169: 166 Load 168(is2D) - 170: 15(fvec2) Load 17(c2D) - 171: 162(ivec4) ImageSampleImplicitLod 169 170 - Store 164(iv) 171 - 172: 162(ivec4) Load 164(iv) - 173: 7(fvec4) ConvertSToF 172 - 174: 7(fvec4) Load 9(v) - 175: 7(fvec4) FAdd 174 173 - Store 9(v) 175 - 176: 166 Load 168(is2D) - 177: 7(fvec4) Load 26(c4D) - 178: 162(ivec4) ImageSampleProjImplicitLod 176 177 ConstOffset 70 - Store 164(iv) 178 - 179: 162(ivec4) Load 164(iv) - 180: 7(fvec4) ConvertSToF 179 - 181: 7(fvec4) Load 9(v) - 182: 7(fvec4) FAdd 181 180 - Store 9(v) 182 - 183: 166 Load 168(is2D) - 184: 53(fvec3) Load 55(c3D) - 185: 6(float) Load 29(c1D) - 186: 162(ivec4) ImageSampleProjExplicitLod 183 184 Lod 185 - Store 164(iv) 186 - 187: 162(ivec4) Load 164(iv) - 188: 7(fvec4) ConvertSToF 187 - 189: 7(fvec4) Load 9(v) - 190: 7(fvec4) FAdd 189 188 - Store 9(v) 190 - 191: 166 Load 168(is2D) - 192: 53(fvec3) Load 55(c3D) - 193: 15(fvec2) Load 17(c2D) - 194: 15(fvec2) Load 17(c2D) - 195: 162(ivec4) ImageSampleProjExplicitLod 191 192 Grad 193 194 - Store 164(iv) 195 - 196: 162(ivec4) Load 164(iv) - 197: 7(fvec4) ConvertSToF 196 - 198: 7(fvec4) Load 9(v) - 199: 7(fvec4) FAdd 198 197 - Store 9(v) 199 - 204: 201 Load 203(is3D) - 205: 53(fvec3) Load 55(c3D) - 207: 162(ivec4) ImageSampleImplicitLod 204 205 Bias 206 - Store 164(iv) 207 - 208: 162(ivec4) Load 164(iv) - 209: 7(fvec4) ConvertSToF 208 - 210: 7(fvec4) Load 9(v) - 211: 7(fvec4) FAdd 210 209 - Store 9(v) 211 - 216: 213 Load 215(isCube) - 217: 53(fvec3) Load 55(c3D) - 218: 6(float) Load 29(c1D) - 219: 162(ivec4) ImageSampleExplicitLod 216 217 Lod 218 - Store 164(iv) 219 - 220: 162(ivec4) Load 164(iv) - 221: 7(fvec4) ConvertSToF 220 - 222: 7(fvec4) Load 9(v) - 223: 7(fvec4) FAdd 222 221 - Store 9(v) 223 - 228: 225 Load 227(is2DArray) - 229: 79(ivec3) Load 81(ic3D) - 230: 67(int) Load 84(ic1D) - 231: 162(ivec4) ImageFetch 228 229 Lod 230 - Store 164(iv) 231 - 232: 162(ivec4) Load 164(iv) - 233: 7(fvec4) ConvertSToF 232 - 234: 7(fvec4) Load 9(v) - 235: 7(fvec4) FAdd 234 233 - Store 9(v) 235 - 242: 239 Load 241(sCubeShadow) - 244: 238 Image 242 - 245: 68(ivec2) ImageQuerySizeLod 244 243 - Store 237(iv2) 245 - 248: 7(fvec4) Load 9(v) - 249: 68(ivec2) Load 237(iv2) - 250: 15(fvec2) ConvertSToF 249 - 252: 6(float) CompositeExtract 250 0 - 253: 6(float) CompositeExtract 250 1 - 254: 7(fvec4) CompositeConstruct 252 253 251 251 - 255: 7(fvec4) FAdd 248 254 - Store 247(FragData) 255 + 116: 6(float) Load 115 + 117: 6(float) FAdd 116 114 + 118: 34(ptr) AccessChain 9(v) 33 + Store 118 117 + 119: 11 Load 13(s2D) + 120: 53(fvec3) Load 55(c3D) + 121: 6(float) Load 29(c1D) + 122: 7(fvec4) ImageSampleProjExplicitLod 119 120 Lod ConstOffset 121 70 + 123: 7(fvec4) Load 9(v) + 124: 7(fvec4) FAdd 123 122 + Store 9(v) 124 + 129: 126 Load 128(sCube) + 130: 53(fvec3) Load 55(c3D) + 131: 53(fvec3) Load 55(c3D) + 132: 53(fvec3) Load 55(c3D) + 133: 7(fvec4) ImageSampleExplicitLod 129 130 Grad 131 132 + 134: 7(fvec4) Load 9(v) + 135: 7(fvec4) FAdd 134 133 + Store 9(v) 135 + 140: 137 Load 139(s2DArrayShadow) + 141: 7(fvec4) Load 26(c4D) + 142: 15(fvec2) Load 17(c2D) + 143: 15(fvec2) Load 17(c2D) + 144: 6(float) CompositeExtract 141 3 + 145: 6(float) ImageSampleDrefExplicitLod 140 141 144 Grad ConstOffset 142 143 70 + 147: 34(ptr) AccessChain 9(v) 146 + 148: 6(float) Load 147 + 149: 6(float) FAdd 148 145 + 150: 34(ptr) AccessChain 9(v) 146 + Store 150 149 + 151: 40 Load 42(s3D) + 152: 7(fvec4) Load 26(c4D) + 153: 53(fvec3) Load 55(c3D) + 154: 53(fvec3) Load 55(c3D) + 155: 7(fvec4) ImageSampleProjExplicitLod 151 152 Grad 153 154 + 156: 7(fvec4) Load 9(v) + 157: 7(fvec4) FAdd 156 155 + Store 9(v) 157 + 158: 11 Load 13(s2D) + 159: 53(fvec3) Load 55(c3D) + 160: 15(fvec2) Load 17(c2D) + 161: 15(fvec2) Load 17(c2D) + 162: 7(fvec4) ImageSampleProjExplicitLod 158 159 Grad ConstOffset 160 161 70 + 163: 7(fvec4) Load 9(v) + 164: 7(fvec4) FAdd 163 162 + Store 9(v) 164 + 172: 169 Load 171(is2D) + 173: 15(fvec2) Load 17(c2D) + 174: 165(ivec4) ImageSampleImplicitLod 172 173 + Store 167(iv) 174 + 175: 165(ivec4) Load 167(iv) + 176: 7(fvec4) ConvertSToF 175 + 177: 7(fvec4) Load 9(v) + 178: 7(fvec4) FAdd 177 176 + Store 9(v) 178 + 179: 169 Load 171(is2D) + 180: 7(fvec4) Load 26(c4D) + 181: 165(ivec4) ImageSampleProjImplicitLod 179 180 ConstOffset 70 + Store 167(iv) 181 + 182: 165(ivec4) Load 167(iv) + 183: 7(fvec4) ConvertSToF 182 + 184: 7(fvec4) Load 9(v) + 185: 7(fvec4) FAdd 184 183 + Store 9(v) 185 + 186: 169 Load 171(is2D) + 187: 53(fvec3) Load 55(c3D) + 188: 6(float) Load 29(c1D) + 189: 165(ivec4) ImageSampleProjExplicitLod 186 187 Lod 188 + Store 167(iv) 189 + 190: 165(ivec4) Load 167(iv) + 191: 7(fvec4) ConvertSToF 190 + 192: 7(fvec4) Load 9(v) + 193: 7(fvec4) FAdd 192 191 + Store 9(v) 193 + 194: 169 Load 171(is2D) + 195: 53(fvec3) Load 55(c3D) + 196: 15(fvec2) Load 17(c2D) + 197: 15(fvec2) Load 17(c2D) + 198: 165(ivec4) ImageSampleProjExplicitLod 194 195 Grad 196 197 + Store 167(iv) 198 + 199: 165(ivec4) Load 167(iv) + 200: 7(fvec4) ConvertSToF 199 + 201: 7(fvec4) Load 9(v) + 202: 7(fvec4) FAdd 201 200 + Store 9(v) 202 + 207: 204 Load 206(is3D) + 208: 53(fvec3) Load 55(c3D) + 210: 165(ivec4) ImageSampleImplicitLod 207 208 Bias 209 + Store 167(iv) 210 + 211: 165(ivec4) Load 167(iv) + 212: 7(fvec4) ConvertSToF 211 + 213: 7(fvec4) Load 9(v) + 214: 7(fvec4) FAdd 213 212 + Store 9(v) 214 + 219: 216 Load 218(isCube) + 220: 53(fvec3) Load 55(c3D) + 221: 6(float) Load 29(c1D) + 222: 165(ivec4) ImageSampleExplicitLod 219 220 Lod 221 + Store 167(iv) 222 + 223: 165(ivec4) Load 167(iv) + 224: 7(fvec4) ConvertSToF 223 + 225: 7(fvec4) Load 9(v) + 226: 7(fvec4) FAdd 225 224 + Store 9(v) 226 + 231: 228 Load 230(is2DArray) + 232: 79(ivec3) Load 81(ic3D) + 233: 67(int) Load 84(ic1D) + 234: 227 Image 231 + 235: 165(ivec4) ImageFetch 234 232 Lod 233 + Store 167(iv) 235 + 236: 165(ivec4) Load 167(iv) + 237: 7(fvec4) ConvertSToF 236 + 238: 7(fvec4) Load 9(v) + 239: 7(fvec4) FAdd 238 237 + Store 9(v) 239 + 246: 243 Load 245(sCubeShadow) + 248: 242 Image 246 + 249: 68(ivec2) ImageQuerySizeLod 248 247 + Store 241(iv2) 249 + 252: 7(fvec4) Load 9(v) + 253: 68(ivec2) Load 241(iv2) + 254: 15(fvec2) ConvertSToF 253 + 256: 6(float) CompositeExtract 254 0 + 257: 6(float) CompositeExtract 254 1 + 258: 7(fvec4) CompositeConstruct 256 257 255 255 + 259: 7(fvec4) FAdd 252 258 + Store 251(FragData) 259 Return FunctionEnd diff --git a/Test/baseResults/spv.sparseTexture.frag.out b/Test/baseResults/spv.sparseTexture.frag.out index 315e1bb4..ae48f41d 100644 --- a/Test/baseResults/spv.sparseTexture.frag.out +++ b/Test/baseResults/spv.sparseTexture.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 433 +// Id's are bound by 438 Capability Shader Capability SampledRect @@ -15,7 +15,7 @@ Linked fragment stage: Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 33 48 89 360 388 400 418 + EntryPoint Fragment 4 "main" 33 48 89 365 393 405 423 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_ARB_sparse_texture2" @@ -39,17 +39,17 @@ Linked fragment stage: Name 111 "ResType" Name 140 "us2DRect" Name 154 "s2DArrayShadow" - Name 186 "s2DMS" - Name 223 "is2DArray" - Name 256 "sCubeShadow" - Name 289 "s2DRectShadow" - Name 360 "offsets" - Name 385 "i2D" - Name 388 "ic2" - Name 397 "ii3D" - Name 400 "ic3" - Name 409 "i2DMS" - Name 418 "outColor" + Name 188 "s2DMS" + Name 228 "is2DArray" + Name 261 "sCubeShadow" + Name 294 "s2DRectShadow" + Name 365 "offsets" + Name 390 "i2D" + Name 393 "ic2" + Name 402 "ii3D" + Name 405 "ic3" + Name 414 "i2DMS" + Name 423 "outColor" Decorate 29(s2D) DescriptorSet 0 Decorate 44(s3D) DescriptorSet 0 Decorate 59(isCube) DescriptorSet 0 @@ -58,16 +58,16 @@ Linked fragment stage: Decorate 108(usCubeArray) DescriptorSet 0 Decorate 140(us2DRect) DescriptorSet 0 Decorate 154(s2DArrayShadow) DescriptorSet 0 - Decorate 186(s2DMS) DescriptorSet 0 - Decorate 223(is2DArray) DescriptorSet 0 - Decorate 256(sCubeShadow) DescriptorSet 0 - Decorate 289(s2DRectShadow) DescriptorSet 0 - Decorate 360(offsets) Flat - Decorate 385(i2D) DescriptorSet 0 - Decorate 388(ic2) Flat - Decorate 397(ii3D) DescriptorSet 0 - Decorate 400(ic3) Flat - Decorate 409(i2DMS) DescriptorSet 0 + Decorate 188(s2DMS) DescriptorSet 0 + Decorate 228(is2DArray) DescriptorSet 0 + Decorate 261(sCubeShadow) DescriptorSet 0 + Decorate 294(s2DRectShadow) DescriptorSet 0 + Decorate 365(offsets) Flat + Decorate 390(i2D) DescriptorSet 0 + Decorate 393(ic2) Flat + Decorate 402(ii3D) DescriptorSet 0 + Decorate 405(ic3) Flat + Decorate 414(i2DMS) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -143,58 +143,58 @@ Linked fragment stage: 157: 6(int) Constant 5 158: 143(ivec2) ConstantComposite 157 157 159: 20(int) Constant 2 - 183: TypeImage 10(float) 2D multi-sampled sampled format:Unknown - 184: TypeSampledImage 183 - 185: TypePointer UniformConstant 184 - 186(s2DMS): 185(ptr) Variable UniformConstant - 190: 6(int) Constant 4 - 199: 129(ivec3) ConstantComposite 190 190 190 - 220: TypeImage 6(int) 2D array sampled format:Unknown - 221: TypeSampledImage 220 - 222: TypePointer UniformConstant 221 - 223(is2DArray): 222(ptr) Variable UniformConstant - 226: 6(int) Constant 6 - 227: 143(ivec2) ConstantComposite 226 226 - 235: 6(int) Constant 7 - 236: 143(ivec2) ConstantComposite 235 235 - 253: TypeImage 10(float) Cube depth sampled format:Unknown - 254: TypeSampledImage 253 - 255: TypePointer UniformConstant 254 -256(sCubeShadow): 255(ptr) Variable UniformConstant - 286: TypeImage 10(float) Rect depth sampled format:Unknown - 287: TypeSampledImage 286 - 288: TypePointer UniformConstant 287 -289(s2DRectShadow): 288(ptr) Variable UniformConstant - 294: 20(int) Constant 3 - 306: 143(ivec2) ConstantComposite 130 130 - 335: 143(ivec2) ConstantComposite 190 190 - 357: 20(int) Constant 4 - 358: TypeArray 143(ivec2) 357 - 359: TypePointer Input 358 - 360(offsets): 359(ptr) Variable Input - 383: TypeImage 10(float) 2D nonsampled format:Rgba32f - 384: TypePointer UniformConstant 383 - 385(i2D): 384(ptr) Variable UniformConstant - 387: TypePointer Input 143(ivec2) - 388(ic2): 387(ptr) Variable Input - 395: TypeImage 6(int) 3D nonsampled format:Rgba32i - 396: TypePointer UniformConstant 395 - 397(ii3D): 396(ptr) Variable UniformConstant - 399: TypePointer Input 129(ivec3) - 400(ic3): 399(ptr) Variable Input - 407: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f - 408: TypePointer UniformConstant 407 - 409(i2DMS): 408(ptr) Variable UniformConstant - 417: TypePointer Output 11(fvec4) - 418(outColor): 417(ptr) Variable Output - 421: TypeBool + 185: TypeImage 10(float) 2D multi-sampled sampled format:Unknown + 186: TypeSampledImage 185 + 187: TypePointer UniformConstant 186 + 188(s2DMS): 187(ptr) Variable UniformConstant + 192: 6(int) Constant 4 + 202: 129(ivec3) ConstantComposite 192 192 192 + 225: TypeImage 6(int) 2D array sampled format:Unknown + 226: TypeSampledImage 225 + 227: TypePointer UniformConstant 226 + 228(is2DArray): 227(ptr) Variable UniformConstant + 231: 6(int) Constant 6 + 232: 143(ivec2) ConstantComposite 231 231 + 240: 6(int) Constant 7 + 241: 143(ivec2) ConstantComposite 240 240 + 258: TypeImage 10(float) Cube depth sampled format:Unknown + 259: TypeSampledImage 258 + 260: TypePointer UniformConstant 259 +261(sCubeShadow): 260(ptr) Variable UniformConstant + 291: TypeImage 10(float) Rect depth sampled format:Unknown + 292: TypeSampledImage 291 + 293: TypePointer UniformConstant 292 +294(s2DRectShadow): 293(ptr) Variable UniformConstant + 299: 20(int) Constant 3 + 311: 143(ivec2) ConstantComposite 130 130 + 340: 143(ivec2) ConstantComposite 192 192 + 362: 20(int) Constant 4 + 363: TypeArray 143(ivec2) 362 + 364: TypePointer Input 363 + 365(offsets): 364(ptr) Variable Input + 388: TypeImage 10(float) 2D nonsampled format:Rgba32f + 389: TypePointer UniformConstant 388 + 390(i2D): 389(ptr) Variable UniformConstant + 392: TypePointer Input 143(ivec2) + 393(ic2): 392(ptr) Variable Input + 400: TypeImage 6(int) 3D nonsampled format:Rgba32i + 401: TypePointer UniformConstant 400 + 402(ii3D): 401(ptr) Variable UniformConstant + 404: TypePointer Input 129(ivec3) + 405(ic3): 404(ptr) Variable Input + 412: TypeImage 10(float) 2D multi-sampled nonsampled format:Rgba32f + 413: TypePointer UniformConstant 412 + 414(i2DMS): 413(ptr) Variable UniformConstant + 422: TypePointer Output 11(fvec4) + 423(outColor): 422(ptr) Variable Output + 426: TypeBool 4(main): 2 Function None 3 5: Label 8(resident): 7(ptr) Variable Function 13(texel): 12(ptr) Variable Function 18(itexel): 17(ptr) Variable Function 23(utexel): 22(ptr) Variable Function - 419: 12(ptr) Variable Function + 424: 12(ptr) Variable Function Store 8(resident) 9 Store 13(texel) 15 Store 18(itexel) 19 @@ -308,281 +308,286 @@ Linked fragment stage: 167: 27 Load 29(s2D) 168: 31(fvec2) Load 33(c2) 169: 143(ivec2) ConvertFToS 168 - 170: 35(ResType) ImageSparseFetch 167 169 Lod 130 - 171: 11(fvec4) CompositeExtract 170 1 - Store 13(texel) 171 - 172: 6(int) CompositeExtract 170 0 - 173: 6(int) Load 8(resident) - 174: 6(int) BitwiseOr 173 172 - Store 8(resident) 174 - 175: 138 Load 140(us2DRect) - 176: 31(fvec2) Load 33(c2) - 177: 143(ivec2) ConvertFToS 176 - 178:111(ResType) ImageSparseFetch 175 177 - 179: 21(ivec4) CompositeExtract 178 1 - Store 23(utexel) 179 - 180: 6(int) CompositeExtract 178 0 - 181: 6(int) Load 8(resident) - 182: 6(int) BitwiseOr 181 180 - Store 8(resident) 182 - 187: 184 Load 186(s2DMS) - 188: 31(fvec2) Load 33(c2) - 189: 143(ivec2) ConvertFToS 188 - 191: 35(ResType) ImageSparseFetch 187 189 Sample 190 - 192: 11(fvec4) CompositeExtract 191 1 - Store 13(texel) 192 - 193: 6(int) CompositeExtract 191 0 - 194: 6(int) Load 8(resident) - 195: 6(int) BitwiseOr 194 193 - Store 8(resident) 195 - 196: 42 Load 44(s3D) - 197: 46(fvec3) Load 48(c3) - 198: 129(ivec3) ConvertFToS 197 - 200: 35(ResType) ImageSparseFetch 196 198 Lod ConstOffset 130 199 - 201: 11(fvec4) CompositeExtract 200 1 - Store 13(texel) 201 - 202: 6(int) CompositeExtract 200 0 - 203: 6(int) Load 8(resident) - 204: 6(int) BitwiseOr 203 202 - Store 8(resident) 204 - 205: 138 Load 140(us2DRect) - 206: 31(fvec2) Load 33(c2) - 207: 143(ivec2) ConvertFToS 206 - 208:111(ResType) ImageSparseFetch 205 207 ConstOffset 145 - 209: 21(ivec4) CompositeExtract 208 1 - Store 23(utexel) 209 - 210: 6(int) CompositeExtract 208 0 - 211: 6(int) Load 8(resident) - 212: 6(int) BitwiseOr 211 210 - Store 8(resident) 212 - 213: 27 Load 29(s2D) - 214: 31(fvec2) Load 33(c2) - 215: 35(ResType) ImageSparseSampleExplicitLod 213 214 Lod ConstOffset 50 158 - 216: 11(fvec4) CompositeExtract 215 1 - Store 13(texel) 216 - 217: 6(int) CompositeExtract 215 0 - 218: 6(int) Load 8(resident) - 219: 6(int) BitwiseOr 218 217 - Store 8(resident) 219 - 224: 221 Load 223(is2DArray) - 225: 46(fvec3) Load 48(c3) - 228: 62(ResType) ImageSparseSampleExplicitLod 224 225 Lod ConstOffset 50 227 - 229: 16(ivec4) CompositeExtract 228 1 - Store 18(itexel) 229 - 230: 6(int) CompositeExtract 228 0 - 231: 6(int) Load 8(resident) - 232: 6(int) BitwiseOr 231 230 - Store 8(resident) 232 - 233: 69 Load 71(s2DShadow) - 234: 46(fvec3) Load 48(c3) - 237: 74(ptr) AccessChain 13(texel) 159 - 238: 10(float) CompositeExtract 234 2 - 239: 77(ResType) ImageSparseSampleDrefExplicitLod 233 234 238 Lod ConstOffset 50 236 - 240: 10(float) CompositeExtract 239 1 - Store 237 240 - 241: 6(int) CompositeExtract 239 0 - 242: 6(int) Load 8(resident) - 243: 6(int) BitwiseOr 242 241 - Store 8(resident) 243 - 244: 42 Load 44(s3D) - 245: 46(fvec3) Load 48(c3) - 246: 46(fvec3) Load 48(c3) - 247: 46(fvec3) Load 48(c3) - 248: 35(ResType) ImageSparseSampleExplicitLod 244 245 Grad 246 247 - 249: 11(fvec4) CompositeExtract 248 1 - Store 13(texel) 249 - 250: 6(int) CompositeExtract 248 0 - 251: 6(int) Load 8(resident) - 252: 6(int) BitwiseOr 251 250 - Store 8(resident) 252 - 257: 254 Load 256(sCubeShadow) - 258: 11(fvec4) Load 89(c4) - 259: 46(fvec3) Load 48(c3) - 260: 46(fvec3) Load 48(c3) - 261: 74(ptr) AccessChain 13(texel) 119 - 262: 10(float) CompositeExtract 258 3 - 263: 77(ResType) ImageSparseSampleDrefExplicitLod 257 258 262 Grad 259 260 - 264: 10(float) CompositeExtract 263 1 - Store 261 264 - 265: 6(int) CompositeExtract 263 0 - 266: 6(int) Load 8(resident) - 267: 6(int) BitwiseOr 266 265 - Store 8(resident) 267 - 268: 106 Load 108(usCubeArray) - 269: 11(fvec4) Load 89(c4) - 270: 46(fvec3) Load 48(c3) - 271: 46(fvec3) Load 48(c3) - 272:111(ResType) ImageSparseSampleExplicitLod 268 269 Grad 270 271 - 273: 21(ivec4) CompositeExtract 272 1 - Store 23(utexel) 273 - 274: 6(int) CompositeExtract 272 0 - 275: 6(int) Load 8(resident) - 276: 6(int) BitwiseOr 275 274 - Store 8(resident) 276 - 277: 27 Load 29(s2D) - 278: 31(fvec2) Load 33(c2) - 279: 31(fvec2) Load 33(c2) - 280: 31(fvec2) Load 33(c2) - 281: 35(ResType) ImageSparseSampleExplicitLod 277 278 Grad ConstOffset 279 280 158 - 282: 11(fvec4) CompositeExtract 281 1 - Store 13(texel) 282 - 283: 6(int) CompositeExtract 281 0 - 284: 6(int) Load 8(resident) - 285: 6(int) BitwiseOr 284 283 - Store 8(resident) 285 - 290: 287 Load 289(s2DRectShadow) - 291: 46(fvec3) Load 48(c3) - 292: 31(fvec2) Load 33(c2) - 293: 31(fvec2) Load 33(c2) - 295: 74(ptr) AccessChain 13(texel) 294 - 296: 10(float) CompositeExtract 291 2 - 297: 77(ResType) ImageSparseSampleDrefExplicitLod 290 291 296 Grad ConstOffset 292 293 227 - 298: 10(float) CompositeExtract 297 1 - Store 295 298 - 299: 6(int) CompositeExtract 297 0 - 300: 6(int) Load 8(resident) - 301: 6(int) BitwiseOr 300 299 - Store 8(resident) 301 - 302: 221 Load 223(is2DArray) - 303: 46(fvec3) Load 48(c3) - 304: 31(fvec2) Load 33(c2) - 305: 31(fvec2) Load 33(c2) - 307: 62(ResType) ImageSparseSampleExplicitLod 302 303 Grad ConstOffset 304 305 306 - 308: 16(ivec4) CompositeExtract 307 1 - Store 18(itexel) 308 - 309: 6(int) CompositeExtract 307 0 - 310: 6(int) Load 8(resident) - 311: 6(int) BitwiseOr 310 309 - Store 8(resident) 311 - 312: 27 Load 29(s2D) - 313: 31(fvec2) Load 33(c2) - 314: 35(ResType) ImageSparseGather 312 313 9 - 315: 11(fvec4) CompositeExtract 314 1 - Store 13(texel) 315 - 316: 6(int) CompositeExtract 314 0 - 317: 6(int) Load 8(resident) - 318: 6(int) BitwiseOr 317 316 - Store 8(resident) 318 - 319: 221 Load 223(is2DArray) - 320: 46(fvec3) Load 48(c3) - 321: 62(ResType) ImageSparseGather 319 320 130 - 322: 16(ivec4) CompositeExtract 321 1 - Store 18(itexel) 322 - 323: 6(int) CompositeExtract 321 0 - 324: 6(int) Load 8(resident) - 325: 6(int) BitwiseOr 324 323 - Store 8(resident) 325 - 326: 152 Load 154(s2DArrayShadow) - 327: 46(fvec3) Load 48(c3) - 328: 35(ResType) ImageSparseDrefGather 326 327 50 - 329: 11(fvec4) CompositeExtract 328 1 - Store 13(texel) 329 - 330: 6(int) CompositeExtract 328 0 - 331: 6(int) Load 8(resident) - 332: 6(int) BitwiseOr 331 330 - Store 8(resident) 332 - 333: 27 Load 29(s2D) - 334: 31(fvec2) Load 33(c2) - 336: 35(ResType) ImageSparseGather 333 334 9 ConstOffset 335 - 337: 11(fvec4) CompositeExtract 336 1 - Store 13(texel) 337 - 338: 6(int) CompositeExtract 336 0 - 339: 6(int) Load 8(resident) - 340: 6(int) BitwiseOr 339 338 - Store 8(resident) 340 - 341: 221 Load 223(is2DArray) - 342: 46(fvec3) Load 48(c3) - 343: 62(ResType) ImageSparseGather 341 342 130 ConstOffset 158 - 344: 16(ivec4) CompositeExtract 343 1 - Store 18(itexel) 344 - 345: 6(int) CompositeExtract 343 0 - 346: 6(int) Load 8(resident) - 347: 6(int) BitwiseOr 346 345 - Store 8(resident) 347 - 348: 287 Load 289(s2DRectShadow) - 349: 31(fvec2) Load 33(c2) - 350: 35(ResType) ImageSparseDrefGather 348 349 50 ConstOffset 236 - 351: 11(fvec4) CompositeExtract 350 1 - Store 13(texel) 351 - 352: 6(int) CompositeExtract 350 0 - 353: 6(int) Load 8(resident) - 354: 6(int) BitwiseOr 353 352 - Store 8(resident) 354 - 355: 27 Load 29(s2D) - 356: 31(fvec2) Load 33(c2) - 361: 358 Load 360(offsets) - 362: 35(ResType) ImageSparseGather 355 356 9 ConstOffsets 361 - 363: 11(fvec4) CompositeExtract 362 1 - Store 13(texel) 363 - 364: 6(int) CompositeExtract 362 0 - 365: 6(int) Load 8(resident) - 366: 6(int) BitwiseOr 365 364 - Store 8(resident) 366 - 367: 221 Load 223(is2DArray) - 368: 46(fvec3) Load 48(c3) - 369: 358 Load 360(offsets) - 370: 62(ResType) ImageSparseGather 367 368 130 ConstOffsets 369 - 371: 16(ivec4) CompositeExtract 370 1 - Store 18(itexel) 371 - 372: 6(int) CompositeExtract 370 0 - 373: 6(int) Load 8(resident) - 374: 6(int) BitwiseOr 373 372 - Store 8(resident) 374 - 375: 287 Load 289(s2DRectShadow) - 376: 31(fvec2) Load 33(c2) - 377: 358 Load 360(offsets) - 378: 35(ResType) ImageSparseDrefGather 375 376 50 ConstOffsets 377 - 379: 11(fvec4) CompositeExtract 378 1 - Store 13(texel) 379 - 380: 6(int) CompositeExtract 378 0 - 381: 6(int) Load 8(resident) - 382: 6(int) BitwiseOr 381 380 - Store 8(resident) 382 - 386: 383 Load 385(i2D) - 389: 143(ivec2) Load 388(ic2) - 390: 35(ResType) ImageSparseRead 386 389 - 391: 11(fvec4) CompositeExtract 390 1 - Store 13(texel) 391 - 392: 6(int) CompositeExtract 390 0 - 393: 6(int) Load 8(resident) - 394: 6(int) BitwiseOr 393 392 - Store 8(resident) 394 - 398: 395 Load 397(ii3D) - 401: 129(ivec3) Load 400(ic3) - 402: 62(ResType) ImageSparseRead 398 401 - 403: 16(ivec4) CompositeExtract 402 1 - Store 18(itexel) 403 - 404: 6(int) CompositeExtract 402 0 - 405: 6(int) Load 8(resident) - 406: 6(int) BitwiseOr 405 404 - Store 8(resident) 406 - 410: 407 Load 409(i2DMS) - 411: 143(ivec2) Load 388(ic2) - 412: 35(ResType) ImageSparseRead 410 411 Sample 144 - 413: 11(fvec4) CompositeExtract 412 1 - Store 13(texel) 413 - 414: 6(int) CompositeExtract 412 0 - 415: 6(int) Load 8(resident) - 416: 6(int) BitwiseOr 415 414 - Store 8(resident) 416 + 170: 26 Image 167 + 171: 35(ResType) ImageSparseFetch 170 169 Lod 130 + 172: 11(fvec4) CompositeExtract 171 1 + Store 13(texel) 172 + 173: 6(int) CompositeExtract 171 0 + 174: 6(int) Load 8(resident) + 175: 6(int) BitwiseOr 174 173 + Store 8(resident) 175 + 176: 138 Load 140(us2DRect) + 177: 31(fvec2) Load 33(c2) + 178: 143(ivec2) ConvertFToS 177 + 179: 137 Image 176 + 180:111(ResType) ImageSparseFetch 179 178 + 181: 21(ivec4) CompositeExtract 180 1 + Store 23(utexel) 181 + 182: 6(int) CompositeExtract 180 0 + 183: 6(int) Load 8(resident) + 184: 6(int) BitwiseOr 183 182 + Store 8(resident) 184 + 189: 186 Load 188(s2DMS) + 190: 31(fvec2) Load 33(c2) + 191: 143(ivec2) ConvertFToS 190 + 193: 185 Image 189 + 194: 35(ResType) ImageSparseFetch 193 191 Sample 192 + 195: 11(fvec4) CompositeExtract 194 1 + Store 13(texel) 195 + 196: 6(int) CompositeExtract 194 0 + 197: 6(int) Load 8(resident) + 198: 6(int) BitwiseOr 197 196 + Store 8(resident) 198 + 199: 42 Load 44(s3D) + 200: 46(fvec3) Load 48(c3) + 201: 129(ivec3) ConvertFToS 200 + 203: 41 Image 199 + 204: 35(ResType) ImageSparseFetch 203 201 Lod ConstOffset 130 202 + 205: 11(fvec4) CompositeExtract 204 1 + Store 13(texel) 205 + 206: 6(int) CompositeExtract 204 0 + 207: 6(int) Load 8(resident) + 208: 6(int) BitwiseOr 207 206 + Store 8(resident) 208 + 209: 138 Load 140(us2DRect) + 210: 31(fvec2) Load 33(c2) + 211: 143(ivec2) ConvertFToS 210 + 212: 137 Image 209 + 213:111(ResType) ImageSparseFetch 212 211 ConstOffset 145 + 214: 21(ivec4) CompositeExtract 213 1 + Store 23(utexel) 214 + 215: 6(int) CompositeExtract 213 0 + 216: 6(int) Load 8(resident) + 217: 6(int) BitwiseOr 216 215 + Store 8(resident) 217 + 218: 27 Load 29(s2D) + 219: 31(fvec2) Load 33(c2) + 220: 35(ResType) ImageSparseSampleExplicitLod 218 219 Lod ConstOffset 50 158 + 221: 11(fvec4) CompositeExtract 220 1 + Store 13(texel) 221 + 222: 6(int) CompositeExtract 220 0 + 223: 6(int) Load 8(resident) + 224: 6(int) BitwiseOr 223 222 + Store 8(resident) 224 + 229: 226 Load 228(is2DArray) + 230: 46(fvec3) Load 48(c3) + 233: 62(ResType) ImageSparseSampleExplicitLod 229 230 Lod ConstOffset 50 232 + 234: 16(ivec4) CompositeExtract 233 1 + Store 18(itexel) 234 + 235: 6(int) CompositeExtract 233 0 + 236: 6(int) Load 8(resident) + 237: 6(int) BitwiseOr 236 235 + Store 8(resident) 237 + 238: 69 Load 71(s2DShadow) + 239: 46(fvec3) Load 48(c3) + 242: 74(ptr) AccessChain 13(texel) 159 + 243: 10(float) CompositeExtract 239 2 + 244: 77(ResType) ImageSparseSampleDrefExplicitLod 238 239 243 Lod ConstOffset 50 241 + 245: 10(float) CompositeExtract 244 1 + Store 242 245 + 246: 6(int) CompositeExtract 244 0 + 247: 6(int) Load 8(resident) + 248: 6(int) BitwiseOr 247 246 + Store 8(resident) 248 + 249: 42 Load 44(s3D) + 250: 46(fvec3) Load 48(c3) + 251: 46(fvec3) Load 48(c3) + 252: 46(fvec3) Load 48(c3) + 253: 35(ResType) ImageSparseSampleExplicitLod 249 250 Grad 251 252 + 254: 11(fvec4) CompositeExtract 253 1 + Store 13(texel) 254 + 255: 6(int) CompositeExtract 253 0 + 256: 6(int) Load 8(resident) + 257: 6(int) BitwiseOr 256 255 + Store 8(resident) 257 + 262: 259 Load 261(sCubeShadow) + 263: 11(fvec4) Load 89(c4) + 264: 46(fvec3) Load 48(c3) + 265: 46(fvec3) Load 48(c3) + 266: 74(ptr) AccessChain 13(texel) 119 + 267: 10(float) CompositeExtract 263 3 + 268: 77(ResType) ImageSparseSampleDrefExplicitLod 262 263 267 Grad 264 265 + 269: 10(float) CompositeExtract 268 1 + Store 266 269 + 270: 6(int) CompositeExtract 268 0 + 271: 6(int) Load 8(resident) + 272: 6(int) BitwiseOr 271 270 + Store 8(resident) 272 + 273: 106 Load 108(usCubeArray) + 274: 11(fvec4) Load 89(c4) + 275: 46(fvec3) Load 48(c3) + 276: 46(fvec3) Load 48(c3) + 277:111(ResType) ImageSparseSampleExplicitLod 273 274 Grad 275 276 + 278: 21(ivec4) CompositeExtract 277 1 + Store 23(utexel) 278 + 279: 6(int) CompositeExtract 277 0 + 280: 6(int) Load 8(resident) + 281: 6(int) BitwiseOr 280 279 + Store 8(resident) 281 + 282: 27 Load 29(s2D) + 283: 31(fvec2) Load 33(c2) + 284: 31(fvec2) Load 33(c2) + 285: 31(fvec2) Load 33(c2) + 286: 35(ResType) ImageSparseSampleExplicitLod 282 283 Grad ConstOffset 284 285 158 + 287: 11(fvec4) CompositeExtract 286 1 + Store 13(texel) 287 + 288: 6(int) CompositeExtract 286 0 + 289: 6(int) Load 8(resident) + 290: 6(int) BitwiseOr 289 288 + Store 8(resident) 290 + 295: 292 Load 294(s2DRectShadow) + 296: 46(fvec3) Load 48(c3) + 297: 31(fvec2) Load 33(c2) + 298: 31(fvec2) Load 33(c2) + 300: 74(ptr) AccessChain 13(texel) 299 + 301: 10(float) CompositeExtract 296 2 + 302: 77(ResType) ImageSparseSampleDrefExplicitLod 295 296 301 Grad ConstOffset 297 298 232 + 303: 10(float) CompositeExtract 302 1 + Store 300 303 + 304: 6(int) CompositeExtract 302 0 + 305: 6(int) Load 8(resident) + 306: 6(int) BitwiseOr 305 304 + Store 8(resident) 306 + 307: 226 Load 228(is2DArray) + 308: 46(fvec3) Load 48(c3) + 309: 31(fvec2) Load 33(c2) + 310: 31(fvec2) Load 33(c2) + 312: 62(ResType) ImageSparseSampleExplicitLod 307 308 Grad ConstOffset 309 310 311 + 313: 16(ivec4) CompositeExtract 312 1 + Store 18(itexel) 313 + 314: 6(int) CompositeExtract 312 0 + 315: 6(int) Load 8(resident) + 316: 6(int) BitwiseOr 315 314 + Store 8(resident) 316 + 317: 27 Load 29(s2D) + 318: 31(fvec2) Load 33(c2) + 319: 35(ResType) ImageSparseGather 317 318 9 + 320: 11(fvec4) CompositeExtract 319 1 + Store 13(texel) 320 + 321: 6(int) CompositeExtract 319 0 + 322: 6(int) Load 8(resident) + 323: 6(int) BitwiseOr 322 321 + Store 8(resident) 323 + 324: 226 Load 228(is2DArray) + 325: 46(fvec3) Load 48(c3) + 326: 62(ResType) ImageSparseGather 324 325 130 + 327: 16(ivec4) CompositeExtract 326 1 + Store 18(itexel) 327 + 328: 6(int) CompositeExtract 326 0 + 329: 6(int) Load 8(resident) + 330: 6(int) BitwiseOr 329 328 + Store 8(resident) 330 + 331: 152 Load 154(s2DArrayShadow) + 332: 46(fvec3) Load 48(c3) + 333: 35(ResType) ImageSparseDrefGather 331 332 50 + 334: 11(fvec4) CompositeExtract 333 1 + Store 13(texel) 334 + 335: 6(int) CompositeExtract 333 0 + 336: 6(int) Load 8(resident) + 337: 6(int) BitwiseOr 336 335 + Store 8(resident) 337 + 338: 27 Load 29(s2D) + 339: 31(fvec2) Load 33(c2) + 341: 35(ResType) ImageSparseGather 338 339 9 ConstOffset 340 + 342: 11(fvec4) CompositeExtract 341 1 + Store 13(texel) 342 + 343: 6(int) CompositeExtract 341 0 + 344: 6(int) Load 8(resident) + 345: 6(int) BitwiseOr 344 343 + Store 8(resident) 345 + 346: 226 Load 228(is2DArray) + 347: 46(fvec3) Load 48(c3) + 348: 62(ResType) ImageSparseGather 346 347 130 ConstOffset 158 + 349: 16(ivec4) CompositeExtract 348 1 + Store 18(itexel) 349 + 350: 6(int) CompositeExtract 348 0 + 351: 6(int) Load 8(resident) + 352: 6(int) BitwiseOr 351 350 + Store 8(resident) 352 + 353: 292 Load 294(s2DRectShadow) + 354: 31(fvec2) Load 33(c2) + 355: 35(ResType) ImageSparseDrefGather 353 354 50 ConstOffset 241 + 356: 11(fvec4) CompositeExtract 355 1 + Store 13(texel) 356 + 357: 6(int) CompositeExtract 355 0 + 358: 6(int) Load 8(resident) + 359: 6(int) BitwiseOr 358 357 + Store 8(resident) 359 + 360: 27 Load 29(s2D) + 361: 31(fvec2) Load 33(c2) + 366: 363 Load 365(offsets) + 367: 35(ResType) ImageSparseGather 360 361 9 ConstOffsets 366 + 368: 11(fvec4) CompositeExtract 367 1 + Store 13(texel) 368 + 369: 6(int) CompositeExtract 367 0 + 370: 6(int) Load 8(resident) + 371: 6(int) BitwiseOr 370 369 + Store 8(resident) 371 + 372: 226 Load 228(is2DArray) + 373: 46(fvec3) Load 48(c3) + 374: 363 Load 365(offsets) + 375: 62(ResType) ImageSparseGather 372 373 130 ConstOffsets 374 + 376: 16(ivec4) CompositeExtract 375 1 + Store 18(itexel) 376 + 377: 6(int) CompositeExtract 375 0 + 378: 6(int) Load 8(resident) + 379: 6(int) BitwiseOr 378 377 + Store 8(resident) 379 + 380: 292 Load 294(s2DRectShadow) + 381: 31(fvec2) Load 33(c2) + 382: 363 Load 365(offsets) + 383: 35(ResType) ImageSparseDrefGather 380 381 50 ConstOffsets 382 + 384: 11(fvec4) CompositeExtract 383 1 + Store 13(texel) 384 + 385: 6(int) CompositeExtract 383 0 + 386: 6(int) Load 8(resident) + 387: 6(int) BitwiseOr 386 385 + Store 8(resident) 387 + 391: 388 Load 390(i2D) + 394: 143(ivec2) Load 393(ic2) + 395: 35(ResType) ImageSparseRead 391 394 + 396: 11(fvec4) CompositeExtract 395 1 + Store 13(texel) 396 + 397: 6(int) CompositeExtract 395 0 + 398: 6(int) Load 8(resident) + 399: 6(int) BitwiseOr 398 397 + Store 8(resident) 399 + 403: 400 Load 402(ii3D) + 406: 129(ivec3) Load 405(ic3) + 407: 62(ResType) ImageSparseRead 403 406 + 408: 16(ivec4) CompositeExtract 407 1 + Store 18(itexel) 408 + 409: 6(int) CompositeExtract 407 0 + 410: 6(int) Load 8(resident) + 411: 6(int) BitwiseOr 410 409 + Store 8(resident) 411 + 415: 412 Load 414(i2DMS) + 416: 143(ivec2) Load 393(ic2) + 417: 35(ResType) ImageSparseRead 415 416 Sample 144 + 418: 11(fvec4) CompositeExtract 417 1 + Store 13(texel) 418 + 419: 6(int) CompositeExtract 417 0 420: 6(int) Load 8(resident) - 422: 421(bool) ImageSparseTexelsResident 420 - SelectionMerge 424 None - BranchConditional 422 423 426 - 423: Label - 425: 11(fvec4) Load 13(texel) - Store 419 425 - Branch 424 - 426: Label - 427: 16(ivec4) Load 18(itexel) - 428: 11(fvec4) ConvertSToF 427 - 429: 21(ivec4) Load 23(utexel) - 430: 11(fvec4) ConvertUToF 429 - 431: 11(fvec4) FAdd 428 430 - Store 419 431 - Branch 424 - 424: Label - 432: 11(fvec4) Load 419 - Store 418(outColor) 432 + 421: 6(int) BitwiseOr 420 419 + Store 8(resident) 421 + 425: 6(int) Load 8(resident) + 427: 426(bool) ImageSparseTexelsResident 425 + SelectionMerge 429 None + BranchConditional 427 428 431 + 428: Label + 430: 11(fvec4) Load 13(texel) + Store 424 430 + Branch 429 + 431: Label + 432: 16(ivec4) Load 18(itexel) + 433: 11(fvec4) ConvertSToF 432 + 434: 21(ivec4) Load 23(utexel) + 435: 11(fvec4) ConvertUToF 434 + 436: 11(fvec4) FAdd 433 435 + Store 424 436 + Branch 429 + 429: Label + 437: 11(fvec4) Load 424 + Store 423(outColor) 437 Return FunctionEnd diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out index df5fe2be..b5794751 100755 --- a/Test/baseResults/spv.texture.frag.out +++ b/Test/baseResults/spv.texture.frag.out @@ -9,13 +9,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 290 +// Id's are bound by 291 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 47 276 279 282 288 289 + EntryPoint Fragment 4 "main" 47 277 280 283 289 290 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" @@ -36,13 +36,13 @@ Linked fragment stage: 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" + Name 222 "gradX" + Name 225 "gradY" + Name 277 "gl_FragColor" + Name 280 "u" + Name 283 "blend" + Name 289 "scale" + Name 290 "t" Decorate 32(texSampler1D) DescriptorSet 0 Decorate 72(texSampler2D) DescriptorSet 0 Decorate 98(texSampler3D) DescriptorSet 0 @@ -101,18 +101,18 @@ Linked fragment stage: 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 Input 22(fvec4) - 279(u): 278(ptr) Variable Input - 281: TypePointer Input 6(float) - 282(blend): 281(ptr) Variable Input - 288(scale): 46(ptr) Variable Input - 289(t): 46(ptr) Variable Input + 221: TypePointer Function 45(fvec2) + 250: 204(int) Constant 3 + 251: 204(int) Constant 4294967289 + 252: 205(ivec2) ConstantComposite 250 251 + 276: TypePointer Output 22(fvec4) +277(gl_FragColor): 276(ptr) Variable Output + 279: TypePointer Input 22(fvec4) + 280(u): 279(ptr) Variable Input + 282: TypePointer Input 6(float) + 283(blend): 282(ptr) Variable Input + 289(scale): 46(ptr) Variable Input + 290(t): 46(ptr) Variable Input 4(main): 2 Function None 3 5: Label 8(blendscale): 7(ptr) Variable Function @@ -125,8 +125,8 @@ Linked fragment stage: 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 + 222(gradX): 221(ptr) Variable Function + 225(gradY): 221(ptr) Variable Function Store 8(blendscale) 9 Store 10(bias) 11 Store 12(lod) 13 @@ -312,73 +312,74 @@ Linked fragment stage: 214: 70 Load 72(texSampler2D) 215: 205(ivec2) Load 207(iCoords2D) 216: 204(int) Load 212(iLod) - 217: 22(fvec4) ImageFetch 214 215 Lod 216 - 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 Grad 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 Grad 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 Grad ConstOffset 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 Grad ConstOffset 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 Grad 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) CompositeConstruct 285 285 285 285 - 287: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 277 280 286 - Store 276(gl_FragColor) 287 + 217: 69 Image 214 + 218: 22(fvec4) ImageFetch 217 215 Lod 216 + 219: 22(fvec4) Load 26(color) + 220: 22(fvec4) FAdd 219 218 + Store 26(color) 220 + 223: 45(fvec2) Load 47(coords2D) + 224: 45(fvec2) DPdx 223 + Store 222(gradX) 224 + 226: 45(fvec2) Load 47(coords2D) + 227: 45(fvec2) DPdy 226 + Store 225(gradY) 227 + 228: 70 Load 72(texSampler2D) + 229: 45(fvec2) Load 47(coords2D) + 230: 45(fvec2) Load 222(gradX) + 231: 45(fvec2) Load 225(gradY) + 232: 22(fvec4) ImageSampleExplicitLod 228 229 Grad 230 231 + 233: 22(fvec4) Load 26(color) + 234: 22(fvec4) FAdd 233 232 + Store 26(color) 234 + 235: 70 Load 72(texSampler2D) + 236: 45(fvec2) Load 47(coords2D) + 237: 6(float) Load 14(proj) + 238: 6(float) CompositeExtract 236 0 + 239: 6(float) CompositeExtract 236 1 + 240: 16(fvec3) CompositeConstruct 238 239 237 + 241: 45(fvec2) Load 222(gradX) + 242: 45(fvec2) Load 225(gradY) + 243: 22(fvec4) ImageSampleProjExplicitLod 235 240 Grad 241 242 + 244: 22(fvec4) Load 26(color) + 245: 22(fvec4) FAdd 244 243 + Store 26(color) 245 + 246: 70 Load 72(texSampler2D) + 247: 45(fvec2) Load 47(coords2D) + 248: 45(fvec2) Load 222(gradX) + 249: 45(fvec2) Load 225(gradY) + 253: 22(fvec4) ImageSampleExplicitLod 246 247 Grad ConstOffset 248 249 252 + 254: 22(fvec4) Load 26(color) + 255: 22(fvec4) FAdd 254 253 + Store 26(color) 255 + 256: 70 Load 72(texSampler2D) + 257: 16(fvec3) Load 18(coords3D) + 258: 45(fvec2) Load 222(gradX) + 259: 45(fvec2) Load 225(gradY) + 260: 22(fvec4) ImageSampleProjExplicitLod 256 257 Grad ConstOffset 258 259 252 + 261: 22(fvec4) Load 26(color) + 262: 22(fvec4) FAdd 261 260 + Store 26(color) 262 + 263: 156 Load 158(shadowSampler2D) + 264: 45(fvec2) Load 47(coords2D) + 265: 6(float) Load 12(lod) + 266: 6(float) CompositeExtract 264 0 + 267: 6(float) CompositeExtract 264 1 + 268: 16(fvec3) CompositeConstruct 266 267 265 + 269: 45(fvec2) Load 222(gradX) + 270: 45(fvec2) Load 225(gradY) + 271: 6(float) CompositeExtract 268 2 + 272: 6(float) ImageSampleDrefExplicitLod 263 268 271 Grad 269 270 + 273: 22(fvec4) Load 26(color) + 274: 22(fvec4) CompositeConstruct 272 272 272 272 + 275: 22(fvec4) FAdd 273 274 + Store 26(color) 275 + 278: 22(fvec4) Load 26(color) + 281: 22(fvec4) Load 280(u) + 284: 6(float) Load 283(blend) + 285: 6(float) Load 8(blendscale) + 286: 6(float) FMul 284 285 + 287: 22(fvec4) CompositeConstruct 286 286 286 286 + 288: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 278 281 287 + Store 277(gl_FragColor) 288 Return FunctionEnd From 4b67732c137bca313f0eb6f87f67969b1c9727b4 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Thu, 26 May 2016 10:10:16 -0600 Subject: [PATCH 12/48] Initial implementation of direct-mapped subset of HLSL intrinsics with type subset. This checkin implements about half of the HLSL intrinsics for a subset of their entire type support (but a useful subset). The uncommented lines in TBuiltInParseablesHlsl::identifyBuiltIns shows which are connected. --- Test/baseResults/hlsl.assoc.frag.out | 6 +- Test/baseResults/hlsl.float1.frag.out | 6 +- Test/baseResults/hlsl.float4.frag.out | 6 +- Test/baseResults/hlsl.frag.out | 6 +- Test/baseResults/hlsl.intrinsics.frag.out | 2178 ++++++++++++++++++++ Test/baseResults/hlsl.intrinsics.vert.out | 1994 ++++++++++++++++++ Test/baseResults/hlsl.matType.frag.out | 6 +- Test/baseResults/hlsl.max.frag.out | 6 +- Test/baseResults/hlsl.precedence.frag.out | 6 +- Test/baseResults/hlsl.precedence2.frag.out | 6 +- Test/baseResults/hlsl.sin.frag.out | 6 +- Test/hlsl.intrinsics.frag | 353 ++++ Test/hlsl.intrinsics.vert | 323 +++ glslang/MachineIndependent/ShaderLang.cpp | 10 +- gtests/Hlsl.FromFile.cpp | 3 + hlsl/hlslParseables.cpp | 555 ++++- 16 files changed, 5433 insertions(+), 37 deletions(-) create mode 100644 Test/baseResults/hlsl.intrinsics.frag.out create mode 100644 Test/baseResults/hlsl.intrinsics.vert.out create mode 100644 Test/hlsl.intrinsics.frag create mode 100644 Test/hlsl.intrinsics.vert diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index 0bba2ee2..a027a62c 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -1,5 +1,5 @@ hlsl.assoc.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) @@ -35,7 +35,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) @@ -76,7 +76,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "a1" Name 10 "a2" diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index ce6ea59e..4cf0a0d1 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -1,5 +1,5 @@ hlsl.float1.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 move second child to first child (temp 1-component vector of float) @@ -31,7 +31,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 move second child to first child (temp 1-component vector of float) @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index c827f4d2..ba757c98 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -1,5 +1,5 @@ hlsl.float4.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 move second child to first child (temp 4-component vector of float) @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 move second child to first child (temp 4-component vector of float) @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" diff --git a/Test/baseResults/hlsl.frag.out b/Test/baseResults/hlsl.frag.out index 3ccbc898..cfed9051 100644 --- a/Test/baseResults/hlsl.frag.out +++ b/Test/baseResults/hlsl.frag.out @@ -1,5 +1,5 @@ hlsl.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 move second child to first child (temp 4-component vector of float) @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 move second child to first child (temp 4-component vector of float) @@ -134,7 +134,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input" Name 12 "AmbientIntensity" diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out new file mode 100644 index 00000000..ec057844 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -0,0 +1,2178 @@ +hlsl.intrinsics.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:? Sequence +0:3 all (global bool) +0:3 'inF0' (temp float) +0:4 Absolute value (global float) +0:4 'inF0' (temp float) +0:5 arc cosine (global float) +0:5 'inF0' (temp float) +0:6 any (global bool) +0:6 'inF0' (temp float) +0:7 arc sine (global float) +0:7 'inF0' (temp float) +0:8 arc tangent (global float) +0:8 'inF0' (temp float) +0:9 arc tangent (global float) +0:9 'inF0' (temp float) +0:9 'inF1' (temp float) +0:10 Ceiling (global float) +0:10 'inF0' (temp float) +0:11 clamp (global float) +0:11 'inF0' (temp float) +0:11 'inF1' (temp float) +0:11 'inF2' (temp float) +0:12 cosine (global float) +0:12 'inF0' (temp float) +0:13 hyp. cosine (global float) +0:13 'inF0' (temp float) +0:14 bitCount (global uint) +0:14 Constant: +0:14 7 (const uint) +0:15 dPdx (global float) +0:15 'inF0' (temp float) +0:16 dPdxCoarse (global float) +0:16 'inF0' (temp float) +0:17 dPdxFine (global float) +0:17 'inF0' (temp float) +0:18 dPdy (global float) +0:18 'inF0' (temp float) +0:19 dPdyCoarse (global float) +0:19 'inF0' (temp float) +0:20 dPdyFine (global float) +0:20 'inF0' (temp float) +0:21 degrees (global float) +0:21 'inF0' (temp float) +0:25 exp (global float) +0:25 'inF0' (temp float) +0:26 exp2 (global float) +0:26 'inF0' (temp float) +0:27 findMSB (global int) +0:27 Constant: +0:27 7 (const int) +0:28 findLSB (global int) +0:28 Constant: +0:28 7 (const int) +0:29 Floor (global float) +0:29 'inF0' (temp float) +0:31 Function Call: fmod(f1;f1; (global float) +0:31 'inF0' (temp float) +0:31 'inF1' (temp float) +0:32 Fraction (global float) +0:32 'inF0' (temp float) +0:33 frexp (global float) +0:33 'inF0' (temp float) +0:33 'inF1' (temp float) +0:34 fwidth (global float) +0:34 'inF0' (temp float) +0:35 isinf (global bool) +0:35 'inF0' (temp float) +0:36 isnan (global bool) +0:36 'inF0' (temp float) +0:37 ldexp (global float) +0:37 'inF0' (temp float) +0:37 'inF1' (temp float) +0:38 log (global float) +0:38 'inF0' (temp float) +0:39 log2 (global float) +0:39 'inF0' (temp float) +0:40 max (global float) +0:40 'inF0' (temp float) +0:40 'inF1' (temp float) +0:41 min (global float) +0:41 'inF0' (temp float) +0:41 'inF1' (temp float) +0:43 pow (global float) +0:43 'inF0' (temp float) +0:43 'inF1' (temp float) +0:44 radians (global float) +0:44 'inF0' (temp float) +0:45 bitFieldReverse (global uint) +0:45 Constant: +0:45 2 (const uint) +0:46 roundEven (global float) +0:46 'inF0' (temp float) +0:47 inverse sqrt (global float) +0:47 'inF0' (temp float) +0:48 Sign (global float) +0:48 'inF0' (temp float) +0:49 sine (global float) +0:49 'inF0' (temp float) +0:50 hyp. sine (global float) +0:50 'inF0' (temp float) +0:51 smoothstep (global float) +0:51 'inF0' (temp float) +0:51 'inF1' (temp float) +0:51 'inF2' (temp float) +0:52 sqrt (global float) +0:52 'inF0' (temp float) +0:53 step (global float) +0:53 'inF0' (temp float) +0:53 'inF1' (temp float) +0:54 tangent (global float) +0:54 'inF0' (temp float) +0:55 hyp. tangent (global float) +0:55 'inF0' (temp float) +0:57 trunc (global float) +0:57 'inF0' (temp float) +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:68 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:63 Function Parameters: +0:63 'inF0' (temp 1-component vector of float) +0:63 'inF1' (temp 1-component vector of float) +0:63 'inF2' (temp 1-component vector of float) +0:? Sequence +0:65 Branch: Return with expression +0:65 Constant: +0:65 0.000000 +0:137 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) +0:69 Function Parameters: +0:69 'inF0' (temp 2-component vector of float) +0:69 'inF1' (temp 2-component vector of float) +0:69 'inF2' (temp 2-component vector of float) +0:? Sequence +0:70 all (global bool) +0:70 'inF0' (temp 2-component vector of float) +0:71 Absolute value (global 2-component vector of float) +0:71 'inF0' (temp 2-component vector of float) +0:72 arc cosine (global 2-component vector of float) +0:72 'inF0' (temp 2-component vector of float) +0:73 any (global bool) +0:73 'inF0' (temp 2-component vector of float) +0:74 arc sine (global 2-component vector of float) +0:74 'inF0' (temp 2-component vector of float) +0:75 arc tangent (global 2-component vector of float) +0:75 'inF0' (temp 2-component vector of float) +0:76 arc tangent (global 2-component vector of float) +0:76 'inF0' (temp 2-component vector of float) +0:76 'inF1' (temp 2-component vector of float) +0:77 Ceiling (global 2-component vector of float) +0:77 'inF0' (temp 2-component vector of float) +0:78 clamp (global 2-component vector of float) +0:78 'inF0' (temp 2-component vector of float) +0:78 'inF1' (temp 2-component vector of float) +0:78 'inF2' (temp 2-component vector of float) +0:79 cosine (global 2-component vector of float) +0:79 'inF0' (temp 2-component vector of float) +0:80 hyp. cosine (global 2-component vector of float) +0:80 'inF0' (temp 2-component vector of float) +0:? bitCount (global 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:82 dPdx (global 2-component vector of float) +0:82 'inF0' (temp 2-component vector of float) +0:83 dPdxCoarse (global 2-component vector of float) +0:83 'inF0' (temp 2-component vector of float) +0:84 dPdxFine (global 2-component vector of float) +0:84 'inF0' (temp 2-component vector of float) +0:85 dPdy (global 2-component vector of float) +0:85 'inF0' (temp 2-component vector of float) +0:86 dPdyCoarse (global 2-component vector of float) +0:86 'inF0' (temp 2-component vector of float) +0:87 dPdyFine (global 2-component vector of float) +0:87 'inF0' (temp 2-component vector of float) +0:88 degrees (global 2-component vector of float) +0:88 'inF0' (temp 2-component vector of float) +0:89 distance (global float) +0:89 'inF0' (temp 2-component vector of float) +0:89 'inF1' (temp 2-component vector of float) +0:90 dot-product (global float) +0:90 'inF0' (temp 2-component vector of float) +0:90 'inF1' (temp 2-component vector of float) +0:94 exp (global 2-component vector of float) +0:94 'inF0' (temp 2-component vector of float) +0:95 exp2 (global 2-component vector of float) +0:95 'inF0' (temp 2-component vector of float) +0:96 face-forward (global 2-component vector of float) +0:96 'inF0' (temp 2-component vector of float) +0:96 'inF1' (temp 2-component vector of float) +0:96 'inF2' (temp 2-component vector of float) +0:97 findMSB (global int) +0:97 Constant: +0:97 7 (const int) +0:98 findLSB (global int) +0:98 Constant: +0:98 7 (const int) +0:99 Floor (global 2-component vector of float) +0:99 'inF0' (temp 2-component vector of float) +0:101 Function Call: fmod(vf2;vf2; (global 2-component vector of float) +0:101 'inF0' (temp 2-component vector of float) +0:101 'inF1' (temp 2-component vector of float) +0:102 Fraction (global 2-component vector of float) +0:102 'inF0' (temp 2-component vector of float) +0:103 frexp (global 2-component vector of float) +0:103 'inF0' (temp 2-component vector of float) +0:103 'inF1' (temp 2-component vector of float) +0:104 fwidth (global 2-component vector of float) +0:104 'inF0' (temp 2-component vector of float) +0:105 isinf (global 2-component vector of bool) +0:105 'inF0' (temp 2-component vector of float) +0:106 isnan (global 2-component vector of bool) +0:106 'inF0' (temp 2-component vector of float) +0:107 ldexp (global 2-component vector of float) +0:107 'inF0' (temp 2-component vector of float) +0:107 'inF1' (temp 2-component vector of float) +0:108 length (global float) +0:108 'inF0' (temp 2-component vector of float) +0:109 log (global 2-component vector of float) +0:109 'inF0' (temp 2-component vector of float) +0:110 log2 (global 2-component vector of float) +0:110 'inF0' (temp 2-component vector of float) +0:111 max (global 2-component vector of float) +0:111 'inF0' (temp 2-component vector of float) +0:111 'inF1' (temp 2-component vector of float) +0:112 min (global 2-component vector of float) +0:112 'inF0' (temp 2-component vector of float) +0:112 'inF1' (temp 2-component vector of float) +0:114 normalize (global 2-component vector of float) +0:114 'inF0' (temp 2-component vector of float) +0:115 pow (global 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:115 'inF1' (temp 2-component vector of float) +0:116 radians (global 2-component vector of float) +0:116 'inF0' (temp 2-component vector of float) +0:117 reflect (global 2-component vector of float) +0:117 'inF0' (temp 2-component vector of float) +0:117 'inF1' (temp 2-component vector of float) +0:118 refract (global 2-component vector of float) +0:118 'inF0' (temp 2-component vector of float) +0:118 'inF1' (temp 2-component vector of float) +0:118 Constant: +0:118 2.000000 +0:? bitFieldReverse (global 2-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:120 roundEven (global 2-component vector of float) +0:120 'inF0' (temp 2-component vector of float) +0:121 inverse sqrt (global 2-component vector of float) +0:121 'inF0' (temp 2-component vector of float) +0:122 Sign (global 2-component vector of float) +0:122 'inF0' (temp 2-component vector of float) +0:123 sine (global 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:124 hyp. sine (global 2-component vector of float) +0:124 'inF0' (temp 2-component vector of float) +0:125 smoothstep (global 2-component vector of float) +0:125 'inF0' (temp 2-component vector of float) +0:125 'inF1' (temp 2-component vector of float) +0:125 'inF2' (temp 2-component vector of float) +0:126 sqrt (global 2-component vector of float) +0:126 'inF0' (temp 2-component vector of float) +0:127 step (global 2-component vector of float) +0:127 'inF0' (temp 2-component vector of float) +0:127 'inF1' (temp 2-component vector of float) +0:128 tangent (global 2-component vector of float) +0:128 'inF0' (temp 2-component vector of float) +0:129 hyp. tangent (global 2-component vector of float) +0:129 'inF0' (temp 2-component vector of float) +0:131 trunc (global 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:134 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:207 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) +0:138 Function Parameters: +0:138 'inF0' (temp 3-component vector of float) +0:138 'inF1' (temp 3-component vector of float) +0:138 'inF2' (temp 3-component vector of float) +0:? Sequence +0:139 all (global bool) +0:139 'inF0' (temp 3-component vector of float) +0:140 Absolute value (global 3-component vector of float) +0:140 'inF0' (temp 3-component vector of float) +0:141 arc cosine (global 3-component vector of float) +0:141 'inF0' (temp 3-component vector of float) +0:142 any (global bool) +0:142 'inF0' (temp 3-component vector of float) +0:143 arc sine (global 3-component vector of float) +0:143 'inF0' (temp 3-component vector of float) +0:144 arc tangent (global 3-component vector of float) +0:144 'inF0' (temp 3-component vector of float) +0:145 arc tangent (global 3-component vector of float) +0:145 'inF0' (temp 3-component vector of float) +0:145 'inF1' (temp 3-component vector of float) +0:146 Ceiling (global 3-component vector of float) +0:146 'inF0' (temp 3-component vector of float) +0:147 clamp (global 3-component vector of float) +0:147 'inF0' (temp 3-component vector of float) +0:147 'inF1' (temp 3-component vector of float) +0:147 'inF2' (temp 3-component vector of float) +0:148 cosine (global 3-component vector of float) +0:148 'inF0' (temp 3-component vector of float) +0:149 hyp. cosine (global 3-component vector of float) +0:149 'inF0' (temp 3-component vector of float) +0:? bitCount (global 3-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:151 cross-product (global 3-component vector of float) +0:151 'inF0' (temp 3-component vector of float) +0:151 'inF1' (temp 3-component vector of float) +0:152 dPdx (global 3-component vector of float) +0:152 'inF0' (temp 3-component vector of float) +0:153 dPdxCoarse (global 3-component vector of float) +0:153 'inF0' (temp 3-component vector of float) +0:154 dPdxFine (global 3-component vector of float) +0:154 'inF0' (temp 3-component vector of float) +0:155 dPdy (global 3-component vector of float) +0:155 'inF0' (temp 3-component vector of float) +0:156 dPdyCoarse (global 3-component vector of float) +0:156 'inF0' (temp 3-component vector of float) +0:157 dPdyFine (global 3-component vector of float) +0:157 'inF0' (temp 3-component vector of float) +0:158 degrees (global 3-component vector of float) +0:158 'inF0' (temp 3-component vector of float) +0:159 distance (global float) +0:159 'inF0' (temp 3-component vector of float) +0:159 'inF1' (temp 3-component vector of float) +0:160 dot-product (global float) +0:160 'inF0' (temp 3-component vector of float) +0:160 'inF1' (temp 3-component vector of float) +0:164 exp (global 3-component vector of float) +0:164 'inF0' (temp 3-component vector of float) +0:165 exp2 (global 3-component vector of float) +0:165 'inF0' (temp 3-component vector of float) +0:166 face-forward (global 3-component vector of float) +0:166 'inF0' (temp 3-component vector of float) +0:166 'inF1' (temp 3-component vector of float) +0:166 'inF2' (temp 3-component vector of float) +0:167 findMSB (global int) +0:167 Constant: +0:167 7 (const int) +0:168 findLSB (global int) +0:168 Constant: +0:168 7 (const int) +0:169 Floor (global 3-component vector of float) +0:169 'inF0' (temp 3-component vector of float) +0:171 Function Call: fmod(vf3;vf3; (global 3-component vector of float) +0:171 'inF0' (temp 3-component vector of float) +0:171 'inF1' (temp 3-component vector of float) +0:172 Fraction (global 3-component vector of float) +0:172 'inF0' (temp 3-component vector of float) +0:173 frexp (global 3-component vector of float) +0:173 'inF0' (temp 3-component vector of float) +0:173 'inF1' (temp 3-component vector of float) +0:174 fwidth (global 3-component vector of float) +0:174 'inF0' (temp 3-component vector of float) +0:175 isinf (global 3-component vector of bool) +0:175 'inF0' (temp 3-component vector of float) +0:176 isnan (global 3-component vector of bool) +0:176 'inF0' (temp 3-component vector of float) +0:177 ldexp (global 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) +0:177 'inF1' (temp 3-component vector of float) +0:178 length (global float) +0:178 'inF0' (temp 3-component vector of float) +0:179 log (global 3-component vector of float) +0:179 'inF0' (temp 3-component vector of float) +0:180 log2 (global 3-component vector of float) +0:180 'inF0' (temp 3-component vector of float) +0:181 max (global 3-component vector of float) +0:181 'inF0' (temp 3-component vector of float) +0:181 'inF1' (temp 3-component vector of float) +0:182 min (global 3-component vector of float) +0:182 'inF0' (temp 3-component vector of float) +0:182 'inF1' (temp 3-component vector of float) +0:184 normalize (global 3-component vector of float) +0:184 'inF0' (temp 3-component vector of float) +0:185 pow (global 3-component vector of float) +0:185 'inF0' (temp 3-component vector of float) +0:185 'inF1' (temp 3-component vector of float) +0:186 radians (global 3-component vector of float) +0:186 'inF0' (temp 3-component vector of float) +0:187 reflect (global 3-component vector of float) +0:187 'inF0' (temp 3-component vector of float) +0:187 'inF1' (temp 3-component vector of float) +0:188 refract (global 3-component vector of float) +0:188 'inF0' (temp 3-component vector of float) +0:188 'inF1' (temp 3-component vector of float) +0:188 Constant: +0:188 2.000000 +0:? bitFieldReverse (global 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:190 roundEven (global 3-component vector of float) +0:190 'inF0' (temp 3-component vector of float) +0:191 inverse sqrt (global 3-component vector of float) +0:191 'inF0' (temp 3-component vector of float) +0:192 Sign (global 3-component vector of float) +0:192 'inF0' (temp 3-component vector of float) +0:193 sine (global 3-component vector of float) +0:193 'inF0' (temp 3-component vector of float) +0:194 hyp. sine (global 3-component vector of float) +0:194 'inF0' (temp 3-component vector of float) +0:195 smoothstep (global 3-component vector of float) +0:195 'inF0' (temp 3-component vector of float) +0:195 'inF1' (temp 3-component vector of float) +0:195 'inF2' (temp 3-component vector of float) +0:196 sqrt (global 3-component vector of float) +0:196 'inF0' (temp 3-component vector of float) +0:197 step (global 3-component vector of float) +0:197 'inF0' (temp 3-component vector of float) +0:197 'inF1' (temp 3-component vector of float) +0:198 tangent (global 3-component vector of float) +0:198 'inF0' (temp 3-component vector of float) +0:199 hyp. tangent (global 3-component vector of float) +0:199 'inF0' (temp 3-component vector of float) +0:201 trunc (global 3-component vector of float) +0:201 'inF0' (temp 3-component vector of float) +0:204 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:328 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) +0:208 Function Parameters: +0:208 'inF0' (temp 4-component vector of float) +0:208 'inF1' (temp 4-component vector of float) +0:208 'inF2' (temp 4-component vector of float) +0:? Sequence +0:209 all (global bool) +0:209 'inF0' (temp 4-component vector of float) +0:210 Absolute value (global 4-component vector of float) +0:210 'inF0' (temp 4-component vector of float) +0:211 arc cosine (global 4-component vector of float) +0:211 'inF0' (temp 4-component vector of float) +0:212 any (global bool) +0:212 'inF0' (temp 4-component vector of float) +0:213 arc sine (global 4-component vector of float) +0:213 'inF0' (temp 4-component vector of float) +0:214 arc tangent (global 4-component vector of float) +0:214 'inF0' (temp 4-component vector of float) +0:215 arc tangent (global 4-component vector of float) +0:215 'inF0' (temp 4-component vector of float) +0:215 'inF1' (temp 4-component vector of float) +0:216 Ceiling (global 4-component vector of float) +0:216 'inF0' (temp 4-component vector of float) +0:217 clamp (global 4-component vector of float) +0:217 'inF0' (temp 4-component vector of float) +0:217 'inF1' (temp 4-component vector of float) +0:217 'inF2' (temp 4-component vector of float) +0:218 cosine (global 4-component vector of float) +0:218 'inF0' (temp 4-component vector of float) +0:219 hyp. cosine (global 4-component vector of float) +0:219 'inF0' (temp 4-component vector of float) +0:? bitCount (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:? 2 (const uint) +0:221 dPdx (global 4-component vector of float) +0:221 'inF0' (temp 4-component vector of float) +0:222 dPdxCoarse (global 4-component vector of float) +0:222 'inF0' (temp 4-component vector of float) +0:223 dPdxFine (global 4-component vector of float) +0:223 'inF0' (temp 4-component vector of float) +0:224 dPdy (global 4-component vector of float) +0:224 'inF0' (temp 4-component vector of float) +0:225 dPdyCoarse (global 4-component vector of float) +0:225 'inF0' (temp 4-component vector of float) +0:226 dPdyFine (global 4-component vector of float) +0:226 'inF0' (temp 4-component vector of float) +0:227 degrees (global 4-component vector of float) +0:227 'inF0' (temp 4-component vector of float) +0:228 distance (global float) +0:228 'inF0' (temp 4-component vector of float) +0:228 'inF1' (temp 4-component vector of float) +0:229 dot-product (global float) +0:229 'inF0' (temp 4-component vector of float) +0:229 'inF1' (temp 4-component vector of float) +0:233 exp (global 4-component vector of float) +0:233 'inF0' (temp 4-component vector of float) +0:234 exp2 (global 4-component vector of float) +0:234 'inF0' (temp 4-component vector of float) +0:235 face-forward (global 4-component vector of float) +0:235 'inF0' (temp 4-component vector of float) +0:235 'inF1' (temp 4-component vector of float) +0:235 'inF2' (temp 4-component vector of float) +0:236 findMSB (global int) +0:236 Constant: +0:236 7 (const int) +0:237 findLSB (global int) +0:237 Constant: +0:237 7 (const int) +0:238 Floor (global 4-component vector of float) +0:238 'inF0' (temp 4-component vector of float) +0:240 Function Call: fmod(vf4;vf4; (global 4-component vector of float) +0:240 'inF0' (temp 4-component vector of float) +0:240 'inF1' (temp 4-component vector of float) +0:241 Fraction (global 4-component vector of float) +0:241 'inF0' (temp 4-component vector of float) +0:242 frexp (global 4-component vector of float) +0:242 'inF0' (temp 4-component vector of float) +0:242 'inF1' (temp 4-component vector of float) +0:243 fwidth (global 4-component vector of float) +0:243 'inF0' (temp 4-component vector of float) +0:244 isinf (global 4-component vector of bool) +0:244 'inF0' (temp 4-component vector of float) +0:245 isnan (global 4-component vector of bool) +0:245 'inF0' (temp 4-component vector of float) +0:246 ldexp (global 4-component vector of float) +0:246 'inF0' (temp 4-component vector of float) +0:246 'inF1' (temp 4-component vector of float) +0:247 length (global float) +0:247 'inF0' (temp 4-component vector of float) +0:248 log (global 4-component vector of float) +0:248 'inF0' (temp 4-component vector of float) +0:249 log2 (global 4-component vector of float) +0:249 'inF0' (temp 4-component vector of float) +0:250 max (global 4-component vector of float) +0:250 'inF0' (temp 4-component vector of float) +0:250 'inF1' (temp 4-component vector of float) +0:251 min (global 4-component vector of float) +0:251 'inF0' (temp 4-component vector of float) +0:251 'inF1' (temp 4-component vector of float) +0:253 normalize (global 4-component vector of float) +0:253 'inF0' (temp 4-component vector of float) +0:254 pow (global 4-component vector of float) +0:254 'inF0' (temp 4-component vector of float) +0:254 'inF1' (temp 4-component vector of float) +0:255 radians (global 4-component vector of float) +0:255 'inF0' (temp 4-component vector of float) +0:256 reflect (global 4-component vector of float) +0:256 'inF0' (temp 4-component vector of float) +0:256 'inF1' (temp 4-component vector of float) +0:257 refract (global 4-component vector of float) +0:257 'inF0' (temp 4-component vector of float) +0:257 'inF1' (temp 4-component vector of float) +0:257 Constant: +0:257 2.000000 +0:? bitFieldReverse (global 4-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:259 roundEven (global 4-component vector of float) +0:259 'inF0' (temp 4-component vector of float) +0:260 inverse sqrt (global 4-component vector of float) +0:260 'inF0' (temp 4-component vector of float) +0:261 Sign (global 4-component vector of float) +0:261 'inF0' (temp 4-component vector of float) +0:262 sine (global 4-component vector of float) +0:262 'inF0' (temp 4-component vector of float) +0:263 hyp. sine (global 4-component vector of float) +0:263 'inF0' (temp 4-component vector of float) +0:264 smoothstep (global 4-component vector of float) +0:264 'inF0' (temp 4-component vector of float) +0:264 'inF1' (temp 4-component vector of float) +0:264 'inF2' (temp 4-component vector of float) +0:265 sqrt (global 4-component vector of float) +0:265 'inF0' (temp 4-component vector of float) +0:266 step (global 4-component vector of float) +0:266 'inF0' (temp 4-component vector of float) +0:266 'inF1' (temp 4-component vector of float) +0:267 tangent (global 4-component vector of float) +0:267 'inF0' (temp 4-component vector of float) +0:268 hyp. tangent (global 4-component vector of float) +0:268 'inF0' (temp 4-component vector of float) +0:270 trunc (global 4-component vector of float) +0:270 'inF0' (temp 4-component vector of float) +0:273 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:337 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:329 Function Parameters: +0:329 'inF0' (temp 2X2 matrix of float) +0:329 'inF1' (temp 2X2 matrix of float) +0:329 'inF2' (temp 2X2 matrix of float) +0:? Sequence +0:331 all (global bool) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 Absolute value (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 arc cosine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 any (global bool) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 arc sine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 arc tangent (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 arc tangent (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 Ceiling (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 clamp (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 'inF2' (temp 2X2 matrix of float) +0:331 cosine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 hyp. cosine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdx (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdxCoarse (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdxFine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdy (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdyCoarse (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdyFine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 degrees (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 determinant (global float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 exp (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 exp2 (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 findMSB (global int) +0:331 Constant: +0:331 7 (const int) +0:331 findLSB (global int) +0:331 Constant: +0:331 7 (const int) +0:331 Floor (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 Function Call: fmod(mf22;mf22; (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 Fraction (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 frexp (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 fwidth (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 ldexp (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 log (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 log2 (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 max (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 min (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 pow (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 radians (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 roundEven (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 inverse sqrt (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 Sign (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 sine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 hyp. sine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 smoothstep (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 'inF2' (temp 2X2 matrix of float) +0:331 sqrt (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 step (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 tangent (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 hyp. tangent (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 transpose (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 trunc (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:334 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:346 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:338 Function Parameters: +0:338 'inF0' (temp 3X3 matrix of float) +0:338 'inF1' (temp 3X3 matrix of float) +0:338 'inF2' (temp 3X3 matrix of float) +0:? Sequence +0:340 all (global bool) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 Absolute value (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 arc cosine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 any (global bool) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 arc sine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 arc tangent (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 arc tangent (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 Ceiling (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 clamp (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 'inF2' (temp 3X3 matrix of float) +0:340 cosine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 hyp. cosine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdx (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdxCoarse (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdxFine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdy (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdyCoarse (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdyFine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 degrees (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 determinant (global float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 exp (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 exp2 (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 findMSB (global int) +0:340 Constant: +0:340 7 (const int) +0:340 findLSB (global int) +0:340 Constant: +0:340 7 (const int) +0:340 Floor (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 Function Call: fmod(mf33;mf33; (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 Fraction (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 frexp (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 fwidth (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 ldexp (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 log (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 log2 (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 max (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 min (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 pow (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 radians (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 roundEven (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 inverse sqrt (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 Sign (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 sine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 hyp. sine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 smoothstep (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 'inF2' (temp 3X3 matrix of float) +0:340 sqrt (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 step (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 tangent (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 hyp. tangent (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 transpose (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 trunc (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:343 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:354 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:347 Function Parameters: +0:347 'inF0' (temp 4X4 matrix of float) +0:347 'inF1' (temp 4X4 matrix of float) +0:347 'inF2' (temp 4X4 matrix of float) +0:? Sequence +0:349 all (global bool) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 Absolute value (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 arc cosine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 any (global bool) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 arc sine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 arc tangent (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 arc tangent (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 Ceiling (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 clamp (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 'inF2' (temp 4X4 matrix of float) +0:349 cosine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 hyp. cosine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdx (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdxCoarse (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdxFine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdy (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdyCoarse (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdyFine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 degrees (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 determinant (global float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 exp (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 exp2 (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 findMSB (global int) +0:349 Constant: +0:349 7 (const int) +0:349 findLSB (global int) +0:349 Constant: +0:349 7 (const int) +0:349 Floor (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 Function Call: fmod(mf44;mf44; (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 Fraction (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 frexp (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 fwidth (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 ldexp (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 log (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 log2 (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 max (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 min (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 pow (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 radians (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 roundEven (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 inverse sqrt (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 Sign (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 sine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 hyp. sine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 smoothstep (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 'inF2' (temp 4X4 matrix of float) +0:349 sqrt (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 step (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 tangent (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 hyp. tangent (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 transpose (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 trunc (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:352 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:62 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:? Sequence +0:3 all (global bool) +0:3 'inF0' (temp float) +0:4 Absolute value (global float) +0:4 'inF0' (temp float) +0:5 arc cosine (global float) +0:5 'inF0' (temp float) +0:6 any (global bool) +0:6 'inF0' (temp float) +0:7 arc sine (global float) +0:7 'inF0' (temp float) +0:8 arc tangent (global float) +0:8 'inF0' (temp float) +0:9 arc tangent (global float) +0:9 'inF0' (temp float) +0:9 'inF1' (temp float) +0:10 Ceiling (global float) +0:10 'inF0' (temp float) +0:11 clamp (global float) +0:11 'inF0' (temp float) +0:11 'inF1' (temp float) +0:11 'inF2' (temp float) +0:12 cosine (global float) +0:12 'inF0' (temp float) +0:13 hyp. cosine (global float) +0:13 'inF0' (temp float) +0:14 bitCount (global uint) +0:14 Constant: +0:14 7 (const uint) +0:15 dPdx (global float) +0:15 'inF0' (temp float) +0:16 dPdxCoarse (global float) +0:16 'inF0' (temp float) +0:17 dPdxFine (global float) +0:17 'inF0' (temp float) +0:18 dPdy (global float) +0:18 'inF0' (temp float) +0:19 dPdyCoarse (global float) +0:19 'inF0' (temp float) +0:20 dPdyFine (global float) +0:20 'inF0' (temp float) +0:21 degrees (global float) +0:21 'inF0' (temp float) +0:25 exp (global float) +0:25 'inF0' (temp float) +0:26 exp2 (global float) +0:26 'inF0' (temp float) +0:27 findMSB (global int) +0:27 Constant: +0:27 7 (const int) +0:28 findLSB (global int) +0:28 Constant: +0:28 7 (const int) +0:29 Floor (global float) +0:29 'inF0' (temp float) +0:31 Function Call: fmod(f1;f1; (global float) +0:31 'inF0' (temp float) +0:31 'inF1' (temp float) +0:32 Fraction (global float) +0:32 'inF0' (temp float) +0:33 frexp (global float) +0:33 'inF0' (temp float) +0:33 'inF1' (temp float) +0:34 fwidth (global float) +0:34 'inF0' (temp float) +0:35 isinf (global bool) +0:35 'inF0' (temp float) +0:36 isnan (global bool) +0:36 'inF0' (temp float) +0:37 ldexp (global float) +0:37 'inF0' (temp float) +0:37 'inF1' (temp float) +0:38 log (global float) +0:38 'inF0' (temp float) +0:39 log2 (global float) +0:39 'inF0' (temp float) +0:40 max (global float) +0:40 'inF0' (temp float) +0:40 'inF1' (temp float) +0:41 min (global float) +0:41 'inF0' (temp float) +0:41 'inF1' (temp float) +0:43 pow (global float) +0:43 'inF0' (temp float) +0:43 'inF1' (temp float) +0:44 radians (global float) +0:44 'inF0' (temp float) +0:45 bitFieldReverse (global uint) +0:45 Constant: +0:45 2 (const uint) +0:46 roundEven (global float) +0:46 'inF0' (temp float) +0:47 inverse sqrt (global float) +0:47 'inF0' (temp float) +0:48 Sign (global float) +0:48 'inF0' (temp float) +0:49 sine (global float) +0:49 'inF0' (temp float) +0:50 hyp. sine (global float) +0:50 'inF0' (temp float) +0:51 smoothstep (global float) +0:51 'inF0' (temp float) +0:51 'inF1' (temp float) +0:51 'inF2' (temp float) +0:52 sqrt (global float) +0:52 'inF0' (temp float) +0:53 step (global float) +0:53 'inF0' (temp float) +0:53 'inF1' (temp float) +0:54 tangent (global float) +0:54 'inF0' (temp float) +0:55 hyp. tangent (global float) +0:55 'inF0' (temp float) +0:57 trunc (global float) +0:57 'inF0' (temp float) +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:68 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:63 Function Parameters: +0:63 'inF0' (temp 1-component vector of float) +0:63 'inF1' (temp 1-component vector of float) +0:63 'inF2' (temp 1-component vector of float) +0:? Sequence +0:65 Branch: Return with expression +0:65 Constant: +0:65 0.000000 +0:137 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) +0:69 Function Parameters: +0:69 'inF0' (temp 2-component vector of float) +0:69 'inF1' (temp 2-component vector of float) +0:69 'inF2' (temp 2-component vector of float) +0:? Sequence +0:70 all (global bool) +0:70 'inF0' (temp 2-component vector of float) +0:71 Absolute value (global 2-component vector of float) +0:71 'inF0' (temp 2-component vector of float) +0:72 arc cosine (global 2-component vector of float) +0:72 'inF0' (temp 2-component vector of float) +0:73 any (global bool) +0:73 'inF0' (temp 2-component vector of float) +0:74 arc sine (global 2-component vector of float) +0:74 'inF0' (temp 2-component vector of float) +0:75 arc tangent (global 2-component vector of float) +0:75 'inF0' (temp 2-component vector of float) +0:76 arc tangent (global 2-component vector of float) +0:76 'inF0' (temp 2-component vector of float) +0:76 'inF1' (temp 2-component vector of float) +0:77 Ceiling (global 2-component vector of float) +0:77 'inF0' (temp 2-component vector of float) +0:78 clamp (global 2-component vector of float) +0:78 'inF0' (temp 2-component vector of float) +0:78 'inF1' (temp 2-component vector of float) +0:78 'inF2' (temp 2-component vector of float) +0:79 cosine (global 2-component vector of float) +0:79 'inF0' (temp 2-component vector of float) +0:80 hyp. cosine (global 2-component vector of float) +0:80 'inF0' (temp 2-component vector of float) +0:? bitCount (global 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:82 dPdx (global 2-component vector of float) +0:82 'inF0' (temp 2-component vector of float) +0:83 dPdxCoarse (global 2-component vector of float) +0:83 'inF0' (temp 2-component vector of float) +0:84 dPdxFine (global 2-component vector of float) +0:84 'inF0' (temp 2-component vector of float) +0:85 dPdy (global 2-component vector of float) +0:85 'inF0' (temp 2-component vector of float) +0:86 dPdyCoarse (global 2-component vector of float) +0:86 'inF0' (temp 2-component vector of float) +0:87 dPdyFine (global 2-component vector of float) +0:87 'inF0' (temp 2-component vector of float) +0:88 degrees (global 2-component vector of float) +0:88 'inF0' (temp 2-component vector of float) +0:89 distance (global float) +0:89 'inF0' (temp 2-component vector of float) +0:89 'inF1' (temp 2-component vector of float) +0:90 dot-product (global float) +0:90 'inF0' (temp 2-component vector of float) +0:90 'inF1' (temp 2-component vector of float) +0:94 exp (global 2-component vector of float) +0:94 'inF0' (temp 2-component vector of float) +0:95 exp2 (global 2-component vector of float) +0:95 'inF0' (temp 2-component vector of float) +0:96 face-forward (global 2-component vector of float) +0:96 'inF0' (temp 2-component vector of float) +0:96 'inF1' (temp 2-component vector of float) +0:96 'inF2' (temp 2-component vector of float) +0:97 findMSB (global int) +0:97 Constant: +0:97 7 (const int) +0:98 findLSB (global int) +0:98 Constant: +0:98 7 (const int) +0:99 Floor (global 2-component vector of float) +0:99 'inF0' (temp 2-component vector of float) +0:101 Function Call: fmod(vf2;vf2; (global 2-component vector of float) +0:101 'inF0' (temp 2-component vector of float) +0:101 'inF1' (temp 2-component vector of float) +0:102 Fraction (global 2-component vector of float) +0:102 'inF0' (temp 2-component vector of float) +0:103 frexp (global 2-component vector of float) +0:103 'inF0' (temp 2-component vector of float) +0:103 'inF1' (temp 2-component vector of float) +0:104 fwidth (global 2-component vector of float) +0:104 'inF0' (temp 2-component vector of float) +0:105 isinf (global 2-component vector of bool) +0:105 'inF0' (temp 2-component vector of float) +0:106 isnan (global 2-component vector of bool) +0:106 'inF0' (temp 2-component vector of float) +0:107 ldexp (global 2-component vector of float) +0:107 'inF0' (temp 2-component vector of float) +0:107 'inF1' (temp 2-component vector of float) +0:108 length (global float) +0:108 'inF0' (temp 2-component vector of float) +0:109 log (global 2-component vector of float) +0:109 'inF0' (temp 2-component vector of float) +0:110 log2 (global 2-component vector of float) +0:110 'inF0' (temp 2-component vector of float) +0:111 max (global 2-component vector of float) +0:111 'inF0' (temp 2-component vector of float) +0:111 'inF1' (temp 2-component vector of float) +0:112 min (global 2-component vector of float) +0:112 'inF0' (temp 2-component vector of float) +0:112 'inF1' (temp 2-component vector of float) +0:114 normalize (global 2-component vector of float) +0:114 'inF0' (temp 2-component vector of float) +0:115 pow (global 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:115 'inF1' (temp 2-component vector of float) +0:116 radians (global 2-component vector of float) +0:116 'inF0' (temp 2-component vector of float) +0:117 reflect (global 2-component vector of float) +0:117 'inF0' (temp 2-component vector of float) +0:117 'inF1' (temp 2-component vector of float) +0:118 refract (global 2-component vector of float) +0:118 'inF0' (temp 2-component vector of float) +0:118 'inF1' (temp 2-component vector of float) +0:118 Constant: +0:118 2.000000 +0:? bitFieldReverse (global 2-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:120 roundEven (global 2-component vector of float) +0:120 'inF0' (temp 2-component vector of float) +0:121 inverse sqrt (global 2-component vector of float) +0:121 'inF0' (temp 2-component vector of float) +0:122 Sign (global 2-component vector of float) +0:122 'inF0' (temp 2-component vector of float) +0:123 sine (global 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:124 hyp. sine (global 2-component vector of float) +0:124 'inF0' (temp 2-component vector of float) +0:125 smoothstep (global 2-component vector of float) +0:125 'inF0' (temp 2-component vector of float) +0:125 'inF1' (temp 2-component vector of float) +0:125 'inF2' (temp 2-component vector of float) +0:126 sqrt (global 2-component vector of float) +0:126 'inF0' (temp 2-component vector of float) +0:127 step (global 2-component vector of float) +0:127 'inF0' (temp 2-component vector of float) +0:127 'inF1' (temp 2-component vector of float) +0:128 tangent (global 2-component vector of float) +0:128 'inF0' (temp 2-component vector of float) +0:129 hyp. tangent (global 2-component vector of float) +0:129 'inF0' (temp 2-component vector of float) +0:131 trunc (global 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:134 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:207 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) +0:138 Function Parameters: +0:138 'inF0' (temp 3-component vector of float) +0:138 'inF1' (temp 3-component vector of float) +0:138 'inF2' (temp 3-component vector of float) +0:? Sequence +0:139 all (global bool) +0:139 'inF0' (temp 3-component vector of float) +0:140 Absolute value (global 3-component vector of float) +0:140 'inF0' (temp 3-component vector of float) +0:141 arc cosine (global 3-component vector of float) +0:141 'inF0' (temp 3-component vector of float) +0:142 any (global bool) +0:142 'inF0' (temp 3-component vector of float) +0:143 arc sine (global 3-component vector of float) +0:143 'inF0' (temp 3-component vector of float) +0:144 arc tangent (global 3-component vector of float) +0:144 'inF0' (temp 3-component vector of float) +0:145 arc tangent (global 3-component vector of float) +0:145 'inF0' (temp 3-component vector of float) +0:145 'inF1' (temp 3-component vector of float) +0:146 Ceiling (global 3-component vector of float) +0:146 'inF0' (temp 3-component vector of float) +0:147 clamp (global 3-component vector of float) +0:147 'inF0' (temp 3-component vector of float) +0:147 'inF1' (temp 3-component vector of float) +0:147 'inF2' (temp 3-component vector of float) +0:148 cosine (global 3-component vector of float) +0:148 'inF0' (temp 3-component vector of float) +0:149 hyp. cosine (global 3-component vector of float) +0:149 'inF0' (temp 3-component vector of float) +0:? bitCount (global 3-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:151 cross-product (global 3-component vector of float) +0:151 'inF0' (temp 3-component vector of float) +0:151 'inF1' (temp 3-component vector of float) +0:152 dPdx (global 3-component vector of float) +0:152 'inF0' (temp 3-component vector of float) +0:153 dPdxCoarse (global 3-component vector of float) +0:153 'inF0' (temp 3-component vector of float) +0:154 dPdxFine (global 3-component vector of float) +0:154 'inF0' (temp 3-component vector of float) +0:155 dPdy (global 3-component vector of float) +0:155 'inF0' (temp 3-component vector of float) +0:156 dPdyCoarse (global 3-component vector of float) +0:156 'inF0' (temp 3-component vector of float) +0:157 dPdyFine (global 3-component vector of float) +0:157 'inF0' (temp 3-component vector of float) +0:158 degrees (global 3-component vector of float) +0:158 'inF0' (temp 3-component vector of float) +0:159 distance (global float) +0:159 'inF0' (temp 3-component vector of float) +0:159 'inF1' (temp 3-component vector of float) +0:160 dot-product (global float) +0:160 'inF0' (temp 3-component vector of float) +0:160 'inF1' (temp 3-component vector of float) +0:164 exp (global 3-component vector of float) +0:164 'inF0' (temp 3-component vector of float) +0:165 exp2 (global 3-component vector of float) +0:165 'inF0' (temp 3-component vector of float) +0:166 face-forward (global 3-component vector of float) +0:166 'inF0' (temp 3-component vector of float) +0:166 'inF1' (temp 3-component vector of float) +0:166 'inF2' (temp 3-component vector of float) +0:167 findMSB (global int) +0:167 Constant: +0:167 7 (const int) +0:168 findLSB (global int) +0:168 Constant: +0:168 7 (const int) +0:169 Floor (global 3-component vector of float) +0:169 'inF0' (temp 3-component vector of float) +0:171 Function Call: fmod(vf3;vf3; (global 3-component vector of float) +0:171 'inF0' (temp 3-component vector of float) +0:171 'inF1' (temp 3-component vector of float) +0:172 Fraction (global 3-component vector of float) +0:172 'inF0' (temp 3-component vector of float) +0:173 frexp (global 3-component vector of float) +0:173 'inF0' (temp 3-component vector of float) +0:173 'inF1' (temp 3-component vector of float) +0:174 fwidth (global 3-component vector of float) +0:174 'inF0' (temp 3-component vector of float) +0:175 isinf (global 3-component vector of bool) +0:175 'inF0' (temp 3-component vector of float) +0:176 isnan (global 3-component vector of bool) +0:176 'inF0' (temp 3-component vector of float) +0:177 ldexp (global 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) +0:177 'inF1' (temp 3-component vector of float) +0:178 length (global float) +0:178 'inF0' (temp 3-component vector of float) +0:179 log (global 3-component vector of float) +0:179 'inF0' (temp 3-component vector of float) +0:180 log2 (global 3-component vector of float) +0:180 'inF0' (temp 3-component vector of float) +0:181 max (global 3-component vector of float) +0:181 'inF0' (temp 3-component vector of float) +0:181 'inF1' (temp 3-component vector of float) +0:182 min (global 3-component vector of float) +0:182 'inF0' (temp 3-component vector of float) +0:182 'inF1' (temp 3-component vector of float) +0:184 normalize (global 3-component vector of float) +0:184 'inF0' (temp 3-component vector of float) +0:185 pow (global 3-component vector of float) +0:185 'inF0' (temp 3-component vector of float) +0:185 'inF1' (temp 3-component vector of float) +0:186 radians (global 3-component vector of float) +0:186 'inF0' (temp 3-component vector of float) +0:187 reflect (global 3-component vector of float) +0:187 'inF0' (temp 3-component vector of float) +0:187 'inF1' (temp 3-component vector of float) +0:188 refract (global 3-component vector of float) +0:188 'inF0' (temp 3-component vector of float) +0:188 'inF1' (temp 3-component vector of float) +0:188 Constant: +0:188 2.000000 +0:? bitFieldReverse (global 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:190 roundEven (global 3-component vector of float) +0:190 'inF0' (temp 3-component vector of float) +0:191 inverse sqrt (global 3-component vector of float) +0:191 'inF0' (temp 3-component vector of float) +0:192 Sign (global 3-component vector of float) +0:192 'inF0' (temp 3-component vector of float) +0:193 sine (global 3-component vector of float) +0:193 'inF0' (temp 3-component vector of float) +0:194 hyp. sine (global 3-component vector of float) +0:194 'inF0' (temp 3-component vector of float) +0:195 smoothstep (global 3-component vector of float) +0:195 'inF0' (temp 3-component vector of float) +0:195 'inF1' (temp 3-component vector of float) +0:195 'inF2' (temp 3-component vector of float) +0:196 sqrt (global 3-component vector of float) +0:196 'inF0' (temp 3-component vector of float) +0:197 step (global 3-component vector of float) +0:197 'inF0' (temp 3-component vector of float) +0:197 'inF1' (temp 3-component vector of float) +0:198 tangent (global 3-component vector of float) +0:198 'inF0' (temp 3-component vector of float) +0:199 hyp. tangent (global 3-component vector of float) +0:199 'inF0' (temp 3-component vector of float) +0:201 trunc (global 3-component vector of float) +0:201 'inF0' (temp 3-component vector of float) +0:204 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:328 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) +0:208 Function Parameters: +0:208 'inF0' (temp 4-component vector of float) +0:208 'inF1' (temp 4-component vector of float) +0:208 'inF2' (temp 4-component vector of float) +0:? Sequence +0:209 all (global bool) +0:209 'inF0' (temp 4-component vector of float) +0:210 Absolute value (global 4-component vector of float) +0:210 'inF0' (temp 4-component vector of float) +0:211 arc cosine (global 4-component vector of float) +0:211 'inF0' (temp 4-component vector of float) +0:212 any (global bool) +0:212 'inF0' (temp 4-component vector of float) +0:213 arc sine (global 4-component vector of float) +0:213 'inF0' (temp 4-component vector of float) +0:214 arc tangent (global 4-component vector of float) +0:214 'inF0' (temp 4-component vector of float) +0:215 arc tangent (global 4-component vector of float) +0:215 'inF0' (temp 4-component vector of float) +0:215 'inF1' (temp 4-component vector of float) +0:216 Ceiling (global 4-component vector of float) +0:216 'inF0' (temp 4-component vector of float) +0:217 clamp (global 4-component vector of float) +0:217 'inF0' (temp 4-component vector of float) +0:217 'inF1' (temp 4-component vector of float) +0:217 'inF2' (temp 4-component vector of float) +0:218 cosine (global 4-component vector of float) +0:218 'inF0' (temp 4-component vector of float) +0:219 hyp. cosine (global 4-component vector of float) +0:219 'inF0' (temp 4-component vector of float) +0:? bitCount (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:? 2 (const uint) +0:221 dPdx (global 4-component vector of float) +0:221 'inF0' (temp 4-component vector of float) +0:222 dPdxCoarse (global 4-component vector of float) +0:222 'inF0' (temp 4-component vector of float) +0:223 dPdxFine (global 4-component vector of float) +0:223 'inF0' (temp 4-component vector of float) +0:224 dPdy (global 4-component vector of float) +0:224 'inF0' (temp 4-component vector of float) +0:225 dPdyCoarse (global 4-component vector of float) +0:225 'inF0' (temp 4-component vector of float) +0:226 dPdyFine (global 4-component vector of float) +0:226 'inF0' (temp 4-component vector of float) +0:227 degrees (global 4-component vector of float) +0:227 'inF0' (temp 4-component vector of float) +0:228 distance (global float) +0:228 'inF0' (temp 4-component vector of float) +0:228 'inF1' (temp 4-component vector of float) +0:229 dot-product (global float) +0:229 'inF0' (temp 4-component vector of float) +0:229 'inF1' (temp 4-component vector of float) +0:233 exp (global 4-component vector of float) +0:233 'inF0' (temp 4-component vector of float) +0:234 exp2 (global 4-component vector of float) +0:234 'inF0' (temp 4-component vector of float) +0:235 face-forward (global 4-component vector of float) +0:235 'inF0' (temp 4-component vector of float) +0:235 'inF1' (temp 4-component vector of float) +0:235 'inF2' (temp 4-component vector of float) +0:236 findMSB (global int) +0:236 Constant: +0:236 7 (const int) +0:237 findLSB (global int) +0:237 Constant: +0:237 7 (const int) +0:238 Floor (global 4-component vector of float) +0:238 'inF0' (temp 4-component vector of float) +0:240 Function Call: fmod(vf4;vf4; (global 4-component vector of float) +0:240 'inF0' (temp 4-component vector of float) +0:240 'inF1' (temp 4-component vector of float) +0:241 Fraction (global 4-component vector of float) +0:241 'inF0' (temp 4-component vector of float) +0:242 frexp (global 4-component vector of float) +0:242 'inF0' (temp 4-component vector of float) +0:242 'inF1' (temp 4-component vector of float) +0:243 fwidth (global 4-component vector of float) +0:243 'inF0' (temp 4-component vector of float) +0:244 isinf (global 4-component vector of bool) +0:244 'inF0' (temp 4-component vector of float) +0:245 isnan (global 4-component vector of bool) +0:245 'inF0' (temp 4-component vector of float) +0:246 ldexp (global 4-component vector of float) +0:246 'inF0' (temp 4-component vector of float) +0:246 'inF1' (temp 4-component vector of float) +0:247 length (global float) +0:247 'inF0' (temp 4-component vector of float) +0:248 log (global 4-component vector of float) +0:248 'inF0' (temp 4-component vector of float) +0:249 log2 (global 4-component vector of float) +0:249 'inF0' (temp 4-component vector of float) +0:250 max (global 4-component vector of float) +0:250 'inF0' (temp 4-component vector of float) +0:250 'inF1' (temp 4-component vector of float) +0:251 min (global 4-component vector of float) +0:251 'inF0' (temp 4-component vector of float) +0:251 'inF1' (temp 4-component vector of float) +0:253 normalize (global 4-component vector of float) +0:253 'inF0' (temp 4-component vector of float) +0:254 pow (global 4-component vector of float) +0:254 'inF0' (temp 4-component vector of float) +0:254 'inF1' (temp 4-component vector of float) +0:255 radians (global 4-component vector of float) +0:255 'inF0' (temp 4-component vector of float) +0:256 reflect (global 4-component vector of float) +0:256 'inF0' (temp 4-component vector of float) +0:256 'inF1' (temp 4-component vector of float) +0:257 refract (global 4-component vector of float) +0:257 'inF0' (temp 4-component vector of float) +0:257 'inF1' (temp 4-component vector of float) +0:257 Constant: +0:257 2.000000 +0:? bitFieldReverse (global 4-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:259 roundEven (global 4-component vector of float) +0:259 'inF0' (temp 4-component vector of float) +0:260 inverse sqrt (global 4-component vector of float) +0:260 'inF0' (temp 4-component vector of float) +0:261 Sign (global 4-component vector of float) +0:261 'inF0' (temp 4-component vector of float) +0:262 sine (global 4-component vector of float) +0:262 'inF0' (temp 4-component vector of float) +0:263 hyp. sine (global 4-component vector of float) +0:263 'inF0' (temp 4-component vector of float) +0:264 smoothstep (global 4-component vector of float) +0:264 'inF0' (temp 4-component vector of float) +0:264 'inF1' (temp 4-component vector of float) +0:264 'inF2' (temp 4-component vector of float) +0:265 sqrt (global 4-component vector of float) +0:265 'inF0' (temp 4-component vector of float) +0:266 step (global 4-component vector of float) +0:266 'inF0' (temp 4-component vector of float) +0:266 'inF1' (temp 4-component vector of float) +0:267 tangent (global 4-component vector of float) +0:267 'inF0' (temp 4-component vector of float) +0:268 hyp. tangent (global 4-component vector of float) +0:268 'inF0' (temp 4-component vector of float) +0:270 trunc (global 4-component vector of float) +0:270 'inF0' (temp 4-component vector of float) +0:273 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:337 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:329 Function Parameters: +0:329 'inF0' (temp 2X2 matrix of float) +0:329 'inF1' (temp 2X2 matrix of float) +0:329 'inF2' (temp 2X2 matrix of float) +0:? Sequence +0:331 all (global bool) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 Absolute value (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 arc cosine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 any (global bool) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 arc sine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 arc tangent (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 arc tangent (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 Ceiling (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 clamp (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 'inF2' (temp 2X2 matrix of float) +0:331 cosine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 hyp. cosine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdx (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdxCoarse (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdxFine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdy (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdyCoarse (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 dPdyFine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 degrees (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 determinant (global float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 exp (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 exp2 (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 findMSB (global int) +0:331 Constant: +0:331 7 (const int) +0:331 findLSB (global int) +0:331 Constant: +0:331 7 (const int) +0:331 Floor (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 Function Call: fmod(mf22;mf22; (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 Fraction (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 frexp (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 fwidth (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 ldexp (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 log (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 log2 (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 max (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 min (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 pow (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 radians (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 roundEven (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 inverse sqrt (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 Sign (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 sine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 hyp. sine (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 smoothstep (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 'inF2' (temp 2X2 matrix of float) +0:331 sqrt (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 step (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 tangent (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 hyp. tangent (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 transpose (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:331 trunc (global 2X2 matrix of float) +0:331 'inF0' (temp 2X2 matrix of float) +0:334 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:346 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:338 Function Parameters: +0:338 'inF0' (temp 3X3 matrix of float) +0:338 'inF1' (temp 3X3 matrix of float) +0:338 'inF2' (temp 3X3 matrix of float) +0:? Sequence +0:340 all (global bool) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 Absolute value (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 arc cosine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 any (global bool) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 arc sine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 arc tangent (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 arc tangent (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 Ceiling (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 clamp (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 'inF2' (temp 3X3 matrix of float) +0:340 cosine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 hyp. cosine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdx (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdxCoarse (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdxFine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdy (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdyCoarse (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 dPdyFine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 degrees (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 determinant (global float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 exp (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 exp2 (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 findMSB (global int) +0:340 Constant: +0:340 7 (const int) +0:340 findLSB (global int) +0:340 Constant: +0:340 7 (const int) +0:340 Floor (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 Function Call: fmod(mf33;mf33; (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 Fraction (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 frexp (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 fwidth (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 ldexp (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 log (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 log2 (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 max (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 min (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 pow (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 radians (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 roundEven (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 inverse sqrt (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 Sign (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 sine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 hyp. sine (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 smoothstep (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 'inF2' (temp 3X3 matrix of float) +0:340 sqrt (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 step (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 tangent (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 hyp. tangent (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 transpose (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:340 trunc (global 3X3 matrix of float) +0:340 'inF0' (temp 3X3 matrix of float) +0:343 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:354 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:347 Function Parameters: +0:347 'inF0' (temp 4X4 matrix of float) +0:347 'inF1' (temp 4X4 matrix of float) +0:347 'inF2' (temp 4X4 matrix of float) +0:? Sequence +0:349 all (global bool) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 Absolute value (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 arc cosine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 any (global bool) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 arc sine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 arc tangent (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 arc tangent (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 Ceiling (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 clamp (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 'inF2' (temp 4X4 matrix of float) +0:349 cosine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 hyp. cosine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdx (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdxCoarse (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdxFine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdy (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdyCoarse (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 dPdyFine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 degrees (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 determinant (global float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 exp (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 exp2 (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 findMSB (global int) +0:349 Constant: +0:349 7 (const int) +0:349 findLSB (global int) +0:349 Constant: +0:349 7 (const int) +0:349 Floor (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 Function Call: fmod(mf44;mf44; (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 Fraction (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 frexp (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 fwidth (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 ldexp (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 log (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 log2 (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 max (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 min (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 pow (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 radians (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 roundEven (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 inverse sqrt (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 Sign (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 sine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 hyp. sine (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 smoothstep (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 'inF2' (temp 4X4 matrix of float) +0:349 sqrt (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 step (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 tangent (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 hyp. tangent (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 transpose (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:349 trunc (global 4X4 matrix of float) +0:349 'inF0' (temp 4X4 matrix of float) +0:352 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects + +Missing functionality: missing user function; linker needs to catch that +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 880 + + Capability Shader + Capability DerivativeControl + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 8 "inF0" + Name 23 "inF1" + Name 30 "inF2" + Name 67 "ResType" + Name 127 "inF0" + Name 141 "inF1" + Name 148 "inF2" + Name 195 "ResType" + Name 268 "inF0" + Name 282 "inF1" + Name 289 "inF2" + Name 339 "ResType" + Name 410 "inF0" + Name 424 "inF1" + Name 431 "inF2" + Name 477 "ResType" + Name 549 "inF0" + Name 563 "inF1" + Name 570 "inF2" + Name 604 "ResType" + Name 660 "inF0" + Name 674 "inF1" + Name 681 "inF2" + Name 715 "ResType" + Name 771 "inF0" + Name 785 "inF1" + Name 792 "inF2" + Name 826 "ResType" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 10: TypeBool + 37: TypeInt 32 0 + 38: 37(int) Constant 7 + 58: TypeInt 32 1 + 59: 58(int) Constant 7 + 67(ResType): TypeStruct 6(float) 58(int) + 95: 37(int) Constant 2 + 122: 6(float) Constant 0 + 125: TypeVector 6(float) 2 + 126: TypePointer Function 125(fvec2) + 155: TypeVector 37(int) 2 + 156: 37(int) Constant 3 + 157: 155(ivec2) ConstantComposite 38 156 + 194: TypeVector 58(int) 2 + 195(ResType): TypeStruct 125(fvec2) 194(ivec2) + 202: TypeVector 10(bool) 2 + 233: 6(float) Constant 1073741824 + 235: 37(int) Constant 1 + 236: 155(ivec2) ConstantComposite 235 95 + 263: 6(float) Constant 1065353216 + 264: 125(fvec2) ConstantComposite 263 233 + 266: TypeVector 6(float) 3 + 267: TypePointer Function 266(fvec3) + 296: TypeVector 37(int) 3 + 297: 37(int) Constant 5 + 298: 296(ivec3) ConstantComposite 38 156 297 + 338: TypeVector 58(int) 3 + 339(ResType): TypeStruct 266(fvec3) 338(ivec3) + 346: TypeVector 10(bool) 3 + 378: 296(ivec3) ConstantComposite 235 95 156 + 405: 6(float) Constant 1077936128 + 406: 266(fvec3) ConstantComposite 263 233 405 + 408: TypeVector 6(float) 4 + 409: TypePointer Function 408(fvec4) + 438: TypeVector 37(int) 4 + 439: 438(ivec4) ConstantComposite 38 156 297 95 + 476: TypeVector 58(int) 4 + 477(ResType): TypeStruct 408(fvec4) 476(ivec4) + 484: TypeVector 10(bool) 4 + 516: 37(int) Constant 4 + 517: 438(ivec4) ConstantComposite 235 95 156 516 + 544: 6(float) Constant 1082130432 + 545: 408(fvec4) ConstantComposite 263 233 405 544 + 547: TypeMatrix 125(fvec2) 2 + 548: TypePointer Function 547 + 604(ResType): TypeStruct 547 194(ivec2) + 655: 125(fvec2) ConstantComposite 233 233 + 656: 547 ConstantComposite 655 655 + 658: TypeMatrix 266(fvec3) 3 + 659: TypePointer Function 658 + 715(ResType): TypeStruct 658 338(ivec3) + 766: 266(fvec3) ConstantComposite 405 405 405 + 767: 658 ConstantComposite 766 766 766 + 769: TypeMatrix 408(fvec4) 4 + 770: TypePointer Function 769 + 826(ResType): TypeStruct 769 476(ivec4) + 877: 408(fvec4) ConstantComposite 544 544 544 544 + 878: 769 ConstantComposite 877 877 877 877 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 8(inF0): 7(ptr) Variable Function + 23(inF1): 7(ptr) Variable Function + 30(inF2): 7(ptr) Variable Function + 127(inF0): 126(ptr) Variable Function + 141(inF1): 126(ptr) Variable Function + 148(inF2): 126(ptr) Variable Function + 268(inF0): 267(ptr) Variable Function + 282(inF1): 267(ptr) Variable Function + 289(inF2): 267(ptr) Variable Function + 410(inF0): 409(ptr) Variable Function + 424(inF1): 409(ptr) Variable Function + 431(inF2): 409(ptr) Variable Function + 549(inF0): 548(ptr) Variable Function + 563(inF1): 548(ptr) Variable Function + 570(inF2): 548(ptr) Variable Function + 660(inF0): 659(ptr) Variable Function + 674(inF1): 659(ptr) Variable Function + 681(inF2): 659(ptr) Variable Function + 771(inF0): 770(ptr) Variable Function + 785(inF1): 770(ptr) Variable Function + 792(inF2): 770(ptr) Variable Function + 9: 6(float) Load 8(inF0) + 11: 10(bool) All 9 + 12: 6(float) Load 8(inF0) + 13: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 12 + 14: 6(float) Load 8(inF0) + 15: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 14 + 16: 6(float) Load 8(inF0) + 17: 10(bool) Any 16 + 18: 6(float) Load 8(inF0) + 19: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 18 + 20: 6(float) Load 8(inF0) + 21: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 20 + 22: 6(float) Load 8(inF0) + 24: 6(float) Load 23(inF1) + 25: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 22 24 + 26: 6(float) Load 8(inF0) + 27: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 26 + 28: 6(float) Load 8(inF0) + 29: 6(float) Load 23(inF1) + 31: 6(float) Load 30(inF2) + 32: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 28 29 31 + 33: 6(float) Load 8(inF0) + 34: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 33 + 35: 6(float) Load 8(inF0) + 36: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 35 + 39: 37(int) BitCount 38 + 40: 6(float) Load 8(inF0) + 41: 6(float) DPdx 40 + 42: 6(float) Load 8(inF0) + 43: 6(float) DPdxCoarse 42 + 44: 6(float) Load 8(inF0) + 45: 6(float) DPdxFine 44 + 46: 6(float) Load 8(inF0) + 47: 6(float) DPdy 46 + 48: 6(float) Load 8(inF0) + 49: 6(float) DPdyCoarse 48 + 50: 6(float) Load 8(inF0) + 51: 6(float) DPdyFine 50 + 52: 6(float) Load 8(inF0) + 53: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 52 + 54: 6(float) Load 8(inF0) + 55: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 54 + 56: 6(float) Load 8(inF0) + 57: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 56 + 60: 58(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 59 + 61: 58(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 59 + 62: 6(float) Load 8(inF0) + 63: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 62 + 64: 6(float) Load 8(inF0) + 65: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 64 + 66: 6(float) Load 8(inF0) + 68: 67(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 66 + 69: 58(int) CompositeExtract 68 1 + Store 23(inF1) 69 + 70: 6(float) CompositeExtract 68 0 + 71: 6(float) Load 8(inF0) + 72: 6(float) Fwidth 71 + 73: 6(float) Load 8(inF0) + 74: 10(bool) IsInf 73 + 75: 6(float) Load 8(inF0) + 76: 10(bool) IsNan 75 + 77: 6(float) Load 8(inF0) + 78: 6(float) Load 23(inF1) + 79: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 77 78 + 80: 6(float) Load 8(inF0) + 81: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 80 + 82: 6(float) Load 8(inF0) + 83: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 82 + 84: 6(float) Load 8(inF0) + 85: 6(float) Load 23(inF1) + 86: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 84 85 + 87: 6(float) Load 8(inF0) + 88: 6(float) Load 23(inF1) + 89: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 87 88 + 90: 6(float) Load 8(inF0) + 91: 6(float) Load 23(inF1) + 92: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 90 91 + 93: 6(float) Load 8(inF0) + 94: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 93 + 96: 37(int) BitReverse 95 + 97: 6(float) Load 8(inF0) + 98: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 97 + 99: 6(float) Load 8(inF0) + 100: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99 + 101: 6(float) Load 8(inF0) + 102: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 101 + 103: 6(float) Load 8(inF0) + 104: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 103 + 105: 6(float) Load 8(inF0) + 106: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 105 + 107: 6(float) Load 8(inF0) + 108: 6(float) Load 23(inF1) + 109: 6(float) Load 30(inF2) + 110: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 107 108 109 + 111: 6(float) Load 8(inF0) + 112: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 111 + 113: 6(float) Load 8(inF0) + 114: 6(float) Load 23(inF1) + 115: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 113 114 + 116: 6(float) Load 8(inF0) + 117: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 116 + 118: 6(float) Load 8(inF0) + 119: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 118 + 120: 6(float) Load 8(inF0) + 121: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 120 + ReturnValue 122 + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out new file mode 100644 index 00000000..22b301e0 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -0,0 +1,1994 @@ +hlsl.intrinsics.vert +Shader version: 450 +0:? Sequence +0:56 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:? Sequence +0:3 all (global bool) +0:3 'inF0' (temp float) +0:4 Absolute value (global float) +0:4 'inF0' (temp float) +0:5 arc cosine (global float) +0:5 'inF0' (temp float) +0:6 any (global bool) +0:6 'inF0' (temp float) +0:7 arc sine (global float) +0:7 'inF0' (temp float) +0:8 arc tangent (global float) +0:8 'inF0' (temp float) +0:9 arc tangent (global float) +0:9 'inF0' (temp float) +0:9 'inF1' (temp float) +0:10 Ceiling (global float) +0:10 'inF0' (temp float) +0:11 clamp (global float) +0:11 'inF0' (temp float) +0:11 'inF1' (temp float) +0:11 'inF2' (temp float) +0:12 cosine (global float) +0:12 'inF0' (temp float) +0:13 hyp. cosine (global float) +0:13 'inF0' (temp float) +0:14 bitCount (global uint) +0:14 Constant: +0:14 7 (const uint) +0:15 degrees (global float) +0:15 'inF0' (temp float) +0:19 exp (global float) +0:19 'inF0' (temp float) +0:20 exp2 (global float) +0:20 'inF0' (temp float) +0:21 findMSB (global int) +0:21 Constant: +0:21 7 (const int) +0:22 findLSB (global int) +0:22 Constant: +0:22 7 (const int) +0:23 Floor (global float) +0:23 'inF0' (temp float) +0:25 Function Call: fmod(f1;f1; (global float) +0:25 'inF0' (temp float) +0:25 'inF1' (temp float) +0:26 Fraction (global float) +0:26 'inF0' (temp float) +0:27 frexp (global float) +0:27 'inF0' (temp float) +0:27 'inF1' (temp float) +0:28 fwidth (global float) +0:28 'inF0' (temp float) +0:29 isinf (global bool) +0:29 'inF0' (temp float) +0:30 isnan (global bool) +0:30 'inF0' (temp float) +0:31 ldexp (global float) +0:31 'inF0' (temp float) +0:31 'inF1' (temp float) +0:32 log (global float) +0:32 'inF0' (temp float) +0:33 log2 (global float) +0:33 'inF0' (temp float) +0:34 max (global float) +0:34 'inF0' (temp float) +0:34 'inF1' (temp float) +0:35 min (global float) +0:35 'inF0' (temp float) +0:35 'inF1' (temp float) +0:37 pow (global float) +0:37 'inF0' (temp float) +0:37 'inF1' (temp float) +0:38 radians (global float) +0:38 'inF0' (temp float) +0:39 bitFieldReverse (global uint) +0:39 Constant: +0:39 2 (const uint) +0:40 roundEven (global float) +0:40 'inF0' (temp float) +0:41 inverse sqrt (global float) +0:41 'inF0' (temp float) +0:42 Sign (global float) +0:42 'inF0' (temp float) +0:43 sine (global float) +0:43 'inF0' (temp float) +0:44 hyp. sine (global float) +0:44 'inF0' (temp float) +0:45 smoothstep (global float) +0:45 'inF0' (temp float) +0:45 'inF1' (temp float) +0:45 'inF2' (temp float) +0:46 sqrt (global float) +0:46 'inF0' (temp float) +0:47 step (global float) +0:47 'inF0' (temp float) +0:47 'inF1' (temp float) +0:48 tangent (global float) +0:48 'inF0' (temp float) +0:49 hyp. tangent (global float) +0:49 'inF0' (temp float) +0:51 trunc (global float) +0:51 'inF0' (temp float) +0:53 Branch: Return with expression +0:53 Constant: +0:53 0.000000 +0:62 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:57 Function Parameters: +0:57 'inF0' (temp 1-component vector of float) +0:57 'inF1' (temp 1-component vector of float) +0:57 'inF2' (temp 1-component vector of float) +0:? Sequence +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:125 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) +0:63 Function Parameters: +0:63 'inF0' (temp 2-component vector of float) +0:63 'inF1' (temp 2-component vector of float) +0:63 'inF2' (temp 2-component vector of float) +0:? Sequence +0:64 all (global bool) +0:64 'inF0' (temp 2-component vector of float) +0:65 Absolute value (global 2-component vector of float) +0:65 'inF0' (temp 2-component vector of float) +0:66 arc cosine (global 2-component vector of float) +0:66 'inF0' (temp 2-component vector of float) +0:67 any (global bool) +0:67 'inF0' (temp 2-component vector of float) +0:68 arc sine (global 2-component vector of float) +0:68 'inF0' (temp 2-component vector of float) +0:69 arc tangent (global 2-component vector of float) +0:69 'inF0' (temp 2-component vector of float) +0:70 arc tangent (global 2-component vector of float) +0:70 'inF0' (temp 2-component vector of float) +0:70 'inF1' (temp 2-component vector of float) +0:71 Ceiling (global 2-component vector of float) +0:71 'inF0' (temp 2-component vector of float) +0:72 clamp (global 2-component vector of float) +0:72 'inF0' (temp 2-component vector of float) +0:72 'inF1' (temp 2-component vector of float) +0:72 'inF2' (temp 2-component vector of float) +0:73 cosine (global 2-component vector of float) +0:73 'inF0' (temp 2-component vector of float) +0:74 hyp. cosine (global 2-component vector of float) +0:74 'inF0' (temp 2-component vector of float) +0:? bitCount (global 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:76 degrees (global 2-component vector of float) +0:76 'inF0' (temp 2-component vector of float) +0:77 distance (global float) +0:77 'inF0' (temp 2-component vector of float) +0:77 'inF1' (temp 2-component vector of float) +0:78 dot-product (global float) +0:78 'inF0' (temp 2-component vector of float) +0:78 'inF1' (temp 2-component vector of float) +0:82 exp (global 2-component vector of float) +0:82 'inF0' (temp 2-component vector of float) +0:83 exp2 (global 2-component vector of float) +0:83 'inF0' (temp 2-component vector of float) +0:84 face-forward (global 2-component vector of float) +0:84 'inF0' (temp 2-component vector of float) +0:84 'inF1' (temp 2-component vector of float) +0:84 'inF2' (temp 2-component vector of float) +0:85 findMSB (global int) +0:85 Constant: +0:85 7 (const int) +0:86 findLSB (global int) +0:86 Constant: +0:86 7 (const int) +0:87 Floor (global 2-component vector of float) +0:87 'inF0' (temp 2-component vector of float) +0:89 Function Call: fmod(vf2;vf2; (global 2-component vector of float) +0:89 'inF0' (temp 2-component vector of float) +0:89 'inF1' (temp 2-component vector of float) +0:90 Fraction (global 2-component vector of float) +0:90 'inF0' (temp 2-component vector of float) +0:91 frexp (global 2-component vector of float) +0:91 'inF0' (temp 2-component vector of float) +0:91 'inF1' (temp 2-component vector of float) +0:92 fwidth (global 2-component vector of float) +0:92 'inF0' (temp 2-component vector of float) +0:93 isinf (global 2-component vector of bool) +0:93 'inF0' (temp 2-component vector of float) +0:94 isnan (global 2-component vector of bool) +0:94 'inF0' (temp 2-component vector of float) +0:95 ldexp (global 2-component vector of float) +0:95 'inF0' (temp 2-component vector of float) +0:95 'inF1' (temp 2-component vector of float) +0:96 length (global float) +0:96 'inF0' (temp 2-component vector of float) +0:97 log (global 2-component vector of float) +0:97 'inF0' (temp 2-component vector of float) +0:98 log2 (global 2-component vector of float) +0:98 'inF0' (temp 2-component vector of float) +0:99 max (global 2-component vector of float) +0:99 'inF0' (temp 2-component vector of float) +0:99 'inF1' (temp 2-component vector of float) +0:100 min (global 2-component vector of float) +0:100 'inF0' (temp 2-component vector of float) +0:100 'inF1' (temp 2-component vector of float) +0:102 normalize (global 2-component vector of float) +0:102 'inF0' (temp 2-component vector of float) +0:103 pow (global 2-component vector of float) +0:103 'inF0' (temp 2-component vector of float) +0:103 'inF1' (temp 2-component vector of float) +0:104 radians (global 2-component vector of float) +0:104 'inF0' (temp 2-component vector of float) +0:105 reflect (global 2-component vector of float) +0:105 'inF0' (temp 2-component vector of float) +0:105 'inF1' (temp 2-component vector of float) +0:106 refract (global 2-component vector of float) +0:106 'inF0' (temp 2-component vector of float) +0:106 'inF1' (temp 2-component vector of float) +0:106 Constant: +0:106 2.000000 +0:? bitFieldReverse (global 2-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:108 roundEven (global 2-component vector of float) +0:108 'inF0' (temp 2-component vector of float) +0:109 inverse sqrt (global 2-component vector of float) +0:109 'inF0' (temp 2-component vector of float) +0:110 Sign (global 2-component vector of float) +0:110 'inF0' (temp 2-component vector of float) +0:111 sine (global 2-component vector of float) +0:111 'inF0' (temp 2-component vector of float) +0:112 hyp. sine (global 2-component vector of float) +0:112 'inF0' (temp 2-component vector of float) +0:113 smoothstep (global 2-component vector of float) +0:113 'inF0' (temp 2-component vector of float) +0:113 'inF1' (temp 2-component vector of float) +0:113 'inF2' (temp 2-component vector of float) +0:114 sqrt (global 2-component vector of float) +0:114 'inF0' (temp 2-component vector of float) +0:115 step (global 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:115 'inF1' (temp 2-component vector of float) +0:116 tangent (global 2-component vector of float) +0:116 'inF0' (temp 2-component vector of float) +0:117 hyp. tangent (global 2-component vector of float) +0:117 'inF0' (temp 2-component vector of float) +0:119 trunc (global 2-component vector of float) +0:119 'inF0' (temp 2-component vector of float) +0:122 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:189 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) +0:126 Function Parameters: +0:126 'inF0' (temp 3-component vector of float) +0:126 'inF1' (temp 3-component vector of float) +0:126 'inF2' (temp 3-component vector of float) +0:? Sequence +0:127 all (global bool) +0:127 'inF0' (temp 3-component vector of float) +0:128 Absolute value (global 3-component vector of float) +0:128 'inF0' (temp 3-component vector of float) +0:129 arc cosine (global 3-component vector of float) +0:129 'inF0' (temp 3-component vector of float) +0:130 any (global bool) +0:130 'inF0' (temp 3-component vector of float) +0:131 arc sine (global 3-component vector of float) +0:131 'inF0' (temp 3-component vector of float) +0:132 arc tangent (global 3-component vector of float) +0:132 'inF0' (temp 3-component vector of float) +0:133 arc tangent (global 3-component vector of float) +0:133 'inF0' (temp 3-component vector of float) +0:133 'inF1' (temp 3-component vector of float) +0:134 Ceiling (global 3-component vector of float) +0:134 'inF0' (temp 3-component vector of float) +0:135 clamp (global 3-component vector of float) +0:135 'inF0' (temp 3-component vector of float) +0:135 'inF1' (temp 3-component vector of float) +0:135 'inF2' (temp 3-component vector of float) +0:136 cosine (global 3-component vector of float) +0:136 'inF0' (temp 3-component vector of float) +0:137 hyp. cosine (global 3-component vector of float) +0:137 'inF0' (temp 3-component vector of float) +0:? bitCount (global 3-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:139 cross-product (global 3-component vector of float) +0:139 'inF0' (temp 3-component vector of float) +0:139 'inF1' (temp 3-component vector of float) +0:140 degrees (global 3-component vector of float) +0:140 'inF0' (temp 3-component vector of float) +0:141 distance (global float) +0:141 'inF0' (temp 3-component vector of float) +0:141 'inF1' (temp 3-component vector of float) +0:142 dot-product (global float) +0:142 'inF0' (temp 3-component vector of float) +0:142 'inF1' (temp 3-component vector of float) +0:146 exp (global 3-component vector of float) +0:146 'inF0' (temp 3-component vector of float) +0:147 exp2 (global 3-component vector of float) +0:147 'inF0' (temp 3-component vector of float) +0:148 face-forward (global 3-component vector of float) +0:148 'inF0' (temp 3-component vector of float) +0:148 'inF1' (temp 3-component vector of float) +0:148 'inF2' (temp 3-component vector of float) +0:149 findMSB (global int) +0:149 Constant: +0:149 7 (const int) +0:150 findLSB (global int) +0:150 Constant: +0:150 7 (const int) +0:151 Floor (global 3-component vector of float) +0:151 'inF0' (temp 3-component vector of float) +0:153 Function Call: fmod(vf3;vf3; (global 3-component vector of float) +0:153 'inF0' (temp 3-component vector of float) +0:153 'inF1' (temp 3-component vector of float) +0:154 Fraction (global 3-component vector of float) +0:154 'inF0' (temp 3-component vector of float) +0:155 frexp (global 3-component vector of float) +0:155 'inF0' (temp 3-component vector of float) +0:155 'inF1' (temp 3-component vector of float) +0:156 fwidth (global 3-component vector of float) +0:156 'inF0' (temp 3-component vector of float) +0:157 isinf (global 3-component vector of bool) +0:157 'inF0' (temp 3-component vector of float) +0:158 isnan (global 3-component vector of bool) +0:158 'inF0' (temp 3-component vector of float) +0:159 ldexp (global 3-component vector of float) +0:159 'inF0' (temp 3-component vector of float) +0:159 'inF1' (temp 3-component vector of float) +0:160 length (global float) +0:160 'inF0' (temp 3-component vector of float) +0:161 log (global 3-component vector of float) +0:161 'inF0' (temp 3-component vector of float) +0:162 log2 (global 3-component vector of float) +0:162 'inF0' (temp 3-component vector of float) +0:163 max (global 3-component vector of float) +0:163 'inF0' (temp 3-component vector of float) +0:163 'inF1' (temp 3-component vector of float) +0:164 min (global 3-component vector of float) +0:164 'inF0' (temp 3-component vector of float) +0:164 'inF1' (temp 3-component vector of float) +0:166 normalize (global 3-component vector of float) +0:166 'inF0' (temp 3-component vector of float) +0:167 pow (global 3-component vector of float) +0:167 'inF0' (temp 3-component vector of float) +0:167 'inF1' (temp 3-component vector of float) +0:168 radians (global 3-component vector of float) +0:168 'inF0' (temp 3-component vector of float) +0:169 reflect (global 3-component vector of float) +0:169 'inF0' (temp 3-component vector of float) +0:169 'inF1' (temp 3-component vector of float) +0:170 refract (global 3-component vector of float) +0:170 'inF0' (temp 3-component vector of float) +0:170 'inF1' (temp 3-component vector of float) +0:170 Constant: +0:170 2.000000 +0:? bitFieldReverse (global 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:172 roundEven (global 3-component vector of float) +0:172 'inF0' (temp 3-component vector of float) +0:173 inverse sqrt (global 3-component vector of float) +0:173 'inF0' (temp 3-component vector of float) +0:174 Sign (global 3-component vector of float) +0:174 'inF0' (temp 3-component vector of float) +0:175 sine (global 3-component vector of float) +0:175 'inF0' (temp 3-component vector of float) +0:176 hyp. sine (global 3-component vector of float) +0:176 'inF0' (temp 3-component vector of float) +0:177 smoothstep (global 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) +0:177 'inF1' (temp 3-component vector of float) +0:177 'inF2' (temp 3-component vector of float) +0:178 sqrt (global 3-component vector of float) +0:178 'inF0' (temp 3-component vector of float) +0:179 step (global 3-component vector of float) +0:179 'inF0' (temp 3-component vector of float) +0:179 'inF1' (temp 3-component vector of float) +0:180 tangent (global 3-component vector of float) +0:180 'inF0' (temp 3-component vector of float) +0:181 hyp. tangent (global 3-component vector of float) +0:181 'inF0' (temp 3-component vector of float) +0:183 trunc (global 3-component vector of float) +0:183 'inF0' (temp 3-component vector of float) +0:186 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:298 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) +0:190 Function Parameters: +0:190 'inF0' (temp 4-component vector of float) +0:190 'inF1' (temp 4-component vector of float) +0:190 'inF2' (temp 4-component vector of float) +0:? Sequence +0:191 all (global bool) +0:191 'inF0' (temp 4-component vector of float) +0:192 Absolute value (global 4-component vector of float) +0:192 'inF0' (temp 4-component vector of float) +0:193 arc cosine (global 4-component vector of float) +0:193 'inF0' (temp 4-component vector of float) +0:194 any (global bool) +0:194 'inF0' (temp 4-component vector of float) +0:195 arc sine (global 4-component vector of float) +0:195 'inF0' (temp 4-component vector of float) +0:196 arc tangent (global 4-component vector of float) +0:196 'inF0' (temp 4-component vector of float) +0:197 arc tangent (global 4-component vector of float) +0:197 'inF0' (temp 4-component vector of float) +0:197 'inF1' (temp 4-component vector of float) +0:198 Ceiling (global 4-component vector of float) +0:198 'inF0' (temp 4-component vector of float) +0:199 clamp (global 4-component vector of float) +0:199 'inF0' (temp 4-component vector of float) +0:199 'inF1' (temp 4-component vector of float) +0:199 'inF2' (temp 4-component vector of float) +0:200 cosine (global 4-component vector of float) +0:200 'inF0' (temp 4-component vector of float) +0:201 hyp. cosine (global 4-component vector of float) +0:201 'inF0' (temp 4-component vector of float) +0:? bitCount (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:? 2 (const uint) +0:203 degrees (global 4-component vector of float) +0:203 'inF0' (temp 4-component vector of float) +0:204 distance (global float) +0:204 'inF0' (temp 4-component vector of float) +0:204 'inF1' (temp 4-component vector of float) +0:205 dot-product (global float) +0:205 'inF0' (temp 4-component vector of float) +0:205 'inF1' (temp 4-component vector of float) +0:209 exp (global 4-component vector of float) +0:209 'inF0' (temp 4-component vector of float) +0:210 exp2 (global 4-component vector of float) +0:210 'inF0' (temp 4-component vector of float) +0:211 face-forward (global 4-component vector of float) +0:211 'inF0' (temp 4-component vector of float) +0:211 'inF1' (temp 4-component vector of float) +0:211 'inF2' (temp 4-component vector of float) +0:212 findMSB (global int) +0:212 Constant: +0:212 7 (const int) +0:213 findLSB (global int) +0:213 Constant: +0:213 7 (const int) +0:214 Floor (global 4-component vector of float) +0:214 'inF0' (temp 4-component vector of float) +0:216 Function Call: fmod(vf4;vf4; (global 4-component vector of float) +0:216 'inF0' (temp 4-component vector of float) +0:216 'inF1' (temp 4-component vector of float) +0:217 Fraction (global 4-component vector of float) +0:217 'inF0' (temp 4-component vector of float) +0:218 frexp (global 4-component vector of float) +0:218 'inF0' (temp 4-component vector of float) +0:218 'inF1' (temp 4-component vector of float) +0:219 fwidth (global 4-component vector of float) +0:219 'inF0' (temp 4-component vector of float) +0:220 isinf (global 4-component vector of bool) +0:220 'inF0' (temp 4-component vector of float) +0:221 isnan (global 4-component vector of bool) +0:221 'inF0' (temp 4-component vector of float) +0:222 ldexp (global 4-component vector of float) +0:222 'inF0' (temp 4-component vector of float) +0:222 'inF1' (temp 4-component vector of float) +0:223 length (global float) +0:223 'inF0' (temp 4-component vector of float) +0:224 log (global 4-component vector of float) +0:224 'inF0' (temp 4-component vector of float) +0:225 log2 (global 4-component vector of float) +0:225 'inF0' (temp 4-component vector of float) +0:226 max (global 4-component vector of float) +0:226 'inF0' (temp 4-component vector of float) +0:226 'inF1' (temp 4-component vector of float) +0:227 min (global 4-component vector of float) +0:227 'inF0' (temp 4-component vector of float) +0:227 'inF1' (temp 4-component vector of float) +0:229 normalize (global 4-component vector of float) +0:229 'inF0' (temp 4-component vector of float) +0:230 pow (global 4-component vector of float) +0:230 'inF0' (temp 4-component vector of float) +0:230 'inF1' (temp 4-component vector of float) +0:231 radians (global 4-component vector of float) +0:231 'inF0' (temp 4-component vector of float) +0:232 reflect (global 4-component vector of float) +0:232 'inF0' (temp 4-component vector of float) +0:232 'inF1' (temp 4-component vector of float) +0:233 refract (global 4-component vector of float) +0:233 'inF0' (temp 4-component vector of float) +0:233 'inF1' (temp 4-component vector of float) +0:233 Constant: +0:233 2.000000 +0:? bitFieldReverse (global 4-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:235 roundEven (global 4-component vector of float) +0:235 'inF0' (temp 4-component vector of float) +0:236 inverse sqrt (global 4-component vector of float) +0:236 'inF0' (temp 4-component vector of float) +0:237 Sign (global 4-component vector of float) +0:237 'inF0' (temp 4-component vector of float) +0:238 sine (global 4-component vector of float) +0:238 'inF0' (temp 4-component vector of float) +0:239 hyp. sine (global 4-component vector of float) +0:239 'inF0' (temp 4-component vector of float) +0:240 smoothstep (global 4-component vector of float) +0:240 'inF0' (temp 4-component vector of float) +0:240 'inF1' (temp 4-component vector of float) +0:240 'inF2' (temp 4-component vector of float) +0:241 sqrt (global 4-component vector of float) +0:241 'inF0' (temp 4-component vector of float) +0:242 step (global 4-component vector of float) +0:242 'inF0' (temp 4-component vector of float) +0:242 'inF1' (temp 4-component vector of float) +0:243 tangent (global 4-component vector of float) +0:243 'inF0' (temp 4-component vector of float) +0:244 hyp. tangent (global 4-component vector of float) +0:244 'inF0' (temp 4-component vector of float) +0:246 trunc (global 4-component vector of float) +0:246 'inF0' (temp 4-component vector of float) +0:249 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:307 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:299 Function Parameters: +0:299 'inF0' (temp 2X2 matrix of float) +0:299 'inF1' (temp 2X2 matrix of float) +0:299 'inF2' (temp 2X2 matrix of float) +0:? Sequence +0:301 all (global bool) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 Absolute value (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 arc cosine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 any (global bool) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 arc sine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 arc tangent (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 arc tangent (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 Ceiling (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 clamp (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 'inF2' (temp 2X2 matrix of float) +0:301 cosine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 hyp. cosine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 degrees (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 determinant (global float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 exp (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 exp2 (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 findMSB (global int) +0:301 Constant: +0:301 7 (const int) +0:301 findLSB (global int) +0:301 Constant: +0:301 7 (const int) +0:301 Floor (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 Function Call: fmod(mf22;mf22; (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 Fraction (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 frexp (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 fwidth (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 ldexp (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 log (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 log2 (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 max (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 min (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 pow (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 radians (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 roundEven (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 inverse sqrt (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 Sign (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 sine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 hyp. sine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 smoothstep (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 'inF2' (temp 2X2 matrix of float) +0:301 sqrt (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 step (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 tangent (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 hyp. tangent (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 transpose (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 trunc (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:304 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:316 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:308 Function Parameters: +0:308 'inF0' (temp 3X3 matrix of float) +0:308 'inF1' (temp 3X3 matrix of float) +0:308 'inF2' (temp 3X3 matrix of float) +0:? Sequence +0:310 all (global bool) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 Absolute value (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 arc cosine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 any (global bool) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 arc sine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 arc tangent (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 arc tangent (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 Ceiling (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 clamp (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 'inF2' (temp 3X3 matrix of float) +0:310 cosine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 hyp. cosine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 degrees (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 determinant (global float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 exp (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 exp2 (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 findMSB (global int) +0:310 Constant: +0:310 7 (const int) +0:310 findLSB (global int) +0:310 Constant: +0:310 7 (const int) +0:310 Floor (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 Function Call: fmod(mf33;mf33; (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 Fraction (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 frexp (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 fwidth (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 ldexp (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 log (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 log2 (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 max (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 min (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 pow (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 radians (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 roundEven (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 inverse sqrt (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 Sign (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 sine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 hyp. sine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 smoothstep (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 'inF2' (temp 3X3 matrix of float) +0:310 sqrt (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 step (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 tangent (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 hyp. tangent (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 transpose (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 trunc (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:313 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:324 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:317 Function Parameters: +0:317 'inF0' (temp 4X4 matrix of float) +0:317 'inF1' (temp 4X4 matrix of float) +0:317 'inF2' (temp 4X4 matrix of float) +0:? Sequence +0:319 all (global bool) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 Absolute value (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 arc cosine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 any (global bool) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 arc sine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 arc tangent (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 arc tangent (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 Ceiling (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 clamp (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 'inF2' (temp 4X4 matrix of float) +0:319 cosine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 hyp. cosine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 degrees (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 determinant (global float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 exp (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 exp2 (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 findMSB (global int) +0:319 Constant: +0:319 7 (const int) +0:319 findLSB (global int) +0:319 Constant: +0:319 7 (const int) +0:319 Floor (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 Function Call: fmod(mf44;mf44; (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 Fraction (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 frexp (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 fwidth (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 ldexp (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 log (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 log2 (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 max (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 min (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 pow (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 radians (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 roundEven (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 inverse sqrt (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 Sign (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 sine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 hyp. sine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 smoothstep (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 'inF2' (temp 4X4 matrix of float) +0:319 sqrt (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 step (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 tangent (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 hyp. tangent (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 transpose (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 trunc (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:322 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects + + +Linked vertex stage: + + +Shader version: 450 +0:? Sequence +0:56 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:? Sequence +0:3 all (global bool) +0:3 'inF0' (temp float) +0:4 Absolute value (global float) +0:4 'inF0' (temp float) +0:5 arc cosine (global float) +0:5 'inF0' (temp float) +0:6 any (global bool) +0:6 'inF0' (temp float) +0:7 arc sine (global float) +0:7 'inF0' (temp float) +0:8 arc tangent (global float) +0:8 'inF0' (temp float) +0:9 arc tangent (global float) +0:9 'inF0' (temp float) +0:9 'inF1' (temp float) +0:10 Ceiling (global float) +0:10 'inF0' (temp float) +0:11 clamp (global float) +0:11 'inF0' (temp float) +0:11 'inF1' (temp float) +0:11 'inF2' (temp float) +0:12 cosine (global float) +0:12 'inF0' (temp float) +0:13 hyp. cosine (global float) +0:13 'inF0' (temp float) +0:14 bitCount (global uint) +0:14 Constant: +0:14 7 (const uint) +0:15 degrees (global float) +0:15 'inF0' (temp float) +0:19 exp (global float) +0:19 'inF0' (temp float) +0:20 exp2 (global float) +0:20 'inF0' (temp float) +0:21 findMSB (global int) +0:21 Constant: +0:21 7 (const int) +0:22 findLSB (global int) +0:22 Constant: +0:22 7 (const int) +0:23 Floor (global float) +0:23 'inF0' (temp float) +0:25 Function Call: fmod(f1;f1; (global float) +0:25 'inF0' (temp float) +0:25 'inF1' (temp float) +0:26 Fraction (global float) +0:26 'inF0' (temp float) +0:27 frexp (global float) +0:27 'inF0' (temp float) +0:27 'inF1' (temp float) +0:28 fwidth (global float) +0:28 'inF0' (temp float) +0:29 isinf (global bool) +0:29 'inF0' (temp float) +0:30 isnan (global bool) +0:30 'inF0' (temp float) +0:31 ldexp (global float) +0:31 'inF0' (temp float) +0:31 'inF1' (temp float) +0:32 log (global float) +0:32 'inF0' (temp float) +0:33 log2 (global float) +0:33 'inF0' (temp float) +0:34 max (global float) +0:34 'inF0' (temp float) +0:34 'inF1' (temp float) +0:35 min (global float) +0:35 'inF0' (temp float) +0:35 'inF1' (temp float) +0:37 pow (global float) +0:37 'inF0' (temp float) +0:37 'inF1' (temp float) +0:38 radians (global float) +0:38 'inF0' (temp float) +0:39 bitFieldReverse (global uint) +0:39 Constant: +0:39 2 (const uint) +0:40 roundEven (global float) +0:40 'inF0' (temp float) +0:41 inverse sqrt (global float) +0:41 'inF0' (temp float) +0:42 Sign (global float) +0:42 'inF0' (temp float) +0:43 sine (global float) +0:43 'inF0' (temp float) +0:44 hyp. sine (global float) +0:44 'inF0' (temp float) +0:45 smoothstep (global float) +0:45 'inF0' (temp float) +0:45 'inF1' (temp float) +0:45 'inF2' (temp float) +0:46 sqrt (global float) +0:46 'inF0' (temp float) +0:47 step (global float) +0:47 'inF0' (temp float) +0:47 'inF1' (temp float) +0:48 tangent (global float) +0:48 'inF0' (temp float) +0:49 hyp. tangent (global float) +0:49 'inF0' (temp float) +0:51 trunc (global float) +0:51 'inF0' (temp float) +0:53 Branch: Return with expression +0:53 Constant: +0:53 0.000000 +0:62 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:57 Function Parameters: +0:57 'inF0' (temp 1-component vector of float) +0:57 'inF1' (temp 1-component vector of float) +0:57 'inF2' (temp 1-component vector of float) +0:? Sequence +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:125 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) +0:63 Function Parameters: +0:63 'inF0' (temp 2-component vector of float) +0:63 'inF1' (temp 2-component vector of float) +0:63 'inF2' (temp 2-component vector of float) +0:? Sequence +0:64 all (global bool) +0:64 'inF0' (temp 2-component vector of float) +0:65 Absolute value (global 2-component vector of float) +0:65 'inF0' (temp 2-component vector of float) +0:66 arc cosine (global 2-component vector of float) +0:66 'inF0' (temp 2-component vector of float) +0:67 any (global bool) +0:67 'inF0' (temp 2-component vector of float) +0:68 arc sine (global 2-component vector of float) +0:68 'inF0' (temp 2-component vector of float) +0:69 arc tangent (global 2-component vector of float) +0:69 'inF0' (temp 2-component vector of float) +0:70 arc tangent (global 2-component vector of float) +0:70 'inF0' (temp 2-component vector of float) +0:70 'inF1' (temp 2-component vector of float) +0:71 Ceiling (global 2-component vector of float) +0:71 'inF0' (temp 2-component vector of float) +0:72 clamp (global 2-component vector of float) +0:72 'inF0' (temp 2-component vector of float) +0:72 'inF1' (temp 2-component vector of float) +0:72 'inF2' (temp 2-component vector of float) +0:73 cosine (global 2-component vector of float) +0:73 'inF0' (temp 2-component vector of float) +0:74 hyp. cosine (global 2-component vector of float) +0:74 'inF0' (temp 2-component vector of float) +0:? bitCount (global 2-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:76 degrees (global 2-component vector of float) +0:76 'inF0' (temp 2-component vector of float) +0:77 distance (global float) +0:77 'inF0' (temp 2-component vector of float) +0:77 'inF1' (temp 2-component vector of float) +0:78 dot-product (global float) +0:78 'inF0' (temp 2-component vector of float) +0:78 'inF1' (temp 2-component vector of float) +0:82 exp (global 2-component vector of float) +0:82 'inF0' (temp 2-component vector of float) +0:83 exp2 (global 2-component vector of float) +0:83 'inF0' (temp 2-component vector of float) +0:84 face-forward (global 2-component vector of float) +0:84 'inF0' (temp 2-component vector of float) +0:84 'inF1' (temp 2-component vector of float) +0:84 'inF2' (temp 2-component vector of float) +0:85 findMSB (global int) +0:85 Constant: +0:85 7 (const int) +0:86 findLSB (global int) +0:86 Constant: +0:86 7 (const int) +0:87 Floor (global 2-component vector of float) +0:87 'inF0' (temp 2-component vector of float) +0:89 Function Call: fmod(vf2;vf2; (global 2-component vector of float) +0:89 'inF0' (temp 2-component vector of float) +0:89 'inF1' (temp 2-component vector of float) +0:90 Fraction (global 2-component vector of float) +0:90 'inF0' (temp 2-component vector of float) +0:91 frexp (global 2-component vector of float) +0:91 'inF0' (temp 2-component vector of float) +0:91 'inF1' (temp 2-component vector of float) +0:92 fwidth (global 2-component vector of float) +0:92 'inF0' (temp 2-component vector of float) +0:93 isinf (global 2-component vector of bool) +0:93 'inF0' (temp 2-component vector of float) +0:94 isnan (global 2-component vector of bool) +0:94 'inF0' (temp 2-component vector of float) +0:95 ldexp (global 2-component vector of float) +0:95 'inF0' (temp 2-component vector of float) +0:95 'inF1' (temp 2-component vector of float) +0:96 length (global float) +0:96 'inF0' (temp 2-component vector of float) +0:97 log (global 2-component vector of float) +0:97 'inF0' (temp 2-component vector of float) +0:98 log2 (global 2-component vector of float) +0:98 'inF0' (temp 2-component vector of float) +0:99 max (global 2-component vector of float) +0:99 'inF0' (temp 2-component vector of float) +0:99 'inF1' (temp 2-component vector of float) +0:100 min (global 2-component vector of float) +0:100 'inF0' (temp 2-component vector of float) +0:100 'inF1' (temp 2-component vector of float) +0:102 normalize (global 2-component vector of float) +0:102 'inF0' (temp 2-component vector of float) +0:103 pow (global 2-component vector of float) +0:103 'inF0' (temp 2-component vector of float) +0:103 'inF1' (temp 2-component vector of float) +0:104 radians (global 2-component vector of float) +0:104 'inF0' (temp 2-component vector of float) +0:105 reflect (global 2-component vector of float) +0:105 'inF0' (temp 2-component vector of float) +0:105 'inF1' (temp 2-component vector of float) +0:106 refract (global 2-component vector of float) +0:106 'inF0' (temp 2-component vector of float) +0:106 'inF1' (temp 2-component vector of float) +0:106 Constant: +0:106 2.000000 +0:? bitFieldReverse (global 2-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:108 roundEven (global 2-component vector of float) +0:108 'inF0' (temp 2-component vector of float) +0:109 inverse sqrt (global 2-component vector of float) +0:109 'inF0' (temp 2-component vector of float) +0:110 Sign (global 2-component vector of float) +0:110 'inF0' (temp 2-component vector of float) +0:111 sine (global 2-component vector of float) +0:111 'inF0' (temp 2-component vector of float) +0:112 hyp. sine (global 2-component vector of float) +0:112 'inF0' (temp 2-component vector of float) +0:113 smoothstep (global 2-component vector of float) +0:113 'inF0' (temp 2-component vector of float) +0:113 'inF1' (temp 2-component vector of float) +0:113 'inF2' (temp 2-component vector of float) +0:114 sqrt (global 2-component vector of float) +0:114 'inF0' (temp 2-component vector of float) +0:115 step (global 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:115 'inF1' (temp 2-component vector of float) +0:116 tangent (global 2-component vector of float) +0:116 'inF0' (temp 2-component vector of float) +0:117 hyp. tangent (global 2-component vector of float) +0:117 'inF0' (temp 2-component vector of float) +0:119 trunc (global 2-component vector of float) +0:119 'inF0' (temp 2-component vector of float) +0:122 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:189 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) +0:126 Function Parameters: +0:126 'inF0' (temp 3-component vector of float) +0:126 'inF1' (temp 3-component vector of float) +0:126 'inF2' (temp 3-component vector of float) +0:? Sequence +0:127 all (global bool) +0:127 'inF0' (temp 3-component vector of float) +0:128 Absolute value (global 3-component vector of float) +0:128 'inF0' (temp 3-component vector of float) +0:129 arc cosine (global 3-component vector of float) +0:129 'inF0' (temp 3-component vector of float) +0:130 any (global bool) +0:130 'inF0' (temp 3-component vector of float) +0:131 arc sine (global 3-component vector of float) +0:131 'inF0' (temp 3-component vector of float) +0:132 arc tangent (global 3-component vector of float) +0:132 'inF0' (temp 3-component vector of float) +0:133 arc tangent (global 3-component vector of float) +0:133 'inF0' (temp 3-component vector of float) +0:133 'inF1' (temp 3-component vector of float) +0:134 Ceiling (global 3-component vector of float) +0:134 'inF0' (temp 3-component vector of float) +0:135 clamp (global 3-component vector of float) +0:135 'inF0' (temp 3-component vector of float) +0:135 'inF1' (temp 3-component vector of float) +0:135 'inF2' (temp 3-component vector of float) +0:136 cosine (global 3-component vector of float) +0:136 'inF0' (temp 3-component vector of float) +0:137 hyp. cosine (global 3-component vector of float) +0:137 'inF0' (temp 3-component vector of float) +0:? bitCount (global 3-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:139 cross-product (global 3-component vector of float) +0:139 'inF0' (temp 3-component vector of float) +0:139 'inF1' (temp 3-component vector of float) +0:140 degrees (global 3-component vector of float) +0:140 'inF0' (temp 3-component vector of float) +0:141 distance (global float) +0:141 'inF0' (temp 3-component vector of float) +0:141 'inF1' (temp 3-component vector of float) +0:142 dot-product (global float) +0:142 'inF0' (temp 3-component vector of float) +0:142 'inF1' (temp 3-component vector of float) +0:146 exp (global 3-component vector of float) +0:146 'inF0' (temp 3-component vector of float) +0:147 exp2 (global 3-component vector of float) +0:147 'inF0' (temp 3-component vector of float) +0:148 face-forward (global 3-component vector of float) +0:148 'inF0' (temp 3-component vector of float) +0:148 'inF1' (temp 3-component vector of float) +0:148 'inF2' (temp 3-component vector of float) +0:149 findMSB (global int) +0:149 Constant: +0:149 7 (const int) +0:150 findLSB (global int) +0:150 Constant: +0:150 7 (const int) +0:151 Floor (global 3-component vector of float) +0:151 'inF0' (temp 3-component vector of float) +0:153 Function Call: fmod(vf3;vf3; (global 3-component vector of float) +0:153 'inF0' (temp 3-component vector of float) +0:153 'inF1' (temp 3-component vector of float) +0:154 Fraction (global 3-component vector of float) +0:154 'inF0' (temp 3-component vector of float) +0:155 frexp (global 3-component vector of float) +0:155 'inF0' (temp 3-component vector of float) +0:155 'inF1' (temp 3-component vector of float) +0:156 fwidth (global 3-component vector of float) +0:156 'inF0' (temp 3-component vector of float) +0:157 isinf (global 3-component vector of bool) +0:157 'inF0' (temp 3-component vector of float) +0:158 isnan (global 3-component vector of bool) +0:158 'inF0' (temp 3-component vector of float) +0:159 ldexp (global 3-component vector of float) +0:159 'inF0' (temp 3-component vector of float) +0:159 'inF1' (temp 3-component vector of float) +0:160 length (global float) +0:160 'inF0' (temp 3-component vector of float) +0:161 log (global 3-component vector of float) +0:161 'inF0' (temp 3-component vector of float) +0:162 log2 (global 3-component vector of float) +0:162 'inF0' (temp 3-component vector of float) +0:163 max (global 3-component vector of float) +0:163 'inF0' (temp 3-component vector of float) +0:163 'inF1' (temp 3-component vector of float) +0:164 min (global 3-component vector of float) +0:164 'inF0' (temp 3-component vector of float) +0:164 'inF1' (temp 3-component vector of float) +0:166 normalize (global 3-component vector of float) +0:166 'inF0' (temp 3-component vector of float) +0:167 pow (global 3-component vector of float) +0:167 'inF0' (temp 3-component vector of float) +0:167 'inF1' (temp 3-component vector of float) +0:168 radians (global 3-component vector of float) +0:168 'inF0' (temp 3-component vector of float) +0:169 reflect (global 3-component vector of float) +0:169 'inF0' (temp 3-component vector of float) +0:169 'inF1' (temp 3-component vector of float) +0:170 refract (global 3-component vector of float) +0:170 'inF0' (temp 3-component vector of float) +0:170 'inF1' (temp 3-component vector of float) +0:170 Constant: +0:170 2.000000 +0:? bitFieldReverse (global 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:172 roundEven (global 3-component vector of float) +0:172 'inF0' (temp 3-component vector of float) +0:173 inverse sqrt (global 3-component vector of float) +0:173 'inF0' (temp 3-component vector of float) +0:174 Sign (global 3-component vector of float) +0:174 'inF0' (temp 3-component vector of float) +0:175 sine (global 3-component vector of float) +0:175 'inF0' (temp 3-component vector of float) +0:176 hyp. sine (global 3-component vector of float) +0:176 'inF0' (temp 3-component vector of float) +0:177 smoothstep (global 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) +0:177 'inF1' (temp 3-component vector of float) +0:177 'inF2' (temp 3-component vector of float) +0:178 sqrt (global 3-component vector of float) +0:178 'inF0' (temp 3-component vector of float) +0:179 step (global 3-component vector of float) +0:179 'inF0' (temp 3-component vector of float) +0:179 'inF1' (temp 3-component vector of float) +0:180 tangent (global 3-component vector of float) +0:180 'inF0' (temp 3-component vector of float) +0:181 hyp. tangent (global 3-component vector of float) +0:181 'inF0' (temp 3-component vector of float) +0:183 trunc (global 3-component vector of float) +0:183 'inF0' (temp 3-component vector of float) +0:186 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:298 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) +0:190 Function Parameters: +0:190 'inF0' (temp 4-component vector of float) +0:190 'inF1' (temp 4-component vector of float) +0:190 'inF2' (temp 4-component vector of float) +0:? Sequence +0:191 all (global bool) +0:191 'inF0' (temp 4-component vector of float) +0:192 Absolute value (global 4-component vector of float) +0:192 'inF0' (temp 4-component vector of float) +0:193 arc cosine (global 4-component vector of float) +0:193 'inF0' (temp 4-component vector of float) +0:194 any (global bool) +0:194 'inF0' (temp 4-component vector of float) +0:195 arc sine (global 4-component vector of float) +0:195 'inF0' (temp 4-component vector of float) +0:196 arc tangent (global 4-component vector of float) +0:196 'inF0' (temp 4-component vector of float) +0:197 arc tangent (global 4-component vector of float) +0:197 'inF0' (temp 4-component vector of float) +0:197 'inF1' (temp 4-component vector of float) +0:198 Ceiling (global 4-component vector of float) +0:198 'inF0' (temp 4-component vector of float) +0:199 clamp (global 4-component vector of float) +0:199 'inF0' (temp 4-component vector of float) +0:199 'inF1' (temp 4-component vector of float) +0:199 'inF2' (temp 4-component vector of float) +0:200 cosine (global 4-component vector of float) +0:200 'inF0' (temp 4-component vector of float) +0:201 hyp. cosine (global 4-component vector of float) +0:201 'inF0' (temp 4-component vector of float) +0:? bitCount (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:? 2 (const uint) +0:203 degrees (global 4-component vector of float) +0:203 'inF0' (temp 4-component vector of float) +0:204 distance (global float) +0:204 'inF0' (temp 4-component vector of float) +0:204 'inF1' (temp 4-component vector of float) +0:205 dot-product (global float) +0:205 'inF0' (temp 4-component vector of float) +0:205 'inF1' (temp 4-component vector of float) +0:209 exp (global 4-component vector of float) +0:209 'inF0' (temp 4-component vector of float) +0:210 exp2 (global 4-component vector of float) +0:210 'inF0' (temp 4-component vector of float) +0:211 face-forward (global 4-component vector of float) +0:211 'inF0' (temp 4-component vector of float) +0:211 'inF1' (temp 4-component vector of float) +0:211 'inF2' (temp 4-component vector of float) +0:212 findMSB (global int) +0:212 Constant: +0:212 7 (const int) +0:213 findLSB (global int) +0:213 Constant: +0:213 7 (const int) +0:214 Floor (global 4-component vector of float) +0:214 'inF0' (temp 4-component vector of float) +0:216 Function Call: fmod(vf4;vf4; (global 4-component vector of float) +0:216 'inF0' (temp 4-component vector of float) +0:216 'inF1' (temp 4-component vector of float) +0:217 Fraction (global 4-component vector of float) +0:217 'inF0' (temp 4-component vector of float) +0:218 frexp (global 4-component vector of float) +0:218 'inF0' (temp 4-component vector of float) +0:218 'inF1' (temp 4-component vector of float) +0:219 fwidth (global 4-component vector of float) +0:219 'inF0' (temp 4-component vector of float) +0:220 isinf (global 4-component vector of bool) +0:220 'inF0' (temp 4-component vector of float) +0:221 isnan (global 4-component vector of bool) +0:221 'inF0' (temp 4-component vector of float) +0:222 ldexp (global 4-component vector of float) +0:222 'inF0' (temp 4-component vector of float) +0:222 'inF1' (temp 4-component vector of float) +0:223 length (global float) +0:223 'inF0' (temp 4-component vector of float) +0:224 log (global 4-component vector of float) +0:224 'inF0' (temp 4-component vector of float) +0:225 log2 (global 4-component vector of float) +0:225 'inF0' (temp 4-component vector of float) +0:226 max (global 4-component vector of float) +0:226 'inF0' (temp 4-component vector of float) +0:226 'inF1' (temp 4-component vector of float) +0:227 min (global 4-component vector of float) +0:227 'inF0' (temp 4-component vector of float) +0:227 'inF1' (temp 4-component vector of float) +0:229 normalize (global 4-component vector of float) +0:229 'inF0' (temp 4-component vector of float) +0:230 pow (global 4-component vector of float) +0:230 'inF0' (temp 4-component vector of float) +0:230 'inF1' (temp 4-component vector of float) +0:231 radians (global 4-component vector of float) +0:231 'inF0' (temp 4-component vector of float) +0:232 reflect (global 4-component vector of float) +0:232 'inF0' (temp 4-component vector of float) +0:232 'inF1' (temp 4-component vector of float) +0:233 refract (global 4-component vector of float) +0:233 'inF0' (temp 4-component vector of float) +0:233 'inF1' (temp 4-component vector of float) +0:233 Constant: +0:233 2.000000 +0:? bitFieldReverse (global 4-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:235 roundEven (global 4-component vector of float) +0:235 'inF0' (temp 4-component vector of float) +0:236 inverse sqrt (global 4-component vector of float) +0:236 'inF0' (temp 4-component vector of float) +0:237 Sign (global 4-component vector of float) +0:237 'inF0' (temp 4-component vector of float) +0:238 sine (global 4-component vector of float) +0:238 'inF0' (temp 4-component vector of float) +0:239 hyp. sine (global 4-component vector of float) +0:239 'inF0' (temp 4-component vector of float) +0:240 smoothstep (global 4-component vector of float) +0:240 'inF0' (temp 4-component vector of float) +0:240 'inF1' (temp 4-component vector of float) +0:240 'inF2' (temp 4-component vector of float) +0:241 sqrt (global 4-component vector of float) +0:241 'inF0' (temp 4-component vector of float) +0:242 step (global 4-component vector of float) +0:242 'inF0' (temp 4-component vector of float) +0:242 'inF1' (temp 4-component vector of float) +0:243 tangent (global 4-component vector of float) +0:243 'inF0' (temp 4-component vector of float) +0:244 hyp. tangent (global 4-component vector of float) +0:244 'inF0' (temp 4-component vector of float) +0:246 trunc (global 4-component vector of float) +0:246 'inF0' (temp 4-component vector of float) +0:249 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:307 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:299 Function Parameters: +0:299 'inF0' (temp 2X2 matrix of float) +0:299 'inF1' (temp 2X2 matrix of float) +0:299 'inF2' (temp 2X2 matrix of float) +0:? Sequence +0:301 all (global bool) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 Absolute value (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 arc cosine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 any (global bool) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 arc sine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 arc tangent (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 arc tangent (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 Ceiling (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 clamp (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 'inF2' (temp 2X2 matrix of float) +0:301 cosine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 hyp. cosine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 degrees (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 determinant (global float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 exp (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 exp2 (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 findMSB (global int) +0:301 Constant: +0:301 7 (const int) +0:301 findLSB (global int) +0:301 Constant: +0:301 7 (const int) +0:301 Floor (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 Function Call: fmod(mf22;mf22; (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 Fraction (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 frexp (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 fwidth (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 ldexp (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 log (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 log2 (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 max (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 min (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 pow (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 radians (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 roundEven (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 inverse sqrt (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 Sign (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 sine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 hyp. sine (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 smoothstep (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 'inF2' (temp 2X2 matrix of float) +0:301 sqrt (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 step (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 'inF1' (temp 2X2 matrix of float) +0:301 tangent (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 hyp. tangent (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 transpose (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:301 trunc (global 2X2 matrix of float) +0:301 'inF0' (temp 2X2 matrix of float) +0:304 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:316 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:308 Function Parameters: +0:308 'inF0' (temp 3X3 matrix of float) +0:308 'inF1' (temp 3X3 matrix of float) +0:308 'inF2' (temp 3X3 matrix of float) +0:? Sequence +0:310 all (global bool) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 Absolute value (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 arc cosine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 any (global bool) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 arc sine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 arc tangent (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 arc tangent (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 Ceiling (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 clamp (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 'inF2' (temp 3X3 matrix of float) +0:310 cosine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 hyp. cosine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 degrees (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 determinant (global float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 exp (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 exp2 (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 findMSB (global int) +0:310 Constant: +0:310 7 (const int) +0:310 findLSB (global int) +0:310 Constant: +0:310 7 (const int) +0:310 Floor (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 Function Call: fmod(mf33;mf33; (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 Fraction (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 frexp (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 fwidth (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 ldexp (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 log (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 log2 (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 max (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 min (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 pow (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 radians (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 roundEven (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 inverse sqrt (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 Sign (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 sine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 hyp. sine (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 smoothstep (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 'inF2' (temp 3X3 matrix of float) +0:310 sqrt (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 step (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 'inF1' (temp 3X3 matrix of float) +0:310 tangent (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 hyp. tangent (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 transpose (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:310 trunc (global 3X3 matrix of float) +0:310 'inF0' (temp 3X3 matrix of float) +0:313 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:324 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:317 Function Parameters: +0:317 'inF0' (temp 4X4 matrix of float) +0:317 'inF1' (temp 4X4 matrix of float) +0:317 'inF2' (temp 4X4 matrix of float) +0:? Sequence +0:319 all (global bool) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 Absolute value (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 arc cosine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 any (global bool) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 arc sine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 arc tangent (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 arc tangent (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 Ceiling (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 clamp (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 'inF2' (temp 4X4 matrix of float) +0:319 cosine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 hyp. cosine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 degrees (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 determinant (global float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 exp (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 exp2 (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 findMSB (global int) +0:319 Constant: +0:319 7 (const int) +0:319 findLSB (global int) +0:319 Constant: +0:319 7 (const int) +0:319 Floor (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 Function Call: fmod(mf44;mf44; (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 Fraction (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 frexp (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 fwidth (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 ldexp (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 log (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 log2 (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 max (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 min (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 pow (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 radians (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 roundEven (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 inverse sqrt (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 Sign (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 sine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 hyp. sine (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 smoothstep (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 'inF2' (temp 4X4 matrix of float) +0:319 sqrt (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 step (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 'inF1' (temp 4X4 matrix of float) +0:319 tangent (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 hyp. tangent (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 transpose (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:319 trunc (global 4X4 matrix of float) +0:319 'inF0' (temp 4X4 matrix of float) +0:322 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects + +Missing functionality: missing user function; linker needs to catch that +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 796 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "VertexShaderFunction" + Source HLSL 450 + Name 4 "VertexShaderFunction" + Name 8 "inF0" + Name 23 "inF1" + Name 30 "inF2" + Name 55 "ResType" + Name 115 "inF0" + Name 129 "inF1" + Name 136 "inF2" + Name 171 "ResType" + Name 244 "inF0" + Name 258 "inF1" + Name 265 "inF2" + Name 303 "ResType" + Name 374 "inF0" + Name 388 "inF1" + Name 395 "inF2" + Name 429 "ResType" + Name 501 "inF0" + Name 515 "inF1" + Name 522 "inF2" + Name 544 "ResType" + Name 600 "inF0" + Name 614 "inF1" + Name 621 "inF2" + Name 643 "ResType" + Name 699 "inF0" + Name 713 "inF1" + Name 720 "inF2" + Name 742 "ResType" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 10: TypeBool + 37: TypeInt 32 0 + 38: 37(int) Constant 7 + 46: TypeInt 32 1 + 47: 46(int) Constant 7 + 55(ResType): TypeStruct 6(float) 46(int) + 83: 37(int) Constant 2 + 110: 6(float) Constant 0 + 113: TypeVector 6(float) 2 + 114: TypePointer Function 113(fvec2) + 143: TypeVector 37(int) 2 + 144: 37(int) Constant 3 + 145: 143(ivec2) ConstantComposite 38 144 + 170: TypeVector 46(int) 2 + 171(ResType): TypeStruct 113(fvec2) 170(ivec2) + 178: TypeVector 10(bool) 2 + 209: 6(float) Constant 1073741824 + 211: 37(int) Constant 1 + 212: 143(ivec2) ConstantComposite 211 83 + 239: 6(float) Constant 1065353216 + 240: 113(fvec2) ConstantComposite 239 209 + 242: TypeVector 6(float) 3 + 243: TypePointer Function 242(fvec3) + 272: TypeVector 37(int) 3 + 273: 37(int) Constant 5 + 274: 272(ivec3) ConstantComposite 38 144 273 + 302: TypeVector 46(int) 3 + 303(ResType): TypeStruct 242(fvec3) 302(ivec3) + 310: TypeVector 10(bool) 3 + 342: 272(ivec3) ConstantComposite 211 83 144 + 369: 6(float) Constant 1077936128 + 370: 242(fvec3) ConstantComposite 239 209 369 + 372: TypeVector 6(float) 4 + 373: TypePointer Function 372(fvec4) + 402: TypeVector 37(int) 4 + 403: 402(ivec4) ConstantComposite 38 144 273 83 + 428: TypeVector 46(int) 4 + 429(ResType): TypeStruct 372(fvec4) 428(ivec4) + 436: TypeVector 10(bool) 4 + 468: 37(int) Constant 4 + 469: 402(ivec4) ConstantComposite 211 83 144 468 + 496: 6(float) Constant 1082130432 + 497: 372(fvec4) ConstantComposite 239 209 369 496 + 499: TypeMatrix 113(fvec2) 2 + 500: TypePointer Function 499 + 544(ResType): TypeStruct 499 170(ivec2) + 595: 113(fvec2) ConstantComposite 209 209 + 596: 499 ConstantComposite 595 595 + 598: TypeMatrix 242(fvec3) 3 + 599: TypePointer Function 598 + 643(ResType): TypeStruct 598 302(ivec3) + 694: 242(fvec3) ConstantComposite 369 369 369 + 695: 598 ConstantComposite 694 694 694 + 697: TypeMatrix 372(fvec4) 4 + 698: TypePointer Function 697 + 742(ResType): TypeStruct 697 428(ivec4) + 793: 372(fvec4) ConstantComposite 496 496 496 496 + 794: 697 ConstantComposite 793 793 793 793 +4(VertexShaderFunction): 2 Function None 3 + 5: Label + 8(inF0): 7(ptr) Variable Function + 23(inF1): 7(ptr) Variable Function + 30(inF2): 7(ptr) Variable Function + 115(inF0): 114(ptr) Variable Function + 129(inF1): 114(ptr) Variable Function + 136(inF2): 114(ptr) Variable Function + 244(inF0): 243(ptr) Variable Function + 258(inF1): 243(ptr) Variable Function + 265(inF2): 243(ptr) Variable Function + 374(inF0): 373(ptr) Variable Function + 388(inF1): 373(ptr) Variable Function + 395(inF2): 373(ptr) Variable Function + 501(inF0): 500(ptr) Variable Function + 515(inF1): 500(ptr) Variable Function + 522(inF2): 500(ptr) Variable Function + 600(inF0): 599(ptr) Variable Function + 614(inF1): 599(ptr) Variable Function + 621(inF2): 599(ptr) Variable Function + 699(inF0): 698(ptr) Variable Function + 713(inF1): 698(ptr) Variable Function + 720(inF2): 698(ptr) Variable Function + 9: 6(float) Load 8(inF0) + 11: 10(bool) All 9 + 12: 6(float) Load 8(inF0) + 13: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 12 + 14: 6(float) Load 8(inF0) + 15: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 14 + 16: 6(float) Load 8(inF0) + 17: 10(bool) Any 16 + 18: 6(float) Load 8(inF0) + 19: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 18 + 20: 6(float) Load 8(inF0) + 21: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 20 + 22: 6(float) Load 8(inF0) + 24: 6(float) Load 23(inF1) + 25: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 22 24 + 26: 6(float) Load 8(inF0) + 27: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 26 + 28: 6(float) Load 8(inF0) + 29: 6(float) Load 23(inF1) + 31: 6(float) Load 30(inF2) + 32: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 28 29 31 + 33: 6(float) Load 8(inF0) + 34: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 33 + 35: 6(float) Load 8(inF0) + 36: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 35 + 39: 37(int) BitCount 38 + 40: 6(float) Load 8(inF0) + 41: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 40 + 42: 6(float) Load 8(inF0) + 43: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 42 + 44: 6(float) Load 8(inF0) + 45: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 44 + 48: 46(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 47 + 49: 46(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 47 + 50: 6(float) Load 8(inF0) + 51: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 50 + 52: 6(float) Load 8(inF0) + 53: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 52 + 54: 6(float) Load 8(inF0) + 56: 55(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 54 + 57: 46(int) CompositeExtract 56 1 + Store 23(inF1) 57 + 58: 6(float) CompositeExtract 56 0 + 59: 6(float) Load 8(inF0) + 60: 6(float) Fwidth 59 + 61: 6(float) Load 8(inF0) + 62: 10(bool) IsInf 61 + 63: 6(float) Load 8(inF0) + 64: 10(bool) IsNan 63 + 65: 6(float) Load 8(inF0) + 66: 6(float) Load 23(inF1) + 67: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 65 66 + 68: 6(float) Load 8(inF0) + 69: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 68 + 70: 6(float) Load 8(inF0) + 71: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 70 + 72: 6(float) Load 8(inF0) + 73: 6(float) Load 23(inF1) + 74: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 72 73 + 75: 6(float) Load 8(inF0) + 76: 6(float) Load 23(inF1) + 77: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 75 76 + 78: 6(float) Load 8(inF0) + 79: 6(float) Load 23(inF1) + 80: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 78 79 + 81: 6(float) Load 8(inF0) + 82: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 81 + 84: 37(int) BitReverse 83 + 85: 6(float) Load 8(inF0) + 86: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 85 + 87: 6(float) Load 8(inF0) + 88: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 87 + 89: 6(float) Load 8(inF0) + 90: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 89 + 91: 6(float) Load 8(inF0) + 92: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 91 + 93: 6(float) Load 8(inF0) + 94: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 93 + 95: 6(float) Load 8(inF0) + 96: 6(float) Load 23(inF1) + 97: 6(float) Load 30(inF2) + 98: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 95 96 97 + 99: 6(float) Load 8(inF0) + 100: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 99 + 101: 6(float) Load 8(inF0) + 102: 6(float) Load 23(inF1) + 103: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 101 102 + 104: 6(float) Load 8(inF0) + 105: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 104 + 106: 6(float) Load 8(inF0) + 107: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 106 + 108: 6(float) Load 8(inF0) + 109: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 108 + ReturnValue 110 + FunctionEnd diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 438a06a4..298211df 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -1,5 +1,5 @@ hlsl.matType.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 move second child to first child (temp 1-component vector of float) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:1 move second child to first child (temp 1-component vector of float) @@ -51,7 +51,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index addc965c..7c3c7e69 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -1,5 +1,5 @@ hlsl.max.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) @@ -17,7 +17,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) @@ -40,7 +40,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input1" Name 11 "input2" diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index fc31f4b2..dc0b0e93 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -1,5 +1,5 @@ hlsl.precedence.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) @@ -52,7 +52,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "a1" Name 11 "a2" diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index fc4ae025..73d500d3 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -1,5 +1,5 @@ hlsl.precedence2.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) @@ -31,7 +31,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) @@ -68,7 +68,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 8 "a1" Name 10 "a2" diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index 7d4f626d..331945ac 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -1,5 +1,5 @@ hlsl.sin.frag -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) @@ -15,7 +15,7 @@ gl_FragCoord origin is upper left Linked fragment stage: -Shader version: 100 +Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left MemoryModel Logical GLSL450 EntryPoint Fragment 4 "PixelShaderFunction" ExecutionMode 4 OriginUpperLeft - Source HLSL 100 + Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input" 2: TypeVoid diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag new file mode 100644 index 00000000..563ce225 --- /dev/null +++ b/Test/hlsl.intrinsics.frag @@ -0,0 +1,353 @@ +float PixelShaderFunction(float inF0, float inF1, float inF2) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(7); + ddx(inF0); + ddx_coarse(inF0); + ddx_fine(inF0); + ddy(inF0); + ddy_coarse(inF0); + ddy_fine(inF0); + degrees(inF0); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + frexp(inF0, inF1); + fwidth(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + log(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + pow(inF0, inF1); + radians(inF0); + reversebits(2); + round(inF0); + rsqrt(inF0); + sign(inF0); + sin(inF0); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + return 0.0; +} + +float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2) +{ + // TODO: ... add when float1 prototypes are generated + return 0.0; +} + +float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int2(7,3)); + ddx(inF0); + ddx_coarse(inF0); + ddx_fine(inF0); + ddy(inF0); + ddy_coarse(inF0); + ddy_fine(inF0); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + faceforward(inF0, inF1, inF2); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + frexp(inF0, inF1); + fwidth(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + length(inF0); + log(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int2(1,2)); + round(inF0); + rsqrt(inF0); + sign(inF0); + sin(inF0); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float2(1,2); +} + +float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int3(7,3,5)); + cross(inF0, inF1); + ddx(inF0); + ddx_coarse(inF0); + ddx_fine(inF0); + ddy(inF0); + ddy_coarse(inF0); + ddy_fine(inF0); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + faceforward(inF0, inF1, inF2); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + frexp(inF0, inF1); + fwidth(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + length(inF0); + log(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int3(1,2,3)); + round(inF0); + rsqrt(inF0); + sign(inF0); + sin(inF0); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float3(1,2,3); +} + +float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int4(7,3,5,2)); + ddx(inF0); + ddx_coarse(inF0); + ddx_fine(inF0); + ddy(inF0); + ddy_coarse(inF0); + ddy_fine(inF0); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + faceforward(inF0, inF1, inF2); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + frexp(inF0, inF1); + fwidth(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + length(inF0); + log(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int4(1,2,3,4)); + round(inF0); + rsqrt(inF0); + sign(inF0); + sin(inF0); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float4(1,2,3,4); +} + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS() \ + all(inF0); \ + abs(inF0); \ + acos(inF0); \ + any(inF0); \ + asin(inF0); \ + atan(inF0); \ + atan2(inF0, inF1); \ + ceil(inF0); \ + clamp(inF0, inF1, inF2); \ + cos(inF0); \ + cosh(inF0); \ + ddx(inF0); \ + ddx_coarse(inF0); \ + ddx_fine(inF0); \ + ddy(inF0); \ + ddy_coarse(inF0); \ + ddy_fine(inF0); \ + degrees(inF0); \ + determinant(inF0); \ + exp(inF0); \ + exp2(inF0); \ + firstbithigh(7); \ + firstbitlow(7); \ + floor(inF0); \ + fmod(inF0, inF1); \ + frac(inF0); \ + frexp(inF0, inF1); \ + fwidth(inF0); \ + ldexp(inF0, inF1); \ + log(inF0); \ + log2(inF0); \ + max(inF0, inF1); \ + min(inF0, inF1); \ + pow(inF0, inF1); \ + radians(inF0); \ + round(inF0); \ + rsqrt(inF0); \ + sign(inF0); \ + sin(inF0); \ + sinh(inF0); \ + smoothstep(inF0, inF1, inF2); \ + sqrt(inF0); \ + step(inF0, inF1); \ + tan(inF0); \ + tanh(inF0); \ + transpose(inF0); \ + trunc(inF0); + +// TODO: turn on non-square matrix tests when protos are available. + +float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + // TODO: ... add when float1 prototypes are generated + return float2x2(2,2,2,2); +} + +float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + // TODO: ... add when float1 prototypes are generated + return float3x3(3,3,3,3,3,3,3,3,3); +} + +float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + // TODO: ... add when float1 prototypes are generated + return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); +} diff --git a/Test/hlsl.intrinsics.vert b/Test/hlsl.intrinsics.vert new file mode 100644 index 00000000..73243420 --- /dev/null +++ b/Test/hlsl.intrinsics.vert @@ -0,0 +1,323 @@ +float VertexShaderFunction(float inF0, float inF1, float inF2) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(7); + degrees(inF0); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + frexp(inF0, inF1); + fwidth(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + log(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + pow(inF0, inF1); + radians(inF0); + reversebits(2); + round(inF0); + rsqrt(inF0); + sign(inF0); + sin(inF0); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + return 0.0; +} + +float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2) +{ + // TODO: ... add when float1 prototypes are generated + return 0.0; +} + +float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int2(7,3)); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + faceforward(inF0, inF1, inF2); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + frexp(inF0, inF1); + fwidth(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + length(inF0); + log(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int2(1,2)); + round(inF0); + rsqrt(inF0); + sign(inF0); + sin(inF0); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float2(1,2); +} + +float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int3(7,3,5)); + cross(inF0, inF1); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + faceforward(inF0, inF1, inF2); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + frexp(inF0, inF1); + fwidth(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + length(inF0); + log(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int3(1,2,3)); + round(inF0); + rsqrt(inF0); + sign(inF0); + sin(inF0); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float3(1,2,3); +} + +float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) +{ + all(inF0); + abs(inF0); + acos(inF0); + any(inF0); + asin(inF0); + atan(inF0); + atan2(inF0, inF1); + ceil(inF0); + clamp(inF0, inF1, inF2); + cos(inF0); + cosh(inF0); + countbits(int4(7,3,5,2)); + degrees(inF0); + distance(inF0, inF1); + dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + exp(inF0); + exp2(inF0); + faceforward(inF0, inF1, inF2); + firstbithigh(7); + firstbitlow(7); + floor(inF0); + // TODO: fma(inD0, inD1, inD2); + fmod(inF0, inF1); + frac(inF0); + frexp(inF0, inF1); + fwidth(inF0); + isinf(inF0); + isnan(inF0); + ldexp(inF0, inF1); + length(inF0); + log(inF0); + log2(inF0); + max(inF0, inF1); + min(inF0, inF1); + // TODO: mul(inF0, inF1); + normalize(inF0); + pow(inF0, inF1); + radians(inF0); + reflect(inF0, inF1); + refract(inF0, inF1, 2.0); + reversebits(int4(1,2,3,4)); + round(inF0); + rsqrt(inF0); + sign(inF0); + sin(inF0); + sinh(inF0); + smoothstep(inF0, inF1, inF2); + sqrt(inF0); + step(inF0, inF1); + tan(inF0); + tanh(inF0); + // TODO: sampler intrinsics, when we can declare the types. + trunc(inF0); + + // TODO: ... add when float1 prototypes are generated + return float4(1,2,3,4); +} + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS() \ + all(inF0); \ + abs(inF0); \ + acos(inF0); \ + any(inF0); \ + asin(inF0); \ + atan(inF0); \ + atan2(inF0, inF1); \ + ceil(inF0); \ + clamp(inF0, inF1, inF2); \ + cos(inF0); \ + cosh(inF0); \ + degrees(inF0); \ + determinant(inF0); \ + exp(inF0); \ + exp2(inF0); \ + firstbithigh(7); \ + firstbitlow(7); \ + floor(inF0); \ + fmod(inF0, inF1); \ + frac(inF0); \ + frexp(inF0, inF1); \ + fwidth(inF0); \ + ldexp(inF0, inF1); \ + log(inF0); \ + log2(inF0); \ + max(inF0, inF1); \ + min(inF0, inF1); \ + pow(inF0, inF1); \ + radians(inF0); \ + round(inF0); \ + rsqrt(inF0); \ + sign(inF0); \ + sin(inF0); \ + sinh(inF0); \ + smoothstep(inF0, inF1, inF2); \ + sqrt(inF0); \ + step(inF0, inF1); \ + tan(inF0); \ + tanh(inF0); \ + transpose(inF0); \ + trunc(inF0); + +// TODO: turn on non-square matrix tests when protos are available. + +float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + // TODO: ... add when float1 prototypes are generated + return float2x2(2,2,2,2); +} + +float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + // TODO: ... add when float1 prototypes are generated + return float3x3(3,3,3,3,3,3,3,3,3); +} + +float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + // TODO: ... add when float1 prototypes are generated + return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); +} diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 1abb5535..c2b56055 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -69,9 +69,6 @@ using namespace glslang; // Create a language specific version of parseables. TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource source) { - // TODO: hardcode to the GLSL path, until HLSL intrinsics are available. - source = EShSourceGlsl; // REMOVE - switch (source) { case EShSourceGlsl: return new TBuiltIns(); // GLSL builtIns case EShSourceHlsl: return new TBuiltInParseablesHlsl(); // HLSL intrinsics @@ -81,7 +78,7 @@ TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource sourc return nullptr; } } - + // Local mapping functions for making arrays of symbol tables.... int MapVersionToIndex(int version) @@ -169,6 +166,9 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil builtInShaders[0] = builtIns.c_str(); builtInLengths[0] = builtIns.size(); + if (builtInLengths[0] == 0) + return true; + TInputScanner input(1, builtInShaders, builtInLengths); if (! parseContext.parseShaderStrings(ppContext, input) != 0) { infoSink.info.message(EPrefixInternalError, "Unable to parse built-ins"); @@ -338,7 +338,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo bool correct = true; if (source == EShSourceHlsl) { - version = defaultVersion; + version = 450; // TODO: GLSL parser is still used for builtins. profile = ENoProfile; return correct; } diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 1307dae1..b5a38866 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -1,5 +1,6 @@ // // Copyright (C) 2016 Google, Inc. +// Copyright (C) 2016 LunarG, Inc. // // All rights reserved. // @@ -79,6 +80,8 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.precedence.frag", "PixelShaderFunction"}, {"hlsl.precedence2.frag", "PixelShaderFunction"}, {"hlsl.sin.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.vert", "VertexShaderFunction"}, }), FileNameAsCustomTestSuffix ); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index b29226d2..18f7ca4a 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -49,12 +49,165 @@ // #include "hlslParseables.h" +#include +#include + +namespace { // anonymous namespace functions + +const char* BaseTypeName(const char* argOrder, const char* scalarName, const char* vecName, const char* matName) +{ + switch (*argOrder) { + case 'S': return scalarName; + case 'V': return vecName; + case 'M': return matName; + default: return "UNKNOWN_TYPE"; + } +} + +// Create and return a type name. This is done in GLSL, not HLSL conventions, until such +// time as builtins are parsed using the HLSL parser. +// +// order: S = scalar, V = vector, M = matrix +// argType: F = float, D = double, I = int, U = uint, B = bool, S = sampler +// dim0 = vector dimension, or matrix 1st dimension +// dim1 = matrix 2nd dimension +glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, const char* argType, int dim0, int dim1) +{ + const bool transpose = (argOrder[0] == '^'); + + // Take transpose of matrix dimensions + if (transpose) { + std::swap(dim0, dim1); + ++argOrder; + } + + switch (*argType) { + case '-': s += "void"; break; + case 'F': s += BaseTypeName(argOrder, "float", "vec", "mat"); break; + case 'D': s += BaseTypeName(argOrder, "double", "dvec", "dmat"); break; + case 'I': s += BaseTypeName(argOrder, "int", "ivec", "imat"); break; + case 'U': s += BaseTypeName(argOrder, "uint", "uvec", "umat"); break; + case 'B': s += BaseTypeName(argOrder, "bool", "bvec", "bmat"); break; + case 'S': s += BaseTypeName(argOrder, "sampler", "sampler", "sampler"); break; // TODO: + default: s += "UNKNOWN_TYPE"; break; + } + + // handle fixed vector sizes, such as float3, and only ever 3. + const int fixedVecSize = isdigit(argOrder[1]) ? (argOrder[1] - '0') : 0; + if (fixedVecSize != 0) + dim0 = dim1 = fixedVecSize; + + // Add sampler dimensions + if (*argType == 'S') { + switch (dim0) { + case 1: s += "1D"; break; + case 2: s += "2D"; break; + case 3: s += "3D"; break; + case 4: s += "Cube"; break; + default: s += "UNKNOWN_SAMPLER"; break; + } + } + + // verify dimensions + if ((*argOrder == 'V' || *argOrder == 'M') && (dim0 < 1 || dim0 > 4) || + (*argOrder == 'M' && (dim1 < 1 || dim1 > 4))) { + s += "UNKNOWN_DIMENSION"; + return s; + } + + switch (*argOrder) { + case '-': break; // no dimensions for voids + case 'S': break; // no dimensions on scalars + case 'V': s += ('0' + dim0); break; + case 'M': s += ('0' + dim0); s += 'x'; s += ('0' + dim1); break; + } + + return s; +} + +// TODO: the GLSL parser is currently used to parse HLSL prototypes. However, many valid HLSL prototypes +// are not valid GLSL prototypes. This rejects the invalid ones. Thus, there is a single switch below +// to enable creation of the entire HLSL space. +inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char argOrder, char argType, + int dim0, int dim1, int dim0Max, int dim1Max) +{ + const bool isVec = dim0Max > 1 || argType == 'V'; + const bool isMat = dim1Max > 1 || argType == 'M'; + + if (argType == 'D' || // avoid double args + retType == 'D' || // avoid double return + (isVec && dim0 == 1) || // avoid vec1 + (isMat && dim0 == 1 && dim1 == 1)) // avoid mat1x1 + return false; + + const std::string name(cname); // for ease of comparison. slow, but temporary, until HLSL parser is online. + + if (isMat && dim0 != dim1) // TODO: avoid mats until we find the right GLSL profile + return false; + + if (isMat && (argType == 'I' || argType == 'U' || argType == 'B') || + retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B')) + return false; + + if (name == "GetRenderTargetSamplePosition" || + name == "tex1D" || + name == "tex1Dgrad") + return false; + + return true; +} + + +// Return true for the end of a single argument key, which can be the end of the string, or +// the comma separator. +inline bool IsEndOfArg(const char* arg) +{ + return arg == nullptr || *arg == '\0' || *arg == ','; +} + + +// return position of end of argument specifier +inline const char* FindEndOfArg(const char* arg) +{ + while (!IsEndOfArg(arg)) + ++arg; + + return *arg == '\0' ? nullptr : arg; +} + + +// Return pointer to beginning of Nth argument specifier in the string. +inline const char* NthArg(const char* arg, int n) +{ + for (int x=0; x 0) // handle fixed sized vectors + dim0Min = dim0Max = fixedVecSize; +} + +} // end anonymous namespace namespace glslang { TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() { - assert(0 && "Unimplemented TBuiltInParseablesHlsl::TBuiltInParseablesHlsl"); } // @@ -67,7 +220,268 @@ TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() // void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, int vulkan) { - assert(0 && "Unimplemented TBuiltInParseablesHlsl::initialize"); + static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); + + // This structure encodes the prototype information for each HLSL intrinsic. + // Because explicit enumeration would be cumbersome, it's procedurally generated. + // orderKey can be: + // S = scalar, V = vector, M = matrix, - = void + // typekey can be: + // D = double, F = float, U = uint, I = int, B = bool, S = sampler, - = void + // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. + // '>' as first letter of order creates an output paremeter + // '<' as first letter of order creates an input paremeter + // '^' as first letter of order takes transpose dimensions + + static const struct { + const char* name; // intrinsic name + const char* retOrder; // return type key: empty matches order of 1st argument + const char* retType; // return type key: empty matches type of 1st argument + const char* argOrder; // argument order key + const char* argType; // argument type key + unsigned int stage; // stage mask + } hlslIntrinsics[] = { + // name retOrd retType argOrder argType stage mask + // ----------------------------------------------------------------------------------------------- + { "abort", nullptr, nullptr, "-", "-", EShLangAll }, + { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll }, + { "acos", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "all", "S", "B", "SVM", "BFI", EShLangAll }, + { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "any", "S", "B", "SVM", "BFI", EShLangAll }, + { "asdouble", "S", "D", "S,", "U,", EShLangAll }, + { "asdouble", "V2", "D", "V2,", "U,", EShLangAll }, + { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll }, + { "asin", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "asint", nullptr, "I", "SVM", "FU", EShLangAll }, + { "asuint", nullptr, "U", "SVM", "FU", EShLangAll }, + { "atan", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangFragmentMask | EShLangComputeMask }, + { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll }, + { "clip", "-", "-", "SVM", "F", EShLangFragmentMask }, + { "cos", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "countbits", nullptr, nullptr, "SV", "U", EShLangAll }, + { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll }, + { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll }, + { "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "determinant", "S", "F", "M", "F", EShLangAll }, + { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangFragmentMask | EShLangComputeMask }, + { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "distance", "S", "F", "V,", "F,", EShLangAll }, + { "dot", "S", nullptr, "V,", "FI,", EShLangAll }, + { "dst", nullptr, nullptr, "V,", "F,", EShLangAll }, + // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs + { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, + { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask }, + { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,F", EShLangFragmentMask }, + { "exp", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "f16tof32", nullptr, "F", "SV", "U", EShLangAll }, + { "f32tof16", nullptr, "U", "SV", "F", EShLangAll }, + { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll }, + { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll }, + { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll }, + { "floor", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll }, + { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "frac", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "fwidth", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll }, + { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll }, + { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, + { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll }, + { "isinf", nullptr, "B" , "SVM", "F", EShLangAll }, + { "isnan", nullptr, "B" , "SVM", "F", EShLangAll }, + { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "length", "S", "F", "V", "F", EShLangAll }, + { "lit", "V4", "F", "S,,", "F,,", EShLangAll }, + { "log", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "log10", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "log2", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll }, + { "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, + { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, + { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll }, + { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, + { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, + { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, + { "mul", "M", nullptr, "S,M", "FI,", EShLangAll }, + { "mul", "V", nullptr, "V,S", "FI,", EShLangAll }, + { "mul", "S", nullptr, "V,V", "FI,", EShLangAll }, + { "mul", "V", nullptr, "V,M", "FI,", EShLangAll }, + { "mul", "M", nullptr, "M,S", "FI,", EShLangAll }, + { "mul", "V", nullptr, "M,V", "FI,", EShLangAll }, + { "mul", "M", nullptr, "M,M", "FI,", EShLangAll }, + { "noise", "S", "F", "V", "F", EShLangFragmentMask }, + { "normalize", nullptr, nullptr, "V", "F", EShLangAll }, + { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + // { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs + { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, + { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, + { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, + { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask }, + { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, + { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, + { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask }, + { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask }, + { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask }, + { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask }, + { "radians", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll }, + { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll }, + { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll }, + { "reversebits", nullptr, nullptr, "SV", "U", EShLangAll }, + { "round", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll }, + { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll }, + { "sin", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll }, + { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, + { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll }, + { "tan", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "tex1D", "V4", "F", "S1,S", "S,F", EShLangFragmentMask }, + { "tex1D", "V4", "F", "S1,S,V1,V1", "S,F,F,F",EShLangFragmentMask }, + { "tex1Dbias", "V4", "F", "S1,V4", "S,F", EShLangFragmentMask }, + { "tex1Dgrad", "V4", "F", "S1,V1,V1,V1","S,F,F,F",EShLangFragmentMask }, + { "tex1Dlod", "V4", "F", "S1,V4", "S,F", EShLangFragmentMask }, + { "tex1Dproj", "V4", "F", "S1,V4", "S,F", EShLangFragmentMask }, + { "tex2D", "V4", "F", "S2,V2", "S,F", EShLangFragmentMask }, + { "tex2D", "V4", "F", "S2,V2,V2,V2","S,F,F,F",EShLangFragmentMask }, + { "tex2Dbias", "V4", "F", "S2,V4", "S,F", EShLangFragmentMask }, + { "tex2Dgrad", "V4", "F", "S2,V2,V2,V2","S,F,F,F",EShLangFragmentMask }, + { "tex2Dlod", "V4", "F", "S2,V4", "S,F", EShLangFragmentMask }, + { "tex2Dproj", "V4", "F", "S2,V4", "S,F", EShLangFragmentMask }, + { "tex3D", "V4", "F", "S3,V3", "S,F", EShLangFragmentMask }, + { "tex3D", "V4", "F", "S3,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, + { "tex3Dbias", "V4", "F", "S3,V4", "S,F", EShLangFragmentMask }, + { "tex3Dgrad", "V4", "F", "S3,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, + { "tex3Dlod", "V4", "F", "S3,V4", "S,F", EShLangFragmentMask }, + { "tex3Dproj", "V4", "F", "S3,V4", "S,F", EShLangFragmentMask }, + { "texCUBE", "V4", "F", "S4,V3", "S,F", EShLangFragmentMask }, + { "texCUBE", "V4", "F", "S4,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, + { "texCUBEbias", "V4", "F", "S4,V4", "S,F", EShLangFragmentMask }, + { "texCUBEgrad", "V4", "F", "S4,V3,V3,V3","S,F,F,F",EShLangFragmentMask }, + { "texCUBElod", "V4", "F", "S4,V4", "S,F", EShLangFragmentMask }, + { "texCUBEproj", "V4", "F", "S4,V4", "S,F", EShLangFragmentMask }, + { "transpose", "^M", nullptr, "M", "F", EShLangAll }, + { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, + + // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. + { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, + }; + + // Set this to true to avoid generating prototypes that will be invalid for the GLSL parser. + // TODO: turn it off (and remove the code) when the HLSL parser can be used to parse builtins. + static const bool skipInvalidGlsl = true; + + // Create prototypes for the intrinsics. TODO: Avoid ranged based for until all compilers can handle it. + for (int icount = 0; hlslIntrinsics[icount].name; ++icount) { + const auto& intrinsic = hlslIntrinsics[icount]; + + for (int stage = 0; stage < EShLangCount; ++stage) { // for each stage... + if ((intrinsic.stage & (1< 0 ? ", ": ""); // comma separator if needed + + if (*nthArgOrder == '>') { // output params + ++nthArgOrder; + s.append("out "); + } else if (*nthArgOrder == '<') { // input params + ++nthArgOrder; + s.append("in "); + } + + // Comma means use the 1st argument order and type. + if (*nthArgOrder == ',' || *nthArgOrder == '\0') nthArgOrder = argOrder; + if (*nthArgType == ',' || *nthArgType == '\0') nthArgType = argType; + + AppendTypeName(s, nthArgOrder, nthArgType, dim0, dim1); // Add first argument + } + + s.append(");\n"); // close paren and trailing semicolon + } + } + } + + if (fixedVecSize > 0) // skip over number for fixed size vectors + ++argOrder; + } + + if (intrinsic.stage == EShLangAll) // common builtins are only added once. + break; + } + } + + // printf("Common:\n%s\n", getCommonString().c_str()); + // printf("Frag:\n%s\n", getStageString(EShLangFragment).c_str()); + // printf("Vertex:\n%s\n", getStageString(EShLangVertex).c_str()); + // printf("Geo:\n%s\n", getStageString(EShLangGeometry).c_str()); + // printf("TessCtrl:\n%s\n", getStageString(EShLangTessControl).c_str()); + // printf("TessEval:\n%s\n", getStageString(EShLangTessEvaluation).c_str()); + // printf("Compute:\n%s\n", getStageString(EShLangCompute).c_str()); } // @@ -80,7 +494,6 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int version, EProfile profile, int spv, int vulkan, EShLanguage language) { - assert(0 && "Unimplemented TBuiltInParseablesHlsl::initialize"); } @@ -95,7 +508,140 @@ void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int v void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable) { - assert(0 && "Unimplemented TBuiltInParseablesHlsl::identifyBuiltIns"); + // symbolTable.relateToOperator("abort"); + symbolTable.relateToOperator("abs", EOpAbs); + symbolTable.relateToOperator("acos", EOpAcos); + symbolTable.relateToOperator("all", EOpAll); + // symbolTable.relateToOperator("AllMemoryBarrier"); + // symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync"); + symbolTable.relateToOperator("any", EOpAny); + // symbolTable.relateToOperator("asdouble"); + // symbolTable.relateToOperator("asfloat"); + symbolTable.relateToOperator("asin", EOpAsin); + // symbolTable.relateToOperator("asint"); + // symbolTable.relateToOperator("asuint"); + symbolTable.relateToOperator("atan", EOpAtan); + symbolTable.relateToOperator("atan2", EOpAtan); + symbolTable.relateToOperator("ceil", EOpCeil); + // symbolTable.relateToOperator("CheckAccessFullyMapped"); + symbolTable.relateToOperator("clamp", EOpClamp); + // symbolTable.relateToOperator("clip"); + symbolTable.relateToOperator("cos", EOpCos); + symbolTable.relateToOperator("cosh", EOpCosh); + symbolTable.relateToOperator("countbits", EOpBitCount); + symbolTable.relateToOperator("cross", EOpCross); + // symbolTable.relateToOperator("D3DCOLORtoUBYTE4"); + symbolTable.relateToOperator("ddx", EOpDPdx); + symbolTable.relateToOperator("ddx_coarse", EOpDPdxCoarse); + symbolTable.relateToOperator("ddx_fine", EOpDPdxFine); + symbolTable.relateToOperator("ddy", EOpDPdy); + symbolTable.relateToOperator("ddy_coarse", EOpDPdyCoarse); + symbolTable.relateToOperator("ddy_fine", EOpDPdyFine); + symbolTable.relateToOperator("degrees", EOpDegrees); + symbolTable.relateToOperator("determinant", EOpDeterminant); + // symbolTable.relateToOperator("DeviceMemoryBarrier"); + // symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync"); + symbolTable.relateToOperator("distance", EOpDistance); + symbolTable.relateToOperator("dot", EOpDot); + // symbolTable.relateToOperator("dst"); + // symbolTable.relateToOperator("errorf"); + symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid); + symbolTable.relateToOperator("EvaluateAttributeAtSample", EOpInterpolateAtSample); + // symbolTable.relateToOperator("EvaluateAttributeSnapped"); // TODO: hsnflr positions. new op? + symbolTable.relateToOperator("exp", EOpExp); + symbolTable.relateToOperator("exp2", EOpExp2); + // symbolTable.relateToOperator("f16tof32"); + // symbolTable.relateToOperator("f32tof16"); + symbolTable.relateToOperator("faceforward", EOpFaceForward); + symbolTable.relateToOperator("firstbithigh", EOpFindMSB); + symbolTable.relateToOperator("firstbitlow", EOpFindLSB); + symbolTable.relateToOperator("floor", EOpFloor); + symbolTable.relateToOperator("fma", EOpFma); + // symbolTable.relateToOperator("fmod"); + symbolTable.relateToOperator("frac", EOpFract); + symbolTable.relateToOperator("frexp", EOpFrexp); + symbolTable.relateToOperator("fwidth", EOpFwidth); + // symbolTable.relateToOperator("GetRenderTargetSampleCount"); + // symbolTable.relateToOperator("GetRenderTargetSamplePosition"); + // symbolTable.relateToOperator("GroupMemoryBarrier"); + // symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync"); + // symbolTable.relateToOperator("InterlockedAdd"); + // symbolTable.relateToOperator("InterlockedAnd"); + // symbolTable.relateToOperator("InterlockedCompareExchange"); + // symbolTable.relateToOperator("InterlockedCompareStore"); + // symbolTable.relateToOperator("InterlockedExchange"); + // symbolTable.relateToOperator("InterlockedMax"); + // symbolTable.relateToOperator("InterlockedMin"); + // symbolTable.relateToOperator("InterlockedOr"); + // symbolTable.relateToOperator("InterlockedXor"); + // symbolTable.relateToOperator("isfinite"); + symbolTable.relateToOperator("isinf", EOpIsInf); + symbolTable.relateToOperator("isnan", EOpIsNan); + symbolTable.relateToOperator("ldexp", EOpLdexp); + symbolTable.relateToOperator("length", EOpLength); + // symbolTable.relateToOperator("lit"); + symbolTable.relateToOperator("log", EOpLog); + // symbolTable.relateToOperator("log10"); + symbolTable.relateToOperator("log2", EOpLog2); + // symbolTable.relateToOperator("mad"); + symbolTable.relateToOperator("max", EOpMax); + symbolTable.relateToOperator("min", EOpMin); + symbolTable.relateToOperator("modf", EOpModf); + // symbolTable.relateToOperator("msad4"); + // symbolTable.relateToOperator("mul"); + // symbolTable.relateToOperator("noise", EOpNoise); // TODO: check return type + symbolTable.relateToOperator("normalize", EOpNormalize); + symbolTable.relateToOperator("pow", EOpPow); + // symbolTable.relateToOperator("printf"); + // symbolTable.relateToOperator("Process2DQuadTessFactorsAvg"); + // symbolTable.relateToOperator("Process2DQuadTessFactorsMax"); + // symbolTable.relateToOperator("Process2DQuadTessFactorsMin"); + // symbolTable.relateToOperator("ProcessIsolineTessFactors"); + // symbolTable.relateToOperator("ProcessQuadTessFactorsAvg"); + // symbolTable.relateToOperator("ProcessQuadTessFactorsMax"); + // symbolTable.relateToOperator("ProcessQuadTessFactorsMin"); + // symbolTable.relateToOperator("ProcessTriTessFactorsAvg"); + // symbolTable.relateToOperator("ProcessTriTessFactorsMax"); + // symbolTable.relateToOperator("ProcessTriTessFactorsMin"); + symbolTable.relateToOperator("radians", EOpRadians); + // symbolTable.relateToOperator("rcp"); + symbolTable.relateToOperator("reflect", EOpReflect); + symbolTable.relateToOperator("refract", EOpRefract); + symbolTable.relateToOperator("reversebits", EOpBitFieldReverse); + symbolTable.relateToOperator("round", EOpRoundEven); + symbolTable.relateToOperator("rsqrt", EOpInverseSqrt); + // symbolTable.relateToOperator("saturate"); + symbolTable.relateToOperator("sign", EOpSign); + symbolTable.relateToOperator("sin", EOpSin); + // symbolTable.relateToOperator("sincos"); + symbolTable.relateToOperator("sinh", EOpSinh); + symbolTable.relateToOperator("smoothstep", EOpSmoothStep); + symbolTable.relateToOperator("sqrt", EOpSqrt); + symbolTable.relateToOperator("step", EOpStep); + symbolTable.relateToOperator("tan", EOpTan); + symbolTable.relateToOperator("tanh", EOpTanh); + symbolTable.relateToOperator("tex1D", EOpTexture); + // symbolTable.relateToOperator("tex1Dbias", // TODO: + symbolTable.relateToOperator("tex1Dgrad", EOpTextureGrad); + symbolTable.relateToOperator("tex1Dlod", EOpTextureLod); + symbolTable.relateToOperator("tex1Dproj", EOpTextureProj); + symbolTable.relateToOperator("tex2D", EOpTexture); + // symbolTable.relateToOperator("tex2Dbias", // TODO: + symbolTable.relateToOperator("tex2Dgrad", EOpTextureGrad); + symbolTable.relateToOperator("tex2Dlod", EOpTextureLod); + // symbolTable.relateToOperator("tex2Dproj", EOpTextureProj); + symbolTable.relateToOperator("tex3D", EOpTexture); + // symbolTable.relateToOperator("tex3Dbias"); // TODO + symbolTable.relateToOperator("tex3Dgrad", EOpTextureGrad); + symbolTable.relateToOperator("tex3Dlod", EOpTextureLod); + // symbolTable.relateToOperator("tex3Dproj", EOpTextureProj); + symbolTable.relateToOperator("texCUBE", EOpTexture); + // symbolTable.relateToOperator("texCUBEbias", // TODO + symbolTable.relateToOperator("texCUBEgrad", EOpTextureGrad); + symbolTable.relateToOperator("texCUBElod", EOpTextureLod); + // symbolTable.relateToOperator("texCUBEproj", EOpTextureProj); + symbolTable.relateToOperator("transpose", EOpTranspose); + symbolTable.relateToOperator("trunc", EOpTrunc); } // @@ -110,7 +656,6 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) { - assert(0 && "Unimplemented TBuiltInParseablesHlsl::identifyBuiltIns"); } From 39d5e711a700170724352e09834108a0428e9ebf Mon Sep 17 00:00:00 2001 From: GregF Date: Fri, 3 Jun 2016 09:53:47 -0600 Subject: [PATCH 13/48] remapper: do not eliminate interface variables in dce by default this is done by counting op_entrypoint as a use/def --- SPIRV/SPVRemapper.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp index 35dda17b..1bbd5892 100755 --- a/SPIRV/SPVRemapper.cpp +++ b/SPIRV/SPVRemapper.cpp @@ -926,8 +926,17 @@ namespace spv { // Count function variable use process( [&](spv::Op opCode, unsigned start) { - if (opCode == spv::OpVariable) { ++varUseCount[asId(start+2)]; return true; } - return false; + if (opCode == spv::OpVariable) { + ++varUseCount[asId(start+2)]; + return true; + } else if (opCode == spv::OpEntryPoint) { + const int wordCount = asWordCount(start); + for (int i = 4; i < wordCount; i++) { + ++varUseCount[asId(start+i)]; + } + return true; + } else + return false; }, [&](spv::Id& id) { if (varUseCount[id]) ++varUseCount[id]; } From ef764a24b2a72123b25e829272b6aac596224cee Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Fri, 3 Jun 2016 09:17:51 -0600 Subject: [PATCH 14/48] Fix for empty statement segfault. --- Test/hlsl.intrinsics.vert | 6 +++--- hlsl/hlslGrammar.cpp | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Test/hlsl.intrinsics.vert b/Test/hlsl.intrinsics.vert index 73243420..efafb4ac 100644 --- a/Test/hlsl.intrinsics.vert +++ b/Test/hlsl.intrinsics.vert @@ -298,7 +298,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() + MATFNS(); // TODO: ... add when float1 prototypes are generated return float2x2(2,2,2,2); @@ -307,7 +307,7 @@ float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() + MATFNS(); // TODO: ... add when float1 prototypes are generated return float3x3(3,3,3,3,3,3,3,3,3); @@ -316,7 +316,7 @@ float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() + MATFNS(); // TODO: ... add when float1 prototypes are generated return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 443db4ba..a6387b74 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -492,6 +492,8 @@ bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& no // bool HlslGrammar::acceptExpression(TIntermTyped*& node) { + node = nullptr; + // assignment_expression if (! acceptAssignmentExpression(node)) return false; From 643fcb5b43c7f45970d425dcd5b8d0a6bb4ce037 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Fri, 3 Jun 2016 10:53:28 -0600 Subject: [PATCH 15/48] Add negative intrinsics tests --- .../hlsl.intrinsics.negative.frag.out | 702 +++++++++++ .../hlsl.intrinsics.negative.vert.out | 1055 +++++++++++++++++ Test/hlsl.intrinsics.negative.frag | 137 +++ Test/hlsl.intrinsics.negative.vert | 196 +++ gtests/Hlsl.FromFile.cpp | 6 +- 5 files changed, 2094 insertions(+), 2 deletions(-) create mode 100644 Test/baseResults/hlsl.intrinsics.negative.frag.out create mode 100644 Test/baseResults/hlsl.intrinsics.negative.vert.out create mode 100644 Test/hlsl.intrinsics.negative.frag create mode 100644 Test/hlsl.intrinsics.negative.vert diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out new file mode 100644 index 00000000..9ac39851 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -0,0 +1,702 @@ +hlsl.intrinsics.negative.frag +ERROR: 0:5: 'asdouble' : no matching overloaded function found +ERROR: 0:6: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:7: 'countbits' : no matching overloaded function found +ERROR: 0:8: 'cross' : no matching overloaded function found +ERROR: 0:9: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:10: 'determinant' : no matching overloaded function found +ERROR: 0:12: 'f16tof32' : no matching overloaded function found +ERROR: 0:13: 'firstbithigh' : no matching overloaded function found +ERROR: 0:14: 'firstbitlow' : no matching overloaded function found +ERROR: 0:15: 'fma' : no matching overloaded function found +ERROR: 0:23: 'length' : no matching overloaded function found +ERROR: 0:24: 'msad4' : no matching overloaded function found +ERROR: 0:25: 'normalize' : no matching overloaded function found +ERROR: 0:26: 'reflect' : no matching overloaded function found +ERROR: 0:27: 'refract' : no matching overloaded function found +ERROR: 0:28: 'refract' : no matching overloaded function found +ERROR: 0:29: 'reversebits' : no matching overloaded function found +ERROR: 0:30: 'transpose' : no matching overloaded function found +ERROR: 0:39: 'GetRenderTargetSamplePosition' : no matching overloaded function found +ERROR: 0:46: 'asdouble' : no matching overloaded function found +ERROR: 0:47: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:48: 'countbits' : no matching overloaded function found +ERROR: 0:49: 'cross' : no matching overloaded function found +ERROR: 0:50: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:51: 'determinant' : no matching overloaded function found +ERROR: 0:52: 'f16tof32' : no matching overloaded function found +ERROR: 0:53: 'firstbithigh' : no matching overloaded function found +ERROR: 0:54: 'firstbitlow' : no matching overloaded function found +ERROR: 0:55: 'fma' : no matching overloaded function found +ERROR: 0:56: 'reversebits' : no matching overloaded function found +ERROR: 0:57: 'transpose' : no matching overloaded function found +ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:65: 'countbits' : no matching overloaded function found +ERROR: 0:66: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:67: 'determinant' : no matching overloaded function found +ERROR: 0:68: 'f16tof32' : no matching overloaded function found +ERROR: 0:69: 'firstbithigh' : no matching overloaded function found +ERROR: 0:70: 'firstbitlow' : no matching overloaded function found +ERROR: 0:71: 'fma' : no matching overloaded function found +ERROR: 0:72: 'reversebits' : no matching overloaded function found +ERROR: 0:73: 'transpose' : no matching overloaded function found +ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:82: 'countbits' : no matching overloaded function found +ERROR: 0:83: 'cross' : no matching overloaded function found +ERROR: 0:84: 'determinant' : no matching overloaded function found +ERROR: 0:85: 'f16tof32' : no matching overloaded function found +ERROR: 0:86: 'firstbithigh' : no matching overloaded function found +ERROR: 0:87: 'firstbitlow' : no matching overloaded function found +ERROR: 0:88: 'fma' : no matching overloaded function found +ERROR: 0:89: 'reversebits' : no matching overloaded function found +ERROR: 0:90: 'transpose' : no matching overloaded function found +ERROR: 0:118: 'countbits' : no matching overloaded function found +ERROR: 0:118: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:118: 'cross' : no matching overloaded function found +ERROR: 0:118: 'f16tof32' : no matching overloaded function found +ERROR: 0:118: 'firstbithigh' : no matching overloaded function found +ERROR: 0:118: 'firstbitlow' : no matching overloaded function found +ERROR: 0:118: 'fma' : no matching overloaded function found +ERROR: 0:118: 'reversebits' : no matching overloaded function found +ERROR: 0:118: 'length' : no matching overloaded function found +ERROR: 0:118: 'noise' : no matching overloaded function found +ERROR: 0:118: 'normalize' : no matching overloaded function found +ERROR: 0:118: 'reflect' : no matching overloaded function found +ERROR: 0:118: 'refract' : no matching overloaded function found +ERROR: 0:118: 'reversebits' : no matching overloaded function found +ERROR: 0:126: 'countbits' : no matching overloaded function found +ERROR: 0:126: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:126: 'cross' : no matching overloaded function found +ERROR: 0:126: 'f16tof32' : no matching overloaded function found +ERROR: 0:126: 'firstbithigh' : no matching overloaded function found +ERROR: 0:126: 'firstbitlow' : no matching overloaded function found +ERROR: 0:126: 'fma' : no matching overloaded function found +ERROR: 0:126: 'reversebits' : no matching overloaded function found +ERROR: 0:126: 'length' : no matching overloaded function found +ERROR: 0:126: 'noise' : no matching overloaded function found +ERROR: 0:126: 'normalize' : no matching overloaded function found +ERROR: 0:126: 'reflect' : no matching overloaded function found +ERROR: 0:126: 'refract' : no matching overloaded function found +ERROR: 0:126: 'reversebits' : no matching overloaded function found +ERROR: 0:134: 'countbits' : no matching overloaded function found +ERROR: 0:134: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:134: 'cross' : no matching overloaded function found +ERROR: 0:134: 'f16tof32' : no matching overloaded function found +ERROR: 0:134: 'firstbithigh' : no matching overloaded function found +ERROR: 0:134: 'firstbitlow' : no matching overloaded function found +ERROR: 0:134: 'fma' : no matching overloaded function found +ERROR: 0:134: 'reversebits' : no matching overloaded function found +ERROR: 0:134: 'length' : no matching overloaded function found +ERROR: 0:134: 'noise' : no matching overloaded function found +ERROR: 0:134: 'normalize' : no matching overloaded function found +ERROR: 0:134: 'reflect' : no matching overloaded function found +ERROR: 0:134: 'refract' : no matching overloaded function found +ERROR: 0:134: 'reversebits' : no matching overloaded function found +ERROR: 93 compilation errors. No code generated. + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:2 'inI0' (temp int) +0:? Sequence +0:5 Constant: +0:5 0.000000 +0:6 Constant: +0:6 0.000000 +0:7 Constant: +0:7 0.000000 +0:8 Constant: +0:8 0.000000 +0:9 Constant: +0:9 0.000000 +0:10 Constant: +0:10 0.000000 +0:12 Constant: +0:12 0.000000 +0:13 Constant: +0:13 0.000000 +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:23 Constant: +0:23 0.000000 +0:24 Constant: +0:24 0.000000 +0:25 Constant: +0:25 0.000000 +0:26 Constant: +0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:28 Constant: +0:28 0.000000 +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:32 Branch: Return with expression +0:32 Constant: +0:32 0.000000 +0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float) +0:36 Function Parameters: +0:36 'inF0' (temp 1-component vector of float) +0:36 'inF1' (temp 1-component vector of float) +0:36 'inF2' (temp 1-component vector of float) +0:36 'inI0' (temp int) +0:? Sequence +0:39 Constant: +0:39 0.000000 +0:41 Branch: Return with expression +0:41 Constant: +0:41 0.000000 +0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:45 Function Parameters: +0:45 'inF0' (temp 2-component vector of float) +0:45 'inF1' (temp 2-component vector of float) +0:45 'inF2' (temp 2-component vector of float) +0:45 'inI0' (temp 2-component vector of int) +0:? Sequence +0:46 Constant: +0:46 0.000000 +0:47 Constant: +0:47 0.000000 +0:48 Constant: +0:48 0.000000 +0:49 Constant: +0:49 0.000000 +0:50 Constant: +0:50 0.000000 +0:51 Constant: +0:51 0.000000 +0:52 Constant: +0:52 0.000000 +0:53 Constant: +0:53 0.000000 +0:54 Constant: +0:54 0.000000 +0:55 Constant: +0:55 0.000000 +0:56 Constant: +0:56 0.000000 +0:57 Constant: +0:57 0.000000 +0:59 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:63 Function Parameters: +0:63 'inF0' (temp 3-component vector of float) +0:63 'inF1' (temp 3-component vector of float) +0:63 'inF2' (temp 3-component vector of float) +0:63 'inI0' (temp 3-component vector of int) +0:? Sequence +0:64 Constant: +0:64 0.000000 +0:65 Constant: +0:65 0.000000 +0:66 Constant: +0:66 0.000000 +0:67 Constant: +0:67 0.000000 +0:68 Constant: +0:68 0.000000 +0:69 Constant: +0:69 0.000000 +0:70 Constant: +0:70 0.000000 +0:71 Constant: +0:71 0.000000 +0:72 Constant: +0:72 0.000000 +0:73 Constant: +0:73 0.000000 +0:76 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:80 Function Parameters: +0:80 'inF0' (temp 4-component vector of float) +0:80 'inF1' (temp 4-component vector of float) +0:80 'inF2' (temp 4-component vector of float) +0:80 'inI0' (temp 4-component vector of int) +0:? Sequence +0:81 Constant: +0:81 0.000000 +0:82 Constant: +0:82 0.000000 +0:83 Constant: +0:83 0.000000 +0:84 Constant: +0:84 0.000000 +0:85 Constant: +0:85 0.000000 +0:86 Constant: +0:86 0.000000 +0:87 Constant: +0:87 0.000000 +0:88 Constant: +0:88 0.000000 +0:89 Constant: +0:89 0.000000 +0:90 Constant: +0:90 0.000000 +0:92 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:116 Function Parameters: +0:116 'inF0' (temp 2X2 matrix of float) +0:116 'inF1' (temp 2X2 matrix of float) +0:116 'inF2' (temp 2X2 matrix of float) +0:? Sequence +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:120 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:124 Function Parameters: +0:124 'inF0' (temp 3X3 matrix of float) +0:124 'inF1' (temp 3X3 matrix of float) +0:124 'inF2' (temp 3X3 matrix of float) +0:? Sequence +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:128 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:132 Function Parameters: +0:132 'inF0' (temp 4X4 matrix of float) +0:132 'inF1' (temp 4X4 matrix of float) +0:132 'inF2' (temp 4X4 matrix of float) +0:? Sequence +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:136 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:2 'inI0' (temp int) +0:? Sequence +0:5 Constant: +0:5 0.000000 +0:6 Constant: +0:6 0.000000 +0:7 Constant: +0:7 0.000000 +0:8 Constant: +0:8 0.000000 +0:9 Constant: +0:9 0.000000 +0:10 Constant: +0:10 0.000000 +0:12 Constant: +0:12 0.000000 +0:13 Constant: +0:13 0.000000 +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:23 Constant: +0:23 0.000000 +0:24 Constant: +0:24 0.000000 +0:25 Constant: +0:25 0.000000 +0:26 Constant: +0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:28 Constant: +0:28 0.000000 +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:32 Branch: Return with expression +0:32 Constant: +0:32 0.000000 +0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float) +0:36 Function Parameters: +0:36 'inF0' (temp 1-component vector of float) +0:36 'inF1' (temp 1-component vector of float) +0:36 'inF2' (temp 1-component vector of float) +0:36 'inI0' (temp int) +0:? Sequence +0:39 Constant: +0:39 0.000000 +0:41 Branch: Return with expression +0:41 Constant: +0:41 0.000000 +0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:45 Function Parameters: +0:45 'inF0' (temp 2-component vector of float) +0:45 'inF1' (temp 2-component vector of float) +0:45 'inF2' (temp 2-component vector of float) +0:45 'inI0' (temp 2-component vector of int) +0:? Sequence +0:46 Constant: +0:46 0.000000 +0:47 Constant: +0:47 0.000000 +0:48 Constant: +0:48 0.000000 +0:49 Constant: +0:49 0.000000 +0:50 Constant: +0:50 0.000000 +0:51 Constant: +0:51 0.000000 +0:52 Constant: +0:52 0.000000 +0:53 Constant: +0:53 0.000000 +0:54 Constant: +0:54 0.000000 +0:55 Constant: +0:55 0.000000 +0:56 Constant: +0:56 0.000000 +0:57 Constant: +0:57 0.000000 +0:59 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:63 Function Parameters: +0:63 'inF0' (temp 3-component vector of float) +0:63 'inF1' (temp 3-component vector of float) +0:63 'inF2' (temp 3-component vector of float) +0:63 'inI0' (temp 3-component vector of int) +0:? Sequence +0:64 Constant: +0:64 0.000000 +0:65 Constant: +0:65 0.000000 +0:66 Constant: +0:66 0.000000 +0:67 Constant: +0:67 0.000000 +0:68 Constant: +0:68 0.000000 +0:69 Constant: +0:69 0.000000 +0:70 Constant: +0:70 0.000000 +0:71 Constant: +0:71 0.000000 +0:72 Constant: +0:72 0.000000 +0:73 Constant: +0:73 0.000000 +0:76 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:80 Function Parameters: +0:80 'inF0' (temp 4-component vector of float) +0:80 'inF1' (temp 4-component vector of float) +0:80 'inF2' (temp 4-component vector of float) +0:80 'inI0' (temp 4-component vector of int) +0:? Sequence +0:81 Constant: +0:81 0.000000 +0:82 Constant: +0:82 0.000000 +0:83 Constant: +0:83 0.000000 +0:84 Constant: +0:84 0.000000 +0:85 Constant: +0:85 0.000000 +0:86 Constant: +0:86 0.000000 +0:87 Constant: +0:87 0.000000 +0:88 Constant: +0:88 0.000000 +0:89 Constant: +0:89 0.000000 +0:90 Constant: +0:90 0.000000 +0:92 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:116 Function Parameters: +0:116 'inF0' (temp 2X2 matrix of float) +0:116 'inF1' (temp 2X2 matrix of float) +0:116 'inF2' (temp 2X2 matrix of float) +0:? Sequence +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:118 Constant: +0:118 0.000000 +0:120 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:124 Function Parameters: +0:124 'inF0' (temp 3X3 matrix of float) +0:124 'inF1' (temp 3X3 matrix of float) +0:124 'inF2' (temp 3X3 matrix of float) +0:? Sequence +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:126 Constant: +0:126 0.000000 +0:128 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:132 Function Parameters: +0:132 'inF0' (temp 4X4 matrix of float) +0:132 'inF1' (temp 4X4 matrix of float) +0:132 'inF2' (temp 4X4 matrix of float) +0:? Sequence +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:134 Constant: +0:134 0.000000 +0:136 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out new file mode 100644 index 00000000..6fc87bf3 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -0,0 +1,1055 @@ +hlsl.intrinsics.negative.vert +ERROR: 0:5: 'asdouble' : no matching overloaded function found +ERROR: 0:6: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:7: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:8: 'clip' : no matching overloaded function found +ERROR: 0:9: 'countbits' : no matching overloaded function found +ERROR: 0:10: 'cross' : no matching overloaded function found +ERROR: 0:11: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:14: 'ddx' : no matching overloaded function found +ERROR: 0:15: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:16: 'ddx_fine' : no matching overloaded function found +ERROR: 0:17: 'ddy' : no matching overloaded function found +ERROR: 0:18: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:19: 'ddy_fine' : no matching overloaded function found +ERROR: 0:20: 'determinant' : no matching overloaded function found +ERROR: 0:21: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:22: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:23: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:24: 'f16tof32' : no matching overloaded function found +ERROR: 0:25: 'firstbithigh' : no matching overloaded function found +ERROR: 0:26: 'firstbitlow' : no matching overloaded function found +ERROR: 0:27: 'fma' : no matching overloaded function found +ERROR: 0:35: 'length' : no matching overloaded function found +ERROR: 0:36: 'msad4' : no matching overloaded function found +ERROR: 0:37: 'normalize' : no matching overloaded function found +ERROR: 0:38: 'reflect' : no matching overloaded function found +ERROR: 0:39: 'refract' : no matching overloaded function found +ERROR: 0:40: 'refract' : no matching overloaded function found +ERROR: 0:41: 'reversebits' : no matching overloaded function found +ERROR: 0:42: 'transpose' : no matching overloaded function found +ERROR: 0:53: 'GetRenderTargetSamplePosition' : no matching overloaded function found +ERROR: 0:60: 'asdouble' : no matching overloaded function found +ERROR: 0:61: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:62: 'countbits' : no matching overloaded function found +ERROR: 0:63: 'cross' : no matching overloaded function found +ERROR: 0:64: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:65: 'ddx' : no matching overloaded function found +ERROR: 0:66: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:67: 'ddx_fine' : no matching overloaded function found +ERROR: 0:68: 'ddy' : no matching overloaded function found +ERROR: 0:69: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:70: 'ddy_fine' : no matching overloaded function found +ERROR: 0:71: 'determinant' : no matching overloaded function found +ERROR: 0:72: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:73: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:74: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:75: 'f16tof32' : no matching overloaded function found +ERROR: 0:76: 'firstbithigh' : no matching overloaded function found +ERROR: 0:77: 'firstbitlow' : no matching overloaded function found +ERROR: 0:78: 'fma' : no matching overloaded function found +ERROR: 0:79: 'noise' : no matching overloaded function found +ERROR: 0:80: 'reversebits' : no matching overloaded function found +ERROR: 0:81: 'transpose' : no matching overloaded function found +ERROR: 0:90: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:91: 'countbits' : no matching overloaded function found +ERROR: 0:92: 'ddx' : no matching overloaded function found +ERROR: 0:93: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:94: 'ddx_fine' : no matching overloaded function found +ERROR: 0:95: 'ddy' : no matching overloaded function found +ERROR: 0:96: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:97: 'ddy_fine' : no matching overloaded function found +ERROR: 0:98: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:99: 'determinant' : no matching overloaded function found +ERROR: 0:100: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:101: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:102: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:103: 'f16tof32' : no matching overloaded function found +ERROR: 0:104: 'firstbithigh' : no matching overloaded function found +ERROR: 0:105: 'firstbitlow' : no matching overloaded function found +ERROR: 0:106: 'fma' : no matching overloaded function found +ERROR: 0:107: 'noise' : no matching overloaded function found +ERROR: 0:108: 'reversebits' : no matching overloaded function found +ERROR: 0:109: 'transpose' : no matching overloaded function found +ERROR: 0:118: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:119: 'countbits' : no matching overloaded function found +ERROR: 0:120: 'cross' : no matching overloaded function found +ERROR: 0:121: 'determinant' : no matching overloaded function found +ERROR: 0:122: 'ddx' : no matching overloaded function found +ERROR: 0:123: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:124: 'ddx_fine' : no matching overloaded function found +ERROR: 0:125: 'ddy' : no matching overloaded function found +ERROR: 0:126: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:127: 'ddy_fine' : no matching overloaded function found +ERROR: 0:128: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:129: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:130: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:131: 'f16tof32' : no matching overloaded function found +ERROR: 0:132: 'firstbithigh' : no matching overloaded function found +ERROR: 0:133: 'firstbitlow' : no matching overloaded function found +ERROR: 0:134: 'fma' : no matching overloaded function found +ERROR: 0:135: 'noise' : no matching overloaded function found +ERROR: 0:136: 'reversebits' : no matching overloaded function found +ERROR: 0:137: 'transpose' : no matching overloaded function found +ERROR: 0:177: 'countbits' : no matching overloaded function found +ERROR: 0:177: 'cross' : no matching overloaded function found +ERROR: 0:177: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:177: 'ddx' : no matching overloaded function found +ERROR: 0:177: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:177: 'ddx_fine' : no matching overloaded function found +ERROR: 0:177: 'ddy' : no matching overloaded function found +ERROR: 0:177: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:177: 'ddy_fine' : no matching overloaded function found +ERROR: 0:177: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:177: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:177: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:177: 'f16tof32' : no matching overloaded function found +ERROR: 0:177: 'firstbithigh' : no matching overloaded function found +ERROR: 0:177: 'firstbitlow' : no matching overloaded function found +ERROR: 0:177: 'fma' : no matching overloaded function found +ERROR: 0:177: 'noise' : no matching overloaded function found +ERROR: 0:177: 'reversebits' : no matching overloaded function found +ERROR: 0:177: 'length' : no matching overloaded function found +ERROR: 0:177: 'noise' : no matching overloaded function found +ERROR: 0:177: 'normalize' : no matching overloaded function found +ERROR: 0:177: 'reflect' : no matching overloaded function found +ERROR: 0:177: 'refract' : no matching overloaded function found +ERROR: 0:177: 'reversebits' : no matching overloaded function found +ERROR: 0:185: 'countbits' : no matching overloaded function found +ERROR: 0:185: 'cross' : no matching overloaded function found +ERROR: 0:185: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:185: 'ddx' : no matching overloaded function found +ERROR: 0:185: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:185: 'ddx_fine' : no matching overloaded function found +ERROR: 0:185: 'ddy' : no matching overloaded function found +ERROR: 0:185: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:185: 'ddy_fine' : no matching overloaded function found +ERROR: 0:185: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:185: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:185: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:185: 'f16tof32' : no matching overloaded function found +ERROR: 0:185: 'firstbithigh' : no matching overloaded function found +ERROR: 0:185: 'firstbitlow' : no matching overloaded function found +ERROR: 0:185: 'fma' : no matching overloaded function found +ERROR: 0:185: 'noise' : no matching overloaded function found +ERROR: 0:185: 'reversebits' : no matching overloaded function found +ERROR: 0:185: 'length' : no matching overloaded function found +ERROR: 0:185: 'noise' : no matching overloaded function found +ERROR: 0:185: 'normalize' : no matching overloaded function found +ERROR: 0:185: 'reflect' : no matching overloaded function found +ERROR: 0:185: 'refract' : no matching overloaded function found +ERROR: 0:185: 'reversebits' : no matching overloaded function found +ERROR: 0:193: 'countbits' : no matching overloaded function found +ERROR: 0:193: 'cross' : no matching overloaded function found +ERROR: 0:193: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:193: 'ddx' : no matching overloaded function found +ERROR: 0:193: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:193: 'ddx_fine' : no matching overloaded function found +ERROR: 0:193: 'ddy' : no matching overloaded function found +ERROR: 0:193: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:193: 'ddy_fine' : no matching overloaded function found +ERROR: 0:193: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:193: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:193: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:193: 'f16tof32' : no matching overloaded function found +ERROR: 0:193: 'firstbithigh' : no matching overloaded function found +ERROR: 0:193: 'firstbitlow' : no matching overloaded function found +ERROR: 0:193: 'fma' : no matching overloaded function found +ERROR: 0:193: 'noise' : no matching overloaded function found +ERROR: 0:193: 'reversebits' : no matching overloaded function found +ERROR: 0:193: 'length' : no matching overloaded function found +ERROR: 0:193: 'noise' : no matching overloaded function found +ERROR: 0:193: 'normalize' : no matching overloaded function found +ERROR: 0:193: 'reflect' : no matching overloaded function found +ERROR: 0:193: 'refract' : no matching overloaded function found +ERROR: 0:193: 'reversebits' : no matching overloaded function found +ERROR: 164 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:49 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:2 'inI0' (temp int) +0:? Sequence +0:5 Constant: +0:5 0.000000 +0:6 Constant: +0:6 0.000000 +0:7 Constant: +0:7 0.000000 +0:8 Constant: +0:8 0.000000 +0:9 Constant: +0:9 0.000000 +0:10 Constant: +0:10 0.000000 +0:11 Constant: +0:11 0.000000 +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:16 Constant: +0:16 0.000000 +0:17 Constant: +0:17 0.000000 +0:18 Constant: +0:18 0.000000 +0:19 Constant: +0:19 0.000000 +0:20 Constant: +0:20 0.000000 +0:21 Constant: +0:21 0.000000 +0:22 Constant: +0:22 0.000000 +0:23 Constant: +0:23 0.000000 +0:24 Constant: +0:24 0.000000 +0:25 Constant: +0:25 0.000000 +0:26 Constant: +0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:35 Constant: +0:35 0.000000 +0:36 Constant: +0:36 0.000000 +0:37 Constant: +0:37 0.000000 +0:38 Constant: +0:38 0.000000 +0:39 Constant: +0:39 0.000000 +0:40 Constant: +0:40 0.000000 +0:41 Constant: +0:41 0.000000 +0:42 Constant: +0:42 0.000000 +0:46 Branch: Return with expression +0:46 Constant: +0:46 0.000000 +0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float) +0:50 Function Parameters: +0:50 'inF0' (temp 1-component vector of float) +0:50 'inF1' (temp 1-component vector of float) +0:50 'inF2' (temp 1-component vector of float) +0:50 'inI0' (temp int) +0:? Sequence +0:53 Constant: +0:53 0.000000 +0:55 Branch: Return with expression +0:55 Constant: +0:55 0.000000 +0:88 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:59 Function Parameters: +0:59 'inF0' (temp 2-component vector of float) +0:59 'inF1' (temp 2-component vector of float) +0:59 'inF2' (temp 2-component vector of float) +0:59 'inI0' (temp 2-component vector of int) +0:? Sequence +0:60 Constant: +0:60 0.000000 +0:61 Constant: +0:61 0.000000 +0:62 Constant: +0:62 0.000000 +0:63 Constant: +0:63 0.000000 +0:64 Constant: +0:64 0.000000 +0:65 Constant: +0:65 0.000000 +0:66 Constant: +0:66 0.000000 +0:67 Constant: +0:67 0.000000 +0:68 Constant: +0:68 0.000000 +0:69 Constant: +0:69 0.000000 +0:70 Constant: +0:70 0.000000 +0:71 Constant: +0:71 0.000000 +0:72 Constant: +0:72 0.000000 +0:73 Constant: +0:73 0.000000 +0:74 Constant: +0:74 0.000000 +0:75 Constant: +0:75 0.000000 +0:76 Constant: +0:76 0.000000 +0:77 Constant: +0:77 0.000000 +0:78 Constant: +0:78 0.000000 +0:79 Constant: +0:79 0.000000 +0:80 Constant: +0:80 0.000000 +0:81 Constant: +0:81 0.000000 +0:85 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:116 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:89 Function Parameters: +0:89 'inF0' (temp 3-component vector of float) +0:89 'inF1' (temp 3-component vector of float) +0:89 'inF2' (temp 3-component vector of float) +0:89 'inI0' (temp 3-component vector of int) +0:? Sequence +0:90 Constant: +0:90 0.000000 +0:91 Constant: +0:91 0.000000 +0:92 Constant: +0:92 0.000000 +0:93 Constant: +0:93 0.000000 +0:94 Constant: +0:94 0.000000 +0:95 Constant: +0:95 0.000000 +0:96 Constant: +0:96 0.000000 +0:97 Constant: +0:97 0.000000 +0:98 Constant: +0:98 0.000000 +0:99 Constant: +0:99 0.000000 +0:100 Constant: +0:100 0.000000 +0:101 Constant: +0:101 0.000000 +0:102 Constant: +0:102 0.000000 +0:103 Constant: +0:103 0.000000 +0:104 Constant: +0:104 0.000000 +0:105 Constant: +0:105 0.000000 +0:106 Constant: +0:106 0.000000 +0:107 Constant: +0:107 0.000000 +0:108 Constant: +0:108 0.000000 +0:109 Constant: +0:109 0.000000 +0:113 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:174 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:117 Function Parameters: +0:117 'inF0' (temp 4-component vector of float) +0:117 'inF1' (temp 4-component vector of float) +0:117 'inF2' (temp 4-component vector of float) +0:117 'inI0' (temp 4-component vector of int) +0:? Sequence +0:118 Constant: +0:118 0.000000 +0:119 Constant: +0:119 0.000000 +0:120 Constant: +0:120 0.000000 +0:121 Constant: +0:121 0.000000 +0:122 Constant: +0:122 0.000000 +0:123 Constant: +0:123 0.000000 +0:124 Constant: +0:124 0.000000 +0:125 Constant: +0:125 0.000000 +0:126 Constant: +0:126 0.000000 +0:127 Constant: +0:127 0.000000 +0:128 Constant: +0:128 0.000000 +0:129 Constant: +0:129 0.000000 +0:130 Constant: +0:130 0.000000 +0:131 Constant: +0:131 0.000000 +0:132 Constant: +0:132 0.000000 +0:133 Constant: +0:133 0.000000 +0:134 Constant: +0:134 0.000000 +0:135 Constant: +0:135 0.000000 +0:136 Constant: +0:136 0.000000 +0:137 Constant: +0:137 0.000000 +0:141 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:182 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:175 Function Parameters: +0:175 'inF0' (temp 2X2 matrix of float) +0:175 'inF1' (temp 2X2 matrix of float) +0:175 'inF2' (temp 2X2 matrix of float) +0:? Sequence +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:179 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:190 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:183 Function Parameters: +0:183 'inF0' (temp 3X3 matrix of float) +0:183 'inF1' (temp 3X3 matrix of float) +0:183 'inF2' (temp 3X3 matrix of float) +0:? Sequence +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:187 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:197 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:191 Function Parameters: +0:191 'inF0' (temp 4X4 matrix of float) +0:191 'inF1' (temp 4X4 matrix of float) +0:191 'inF2' (temp 4X4 matrix of float) +0:? Sequence +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:195 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects + + +Linked vertex stage: + + +Shader version: 450 +ERROR: node is still EOpNull! +0:49 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:2 'inI0' (temp int) +0:? Sequence +0:5 Constant: +0:5 0.000000 +0:6 Constant: +0:6 0.000000 +0:7 Constant: +0:7 0.000000 +0:8 Constant: +0:8 0.000000 +0:9 Constant: +0:9 0.000000 +0:10 Constant: +0:10 0.000000 +0:11 Constant: +0:11 0.000000 +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:16 Constant: +0:16 0.000000 +0:17 Constant: +0:17 0.000000 +0:18 Constant: +0:18 0.000000 +0:19 Constant: +0:19 0.000000 +0:20 Constant: +0:20 0.000000 +0:21 Constant: +0:21 0.000000 +0:22 Constant: +0:22 0.000000 +0:23 Constant: +0:23 0.000000 +0:24 Constant: +0:24 0.000000 +0:25 Constant: +0:25 0.000000 +0:26 Constant: +0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:35 Constant: +0:35 0.000000 +0:36 Constant: +0:36 0.000000 +0:37 Constant: +0:37 0.000000 +0:38 Constant: +0:38 0.000000 +0:39 Constant: +0:39 0.000000 +0:40 Constant: +0:40 0.000000 +0:41 Constant: +0:41 0.000000 +0:42 Constant: +0:42 0.000000 +0:46 Branch: Return with expression +0:46 Constant: +0:46 0.000000 +0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float) +0:50 Function Parameters: +0:50 'inF0' (temp 1-component vector of float) +0:50 'inF1' (temp 1-component vector of float) +0:50 'inF2' (temp 1-component vector of float) +0:50 'inI0' (temp int) +0:? Sequence +0:53 Constant: +0:53 0.000000 +0:55 Branch: Return with expression +0:55 Constant: +0:55 0.000000 +0:88 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:59 Function Parameters: +0:59 'inF0' (temp 2-component vector of float) +0:59 'inF1' (temp 2-component vector of float) +0:59 'inF2' (temp 2-component vector of float) +0:59 'inI0' (temp 2-component vector of int) +0:? Sequence +0:60 Constant: +0:60 0.000000 +0:61 Constant: +0:61 0.000000 +0:62 Constant: +0:62 0.000000 +0:63 Constant: +0:63 0.000000 +0:64 Constant: +0:64 0.000000 +0:65 Constant: +0:65 0.000000 +0:66 Constant: +0:66 0.000000 +0:67 Constant: +0:67 0.000000 +0:68 Constant: +0:68 0.000000 +0:69 Constant: +0:69 0.000000 +0:70 Constant: +0:70 0.000000 +0:71 Constant: +0:71 0.000000 +0:72 Constant: +0:72 0.000000 +0:73 Constant: +0:73 0.000000 +0:74 Constant: +0:74 0.000000 +0:75 Constant: +0:75 0.000000 +0:76 Constant: +0:76 0.000000 +0:77 Constant: +0:77 0.000000 +0:78 Constant: +0:78 0.000000 +0:79 Constant: +0:79 0.000000 +0:80 Constant: +0:80 0.000000 +0:81 Constant: +0:81 0.000000 +0:85 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:116 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:89 Function Parameters: +0:89 'inF0' (temp 3-component vector of float) +0:89 'inF1' (temp 3-component vector of float) +0:89 'inF2' (temp 3-component vector of float) +0:89 'inI0' (temp 3-component vector of int) +0:? Sequence +0:90 Constant: +0:90 0.000000 +0:91 Constant: +0:91 0.000000 +0:92 Constant: +0:92 0.000000 +0:93 Constant: +0:93 0.000000 +0:94 Constant: +0:94 0.000000 +0:95 Constant: +0:95 0.000000 +0:96 Constant: +0:96 0.000000 +0:97 Constant: +0:97 0.000000 +0:98 Constant: +0:98 0.000000 +0:99 Constant: +0:99 0.000000 +0:100 Constant: +0:100 0.000000 +0:101 Constant: +0:101 0.000000 +0:102 Constant: +0:102 0.000000 +0:103 Constant: +0:103 0.000000 +0:104 Constant: +0:104 0.000000 +0:105 Constant: +0:105 0.000000 +0:106 Constant: +0:106 0.000000 +0:107 Constant: +0:107 0.000000 +0:108 Constant: +0:108 0.000000 +0:109 Constant: +0:109 0.000000 +0:113 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:174 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:117 Function Parameters: +0:117 'inF0' (temp 4-component vector of float) +0:117 'inF1' (temp 4-component vector of float) +0:117 'inF2' (temp 4-component vector of float) +0:117 'inI0' (temp 4-component vector of int) +0:? Sequence +0:118 Constant: +0:118 0.000000 +0:119 Constant: +0:119 0.000000 +0:120 Constant: +0:120 0.000000 +0:121 Constant: +0:121 0.000000 +0:122 Constant: +0:122 0.000000 +0:123 Constant: +0:123 0.000000 +0:124 Constant: +0:124 0.000000 +0:125 Constant: +0:125 0.000000 +0:126 Constant: +0:126 0.000000 +0:127 Constant: +0:127 0.000000 +0:128 Constant: +0:128 0.000000 +0:129 Constant: +0:129 0.000000 +0:130 Constant: +0:130 0.000000 +0:131 Constant: +0:131 0.000000 +0:132 Constant: +0:132 0.000000 +0:133 Constant: +0:133 0.000000 +0:134 Constant: +0:134 0.000000 +0:135 Constant: +0:135 0.000000 +0:136 Constant: +0:136 0.000000 +0:137 Constant: +0:137 0.000000 +0:141 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:182 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:175 Function Parameters: +0:175 'inF0' (temp 2X2 matrix of float) +0:175 'inF1' (temp 2X2 matrix of float) +0:175 'inF2' (temp 2X2 matrix of float) +0:? Sequence +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:177 Constant: +0:177 0.000000 +0:179 Branch: Return with expression +0:? Constant: +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:? 2.000000 +0:190 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:183 Function Parameters: +0:183 'inF0' (temp 3X3 matrix of float) +0:183 'inF1' (temp 3X3 matrix of float) +0:183 'inF2' (temp 3X3 matrix of float) +0:? Sequence +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:185 Constant: +0:185 0.000000 +0:187 Branch: Return with expression +0:? Constant: +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:? 3.000000 +0:197 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:191 Function Parameters: +0:191 'inF0' (temp 4X4 matrix of float) +0:191 'inF1' (temp 4X4 matrix of float) +0:191 'inF2' (temp 4X4 matrix of float) +0:? Sequence +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 0.000000 +0:195 Branch: Return with expression +0:? Constant: +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? 4.000000 +0:? Linker Objects + +SPIR-V is not generated for failed compile or link diff --git a/Test/hlsl.intrinsics.negative.frag b/Test/hlsl.intrinsics.negative.frag new file mode 100644 index 00000000..b93f104d --- /dev/null +++ b/Test/hlsl.intrinsics.negative.frag @@ -0,0 +1,137 @@ +float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0) +{ + // AllMemoryBarrier(); // TODO: expected error: invalid in fragment stage + // AllMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage + asdouble(inF0, inF1); // expected error: only integer inputs + CheckAccessFullyMapped(3.0); // expected error: only valid on integers + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expected error: only valid on mats + // DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + // InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedAnd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out i // InterlockedMax(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedOor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedXor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // GroupMemoryBarrier(); // TODO: expected error: invalid in fragment stage + // GroupMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage + length(inF0); // expected error: invalid on scalars + msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs + normalize(inF0); // expected error: invalid on scalars + reflect(inF0, inF1); // expected error: invalid on scalars + refract(inF0, inF1, inF2); // expected error: invalid on scalars + refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expected error: only valid on mats + + return 0.0; +} + +float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +{ + // TODO: ... add when float1 prototypes are generated + + GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs + + return 0.0; +} + +float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) +{ + asdouble(inF0, inF1); // expected error: only integer inputs + CheckAccessFullyMapped(inF0); // expected error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expected error: only valid on mats + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expected error: only valid on mats + + return float2(1,2); +} + +float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +{ + CheckAccessFullyMapped(inF0); // expected error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expected error: only valid on mats + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expected error: only valid on mats + + + return float3(1,2,3); +} + +float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) +{ + CheckAccessFullyMapped(inF0); // expected error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + determinant(inF0); // expected error: only valid on mats + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expected error: only valid on mats + + return float4(1,2,3,4); +} + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS() \ + countbits(inF0); \ + D3DCOLORtoUBYTE4(inF0); \ + cross(inF0, inF1); \ + f16tof32(inF0); \ + firstbithigh(inF0); \ + firstbitlow(inF0); \ + fma(inF0, inF1, inF2); \ + reversebits(inF0); \ + length(inF0); \ + noise(inF0); \ + normalize(inF0); \ + reflect(inF0, inF1); \ + refract(inF0, inF1, 1.0); \ + reversebits(inF0); \ + + +// TODO: turn on non-square matrix tests when protos are available. + +float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float2x2(2,2,2,2); +} + +float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float3x3(3,3,3,3,3,3,3,3,3); +} + +float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); +} diff --git a/Test/hlsl.intrinsics.negative.vert b/Test/hlsl.intrinsics.negative.vert new file mode 100644 index 00000000..ee2a29d5 --- /dev/null +++ b/Test/hlsl.intrinsics.negative.vert @@ -0,0 +1,196 @@ +float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) +{ + // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list + // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list + asdouble(inF0, inF1); // expected error: only integer inputs + CheckAccessFullyMapped(3.0); // expected error: only valid on integers + CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages + clip(inF0); // expected error: only valid in pixel & compute stages + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + // DeviceMemoryBarrier(); // TODO: expected error: only valid in pixel & compute stages + // DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage + ddx(inF0); // expected error: only valid in pixel & compute stages + ddx_coarse(inF0); // expected error: only valid in pixel & compute stages + ddx_fine(inF0); // expected error: only valid in pixel & compute stages + ddy(inF0); // expected error: only valid in pixel & compute stages + ddy_coarse(inF0); // expected error: only valid in pixel & compute stages + ddy_fine(inF0); // expected error: only valid in pixel & compute stages + determinant(inF0); // expected error: only valid on mats + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + // InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedAnd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out i // InterlockedMax(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedOor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // InterlockedXor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + // GroupMemoryBarrier(); // TODO: expected error: only valid in compute stage + // GroupMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage + length(inF0); // expect error: invalid on scalars + msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs + normalize(inF0); // expect error: invalid on scalars + reflect(inF0, inF1); // expect error: invalid on scalars + refract(inF0, inF1, inF2); // expect error: invalid on scalars + refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return 0.0; +} + +float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +{ + // TODO: ... add when float1 prototypes are generated + + GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs + + return 0.0; +} + +float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) +{ + asdouble(inF0, inF1); // expected error: only integer inputs + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + ddx(inF0); // only valid in pixel & compute stages + ddx_coarse(inF0); // only valid in pixel & compute stages + ddx_fine(inF0); // only valid in pixel & compute stages + ddy(inF0); // only valid in pixel & compute stages + ddy_coarse(inF0); // only valid in pixel & compute stages + ddy_fine(inF0); // only valid in pixel & compute stages + determinant(inF0); // expect error: only valid on mats + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float2(1,2); +} + +float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +{ + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + ddx(inF0); // only valid in pixel & compute stages + ddx_coarse(inF0); // only valid in pixel & compute stages + ddx_fine(inF0); // only valid in pixel & compute stages + ddy(inF0); // only valid in pixel & compute stages + ddy_coarse(inF0); // only valid in pixel & compute stages + ddy_fine(inF0); // only valid in pixel & compute stages + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expect error: only valid on mats + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float3(1,2,3); +} + +float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) +{ + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + determinant(inF0); // expect error: only valid on mats + ddx(inF0); // only valid in pixel & compute stages + ddx_coarse(inF0); // only valid in pixel & compute stages + ddx_fine(inF0); // only valid in pixel & compute stages + ddy(inF0); // only valid in pixel & compute stages + ddy_coarse(inF0); // only valid in pixel & compute stages + ddy_fine(inF0); // only valid in pixel & compute stages + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float4(1,2,3,4); +} + +// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. +#define MATFNS() \ + countbits(inF0); \ + cross(inF0, inF1); \ + D3DCOLORtoUBYTE4(inF0); \ + ddx(inF0); \ + ddx_coarse(inF0); \ + ddx_fine(inF0); \ + ddy(inF0); \ + ddy_coarse(inF0); \ + ddy_fine(inF0); \ + EvaluateAttributeAtCentroid(inF0); \ + EvaluateAttributeAtSample(inF0, 2); \ + EvaluateAttributeSnapped(inF0, int2(2)); \ + f16tof32(inF0); \ + firstbithigh(inF0); \ + firstbitlow(inF0); \ + fma(inF0, inF1, inF2); \ + noise(inF0); \ + reversebits(inF0); \ + length(inF0); \ + noise(inF0); \ + normalize(inF0); \ + reflect(inF0, inF1); \ + refract(inF0, inF1, 1.0); \ + reversebits(inF0); \ + + +// TODO: turn on non-square matrix tests when protos are available. + +float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float2x2(2,2,2,2); +} + +float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float3x3(3,3,3,3,3,3,3,3,3); +} + +float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) +{ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. + MATFNS() + + return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index b5a38866..8f02c6a9 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -75,13 +75,15 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, {"hlsl.max.frag", "PixelShaderFunction"}, {"hlsl.precedence.frag", "PixelShaderFunction"}, {"hlsl.precedence2.frag", "PixelShaderFunction"}, {"hlsl.sin.frag", "PixelShaderFunction"}, - {"hlsl.intrinsics.frag", "PixelShaderFunction"}, - {"hlsl.intrinsics.vert", "VertexShaderFunction"}, }), FileNameAsCustomTestSuffix ); From 1cc1a2813eec42e60c5b4fce41da09bc740c9141 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 3 Jun 2016 16:55:49 -0600 Subject: [PATCH 16/48] HLSL: 1) Implement lookahead buffers/stacks for token advance/recede, 2) use it for cast operation. The grammar now accepts type casts, like "(int)x", but that has to be disambiguated from "(a + b)", needed deeper lookahead and backing up than what existed so far. --- Test/baseResults/hlsl.cast.frag.out | 86 +++++++++++++++++++++++++++++ Test/hlsl.cast.frag | 4 ++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 42 +++++++++++++- hlsl/hlslScanContext.h | 2 +- hlsl/hlslTokenStream.cpp | 37 ++++++++++++- hlsl/hlslTokenStream.h | 26 +++++++-- 7 files changed, 190 insertions(+), 8 deletions(-) create mode 100755 Test/baseResults/hlsl.cast.frag.out create mode 100644 Test/hlsl.cast.frag diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out new file mode 100755 index 00000000..1e689788 --- /dev/null +++ b/Test/baseResults/hlsl.cast.frag.out @@ -0,0 +1,86 @@ +hlsl.cast.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:3 Branch: Return with expression +0:3 add (temp 4-component vector of float) +0:3 add (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) +0:3 'input' (temp 4-component vector of float) +0:3 Convert int to float (temp 4-component vector of float) +0:3 Convert float to int (temp 4-component vector of int) +0:3 'input' (temp 4-component vector of float) +0:3 Constant: +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:3 Branch: Return with expression +0:3 add (temp 4-component vector of float) +0:3 add (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) +0:3 'input' (temp 4-component vector of float) +0:3 Convert int to float (temp 4-component vector of float) +0:3 Convert float to int (temp 4-component vector of int) +0:3 'input' (temp 4-component vector of float) +0:3 Constant: +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:3 1.198000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 26 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 9 "input" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 17: TypeInt 32 1 + 18: TypeVector 17(int) 4 + 22: 6(float) Constant 1067014160 + 23: 7(fvec4) ConstantComposite 22 22 22 22 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 9(input): 8(ptr) Variable Function + 10: 7(fvec4) Load 9(input) + 11: 6(float) CompositeExtract 10 0 + 12: 6(float) CompositeExtract 10 1 + 13: 6(float) CompositeExtract 10 2 + 14: 6(float) CompositeExtract 10 3 + 15: 7(fvec4) CompositeConstruct 11 12 13 14 + 16: 7(fvec4) Load 9(input) + 19: 18(ivec4) ConvertFToS 16 + 20: 7(fvec4) ConvertSToF 19 + 21: 7(fvec4) FAdd 15 20 + 24: 7(fvec4) FAdd 21 23 + ReturnValue 24 + FunctionEnd diff --git a/Test/hlsl.cast.frag b/Test/hlsl.cast.frag new file mode 100644 index 00000000..c8dc8212 --- /dev/null +++ b/Test/hlsl.cast.frag @@ -0,0 +1,4 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + return (float4)input + (int4)input + (float4)1.198; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 8f02c6a9..9c0061ed 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -73,6 +73,7 @@ INSTANTIATE_TEST_CASE_P( ToSpirv, HlslCompileTest, ::testing::ValuesIn(std::vector{ {"hlsl.assoc.frag", "PixelShaderFunction"}, + {"hlsl.cast.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index a6387b74..ddb70788 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -602,7 +602,8 @@ bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel pr } // unary_expression -// : + unary_expression +// : (type) unary_expression +// | + unary_expression // | - unary_expression // | ! unary_expression // | ~ unary_expression @@ -612,9 +613,46 @@ bool HlslGrammar::acceptBinaryExpression(TIntermTyped*& node, PrecedenceLevel pr // bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) { + // (type) unary_expression + // Have to look two steps ahead, because this could be, e.g., a + // postfix_expression instead, since that also starts with at "(". + if (acceptTokenClass(EHTokLeftParen)) { + TType castType; + if (acceptType(castType)) { + if (! acceptTokenClass(EHTokRightParen)) { + expected("right parenthesis"); + return false; + } + + // We've matched "(type)" now, get the expression to cast + TSourceLoc loc = token.loc; + if (! acceptUnaryExpression(node)) + return false; + + // Hook it up like a constructor + TFunction* constructorFunction = parseContext.handleConstructorCall(loc, castType); + if (constructorFunction == nullptr) { + expected("type that can be constructed"); + return false; + } + TIntermTyped* arguments = nullptr; + parseContext.handleFunctionArgument(constructorFunction, arguments, node); + node = parseContext.handleFunctionCall(loc, constructorFunction, arguments); + + return true; + } else { + // This isn't a type cast, but it still started "(", so if it is a + // unary expression, it can only be a postfix_expression, so try that. + // Back it up first. + recedeToken(); + return acceptPostfixExpression(node); + } + } + + // peek for "op unary_expression" TOperator unaryOp = HlslOpMap::preUnary(peek()); - // postfix_expression + // postfix_expression (if no unary operator) if (unaryOp == EOpNull) return acceptPostfixExpression(node); diff --git a/hlsl/hlslScanContext.h b/hlsl/hlslScanContext.h index 04f24383..d761e3a8 100755 --- a/hlsl/hlslScanContext.h +++ b/hlsl/hlslScanContext.h @@ -57,7 +57,7 @@ struct HlslToken { HlslToken() : isType(false), string(nullptr), symbol(nullptr) { loc.init(); } TSourceLoc loc; // location of token in the source EHlslTokenClass tokenClass; // what kind of token it is - bool isType; // true if the token represents a user type + bool isType; // true if the token represents a type union { // what data the token holds glslang::TString *string; // for identifiers int i; // for literals diff --git a/hlsl/hlslTokenStream.cpp b/hlsl/hlslTokenStream.cpp index cfc1101b..47f779a8 100755 --- a/hlsl/hlslTokenStream.cpp +++ b/hlsl/hlslTokenStream.cpp @@ -37,10 +37,45 @@ namespace glslang { +void HlslTokenStream::pushPreToken(const HlslToken& tok) +{ + assert(preTokenStackSize == 0); + preTokenStack = tok; + ++preTokenStackSize; +} + +HlslToken HlslTokenStream::popPreToken() +{ + assert(preTokenStackSize == 1); + --preTokenStackSize; + + return preTokenStack; +} + +void HlslTokenStream::pushTokenBuffer(const HlslToken& tok) +{ + tokenBuffer = tok; +} + +HlslToken HlslTokenStream::popTokenBuffer() +{ + return tokenBuffer; +} + // Load 'token' with the next token in the stream of tokens. void HlslTokenStream::advanceToken() { - scanner.tokenize(token); + pushTokenBuffer(token); + if (preTokenStackSize > 0) + token = popPreToken(); + else + scanner.tokenize(token); +} + +void HlslTokenStream::recedeToken() +{ + pushPreToken(token); + token = popTokenBuffer(); } // Return the current token class. diff --git a/hlsl/hlslTokenStream.h b/hlsl/hlslTokenStream.h index 9139df07..83365c4c 100755 --- a/hlsl/hlslTokenStream.h +++ b/hlsl/hlslTokenStream.h @@ -43,20 +43,38 @@ namespace glslang { class HlslTokenStream { public: explicit HlslTokenStream(HlslScanContext& scanner) - : scanner(scanner) { } + : scanner(scanner), preTokenStackSize(0) { } virtual ~HlslTokenStream() { } public: void advanceToken(); + void recedeToken(); bool acceptTokenClass(EHlslTokenClass); EHlslTokenClass peek() const; bool peekTokenClass(EHlslTokenClass) const; protected: - HlslToken token; // the current token we are processing - + HlslToken token; // the token we are currently looking at, but have not yet accepted + private: - HlslScanContext& scanner; // lexical scanner, to get next token + HlslScanContext& scanner; // lexical scanner, to get next token + + // Previously scanned tokens, returned for future advances, + // so logically in front of the token stream. + // Is logically a stack; needs last in last out semantics. + // Currently implemented as a stack of size 1. + HlslToken preTokenStack; + int preTokenStackSize; + void pushPreToken(const HlslToken&); + HlslToken popPreToken(); + + // Previously scanned tokens, not yet return for future advances, + // but available for that. + // Is logically a fifo for normal advances, and a stack for recession. + // Currently implemented with an intrinsic size of 1. + HlslToken tokenBuffer; + void pushTokenBuffer(const HlslToken&); + HlslToken popTokenBuffer(); }; } // end namespace glslang From 21472aee755d4a6d234488ecc606ffe2ace4673b Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 4 Jun 2016 11:46:33 -0600 Subject: [PATCH 17/48] HLSL: Finish skeletan of the "statement" grammar. --- hlsl/hlslGrammar.cpp | 186 +++++++++++++++++++++++++++++++++++-------- hlsl/hlslGrammar.h | 9 ++- 2 files changed, 163 insertions(+), 32 deletions(-) diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index ddb70788..31e67d36 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -472,7 +472,7 @@ bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& no node = parseContext.handleFunctionDefinition(token.loc, *functionDeclarator); // compound_statement - TIntermAggregate* functionBody = nullptr; + TIntermNode* functionBody = nullptr; if (acceptCompoundStatement(functionBody)) { node = intermediate.growAggregate(node, functionBody); intermediate.setAggregateOperator(node, EOpFunction, functionDeclarator->getType(), token.loc); @@ -690,8 +690,10 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) // idToken will pick up either a variable or a function name in a function call HlslToken idToken; - // LEFT_PAREN expression RIGHT_PAREN + // Find something before the postfix operations, as they can't operate + // on nothing. So, no "return true", they fall through, only "return false". if (acceptTokenClass(EHTokLeftParen)) { + // LEFT_PAREN expression RIGHT_PAREN if (! acceptExpression(node)) { expected("expression"); return false; @@ -714,8 +716,12 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) expected("function call arguments"); return false; } + } else { + // nothing found, can't post operate + return false; } + // Something was found, chain as many postfix operations as exist. do { TSourceLoc loc = token.loc; TOperator postOp = HlslOpMap::postUnary(peek()); @@ -867,8 +873,10 @@ bool HlslGrammar::acceptLiteral(TIntermTyped*& node) // compound_statement // : LEFT_CURLY statement statement ... RIGHT_CURLY // -bool HlslGrammar::acceptCompoundStatement(TIntermAggregate*& compoundStatement) +bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) { + TIntermAggregate* compoundStatement = nullptr; + // LEFT_CURLY if (! acceptTokenClass(EHTokLeftBrace)) return false; @@ -882,54 +890,170 @@ bool HlslGrammar::acceptCompoundStatement(TIntermAggregate*& compoundStatement) if (compoundStatement) compoundStatement->setOperator(EOpSequence); + retStatement = compoundStatement; + // RIGHT_CURLY return acceptTokenClass(EHTokRightBrace); } // statement +// : attributes attributed_statement +// +// attributed_statement // : compound_statement -// | return SEMICOLON -// | return expression SEMICOLON +// | SEMICOLON // | expression SEMICOLON +// | declaration_statement +// | selection_statement +// | switch_statement +// | case_label +// | iteration_statement +// | jump_statement // bool HlslGrammar::acceptStatement(TIntermNode*& statement) { - // compound_statement - TIntermAggregate* compoundStatement = nullptr; - if (acceptCompoundStatement(compoundStatement)) { - statement = compoundStatement; - return true; - } + statement = nullptr; - // RETURN - if (acceptTokenClass(EHTokReturn)) { - // expression - TIntermTyped* node; - if (acceptExpression(node)) { - // hook it up - statement = intermediate.addBranch(EOpReturn, node, token.loc); - } else - statement = intermediate.addBranch(EOpReturn, token.loc); + // attributes + acceptAttributes(); - // SEMICOLON - if (! acceptTokenClass(EHTokSemicolon)) - return false; + // attributed_statement + switch (peek()) { + case EHTokLeftBrace: + return acceptCompoundStatement(statement); - return true; - } + case EHTokIf: + return acceptSelectionStatement(statement); - // expression - TIntermTyped* node; - if (acceptExpression(node)) - statement = node; + case EHTokSwitch: + return acceptSwitchStatement(statement); - // SEMICOLON - if (! acceptTokenClass(EHTokSemicolon)) + case EHTokFor: + case EHTokDo: + case EHTokWhile: + return acceptIterationStatement(statement); + + case EHTokContinue: + case EHTokBreak: + case EHTokDiscard: + case EHTokReturn: + return acceptJumpStatement(statement); + + case EHTokCase: + return acceptCaseLabel(statement); + + case EHTokSemicolon: + return acceptTokenClass(EHTokSemicolon); + + case EHTokRightBrace: + // Performance: not strictly necessary, but stops a bunch of hunting early, + // and is how sequences of statements end. return false; + default: + { + // declaration + if (acceptDeclaration(statement)) + return true; + + // expression + TIntermTyped* node; + if (acceptExpression(node)) + statement = node; + else + return false; + + // SEMICOLON (following an expression) + if (! acceptTokenClass(EHTokSemicolon)) { + expected("semicolon"); + return false; + } + } + } + return true; } +// attributes +// : list of zero or more of: LEFT_BRACKET attribute RIGHT_BRACKET +// +// attribute: +// : UNROLL +// | UNROLL LEFT_PAREN literal RIGHT_PAREN +// | FASTOPT +// | ALLOW_UAV_CONDITION +// | BRANCH +// | FLATTEN +// | FORCECASE +// | CALL +// +void HlslGrammar::acceptAttributes() +{ + // TODO +} + +bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement) +{ + return false; +} + +bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement) +{ + return false; +} + +bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) +{ + return false; +} + +// jump_statement +// : CONTINUE SEMICOLON +// | BREAK SEMICOLON +// | DISCARD SEMICOLON +// | RETURN SEMICOLON +// | RETURN expression SEMICOLON +// +bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) +{ + switch (peek()) { + case EHTokContinue: + case EHTokBreak: + case EHTokDiscard: + // TODO + return false; + + case EHTokReturn: + // return + if (acceptTokenClass(EHTokReturn)) { + // expression + TIntermTyped* node; + if (acceptExpression(node)) { + // hook it up + statement = intermediate.addBranch(EOpReturn, node, token.loc); + } else + statement = intermediate.addBranch(EOpReturn, token.loc); + + // SEMICOLON + if (! acceptTokenClass(EHTokSemicolon)) { + expected("semicolon"); + return false; + } + + return true; + } + + default: + return false; + } +} + + +bool HlslGrammar::acceptCaseLabel(TIntermNode*& statement) +{ + return false; +} + // COLON semantic bool HlslGrammar::acceptSemantic() { diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index d834aa93..7d337fde 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -73,8 +73,15 @@ namespace glslang { bool acceptFunctionCall(HlslToken, TIntermTyped*&); bool acceptArguments(TFunction*, TIntermTyped*&); bool acceptLiteral(TIntermTyped*&); - bool acceptCompoundStatement(TIntermAggregate*&); + bool acceptCompoundStatement(TIntermNode*&); bool acceptStatement(TIntermNode*&); + void acceptAttributes(); + bool acceptSelectionStatement(TIntermNode*&); + bool acceptSwitchStatement(TIntermNode*&); + bool acceptIterationStatement(TIntermNode*&); + bool acceptJumpStatement(TIntermNode*&); + bool acceptCaseLabel(TIntermNode*&); + bool acceptSemantic(); HlslParseContext& parseContext; // state of parsing and helper functions for building the intermediate From 0d2b6de45b858524dbd09aac631ac94db120c4a7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 5 Jun 2016 11:23:11 -0600 Subject: [PATCH 18/48] HLSL: Attribute grammar and if-else grammar/productions. --- Test/baseResults/hlsl.attribute.frag.out | 57 ++++++ Test/baseResults/hlsl.if.frag.out | 223 +++++++++++++++++++++++ Test/hlsl.attribute.frag | 13 ++ Test/hlsl.if.frag | 28 +++ gtests/Hlsl.FromFile.cpp | 2 + hlsl/hlslGrammar.cpp | 133 +++++++++++++- hlsl/hlslGrammar.h | 3 + hlsl/hlslParseHelper.h | 5 + 8 files changed, 456 insertions(+), 8 deletions(-) create mode 100755 Test/baseResults/hlsl.attribute.frag.out create mode 100755 Test/baseResults/hlsl.if.frag.out create mode 100644 Test/hlsl.attribute.frag create mode 100644 Test/hlsl.if.frag diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out new file mode 100755 index 00000000..6ee4a246 --- /dev/null +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -0,0 +1,57 @@ +hlsl.attribute.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Constant: +0:11 0 (const int) +0:11 true case is null +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Constant: +0:11 0 (const int) +0:11 true case is null +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 10 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: 6(int) Constant 0 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + SelectionMerge 9 None + BranchConditional 7 8 9 + 8: Label + Branch 9 + 9: Label + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out new file mode 100755 index 00000000..8908279b --- /dev/null +++ b/Test/baseResults/hlsl.if.frag.out @@ -0,0 +1,223 @@ +hlsl.if.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:3 Test condition and select (temp void) +0:3 Condition +0:3 Compare Equal (temp bool) +0:3 'input' (temp 4-component vector of float) +0:3 'input' (temp 4-component vector of float) +0:3 true case +0:4 Branch: Return with expression +0:4 'input' (temp 4-component vector of float) +0:6 Test condition and select (temp void) +0:6 Condition +0:6 Compare Equal (temp bool) +0:6 'input' (temp 4-component vector of float) +0:6 'input' (temp 4-component vector of float) +0:6 true case +0:7 Branch: Return with expression +0:7 'input' (temp 4-component vector of float) +0:6 false case +0:9 Branch: Return with expression +0:9 Negate value (temp 4-component vector of float) +0:9 'input' (temp 4-component vector of float) +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Compare Equal (temp bool) +0:11 'input' (temp 4-component vector of float) +0:11 'input' (temp 4-component vector of float) +0:11 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 Compare Equal (temp bool) +0:14 'input' (temp 4-component vector of float) +0:14 'input' (temp 4-component vector of float) +0:14 true case is null +0:19 Test condition and select (temp void) +0:19 Condition +0:19 Compare Equal (temp bool) +0:19 'input' (temp 4-component vector of float) +0:19 'input' (temp 4-component vector of float) +0:19 true case +0:? Sequence +0:20 Branch: Return with expression +0:20 'input' (temp 4-component vector of float) +0:23 Test condition and select (temp void) +0:23 Condition +0:23 Compare Equal (temp bool) +0:23 'input' (temp 4-component vector of float) +0:23 'input' (temp 4-component vector of float) +0:23 true case +0:? Sequence +0:24 Branch: Return with expression +0:24 'input' (temp 4-component vector of float) +0:23 false case +0:? Sequence +0:26 Branch: Return with expression +0:26 Negate value (temp 4-component vector of float) +0:26 'input' (temp 4-component vector of float) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:3 Test condition and select (temp void) +0:3 Condition +0:3 Compare Equal (temp bool) +0:3 'input' (temp 4-component vector of float) +0:3 'input' (temp 4-component vector of float) +0:3 true case +0:4 Branch: Return with expression +0:4 'input' (temp 4-component vector of float) +0:6 Test condition and select (temp void) +0:6 Condition +0:6 Compare Equal (temp bool) +0:6 'input' (temp 4-component vector of float) +0:6 'input' (temp 4-component vector of float) +0:6 true case +0:7 Branch: Return with expression +0:7 'input' (temp 4-component vector of float) +0:6 false case +0:9 Branch: Return with expression +0:9 Negate value (temp 4-component vector of float) +0:9 'input' (temp 4-component vector of float) +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Compare Equal (temp bool) +0:11 'input' (temp 4-component vector of float) +0:11 'input' (temp 4-component vector of float) +0:11 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 Compare Equal (temp bool) +0:14 'input' (temp 4-component vector of float) +0:14 'input' (temp 4-component vector of float) +0:14 true case is null +0:19 Test condition and select (temp void) +0:19 Condition +0:19 Compare Equal (temp bool) +0:19 'input' (temp 4-component vector of float) +0:19 'input' (temp 4-component vector of float) +0:19 true case +0:? Sequence +0:20 Branch: Return with expression +0:20 'input' (temp 4-component vector of float) +0:23 Test condition and select (temp void) +0:23 Condition +0:23 Compare Equal (temp bool) +0:23 'input' (temp 4-component vector of float) +0:23 'input' (temp 4-component vector of float) +0:23 true case +0:? Sequence +0:24 Branch: Return with expression +0:24 'input' (temp 4-component vector of float) +0:23 false case +0:? Sequence +0:26 Branch: Return with expression +0:26 Negate value (temp 4-component vector of float) +0:26 'input' (temp 4-component vector of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 64 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 9 "input" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 12: TypeBool + 13: TypeVector 12(bool) 4 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 9(input): 8(ptr) Variable Function + 10: 7(fvec4) Load 9(input) + 11: 7(fvec4) Load 9(input) + 14: 13(bvec4) FOrdEqual 10 11 + 15: 12(bool) All 14 + SelectionMerge 17 None + BranchConditional 15 16 17 + 16: Label + 18: 7(fvec4) Load 9(input) + ReturnValue 18 + 17: Label + 20: 7(fvec4) Load 9(input) + 21: 7(fvec4) Load 9(input) + 22: 13(bvec4) FOrdEqual 20 21 + 23: 12(bool) All 22 + SelectionMerge 25 None + BranchConditional 23 24 28 + 24: Label + 26: 7(fvec4) Load 9(input) + ReturnValue 26 + 28: Label + 29: 7(fvec4) Load 9(input) + 30: 7(fvec4) FNegate 29 + ReturnValue 30 + 25: Label + 32: 7(fvec4) Load 9(input) + 33: 7(fvec4) Load 9(input) + 34: 13(bvec4) FOrdEqual 32 33 + 35: 12(bool) All 34 + SelectionMerge 37 None + BranchConditional 35 36 37 + 36: Label + Branch 37 + 37: Label + 38: 7(fvec4) Load 9(input) + 39: 7(fvec4) Load 9(input) + 40: 13(bvec4) FOrdEqual 38 39 + 41: 12(bool) All 40 + SelectionMerge 43 None + BranchConditional 41 42 43 + 42: Label + Branch 43 + 43: Label + 44: 7(fvec4) Load 9(input) + 45: 7(fvec4) Load 9(input) + 46: 13(bvec4) FOrdEqual 44 45 + 47: 12(bool) All 46 + SelectionMerge 49 None + BranchConditional 47 48 49 + 48: Label + 50: 7(fvec4) Load 9(input) + ReturnValue 50 + 49: Label + 52: 7(fvec4) Load 9(input) + 53: 7(fvec4) Load 9(input) + 54: 13(bvec4) FOrdEqual 52 53 + 55: 12(bool) All 54 + SelectionMerge 57 None + BranchConditional 55 56 60 + 56: Label + 58: 7(fvec4) Load 9(input) + ReturnValue 58 + 60: Label + 61: 7(fvec4) Load 9(input) + 62: 7(fvec4) FNegate 61 + ReturnValue 62 + 57: Label + Return + FunctionEnd diff --git a/Test/hlsl.attribute.frag b/Test/hlsl.attribute.frag new file mode 100644 index 00000000..25c72d46 --- /dev/null +++ b/Test/hlsl.attribute.frag @@ -0,0 +1,13 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + [unroll]; + []; + [][][]; + [unroll(4)]; + [allow_uav_condition]; + [unroll(4)] [allow_uav_condition]; + [ loop ]; + [fastopt]; + [branch] if (0); + [flatten]; +} diff --git a/Test/hlsl.if.frag b/Test/hlsl.if.frag new file mode 100644 index 00000000..1f0dde71 --- /dev/null +++ b/Test/hlsl.if.frag @@ -0,0 +1,28 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + if (input == input) + return input; + + if (input == input) + return input; + else + return -input; + + if (input == input) + ; + + if (input == input) + ; + else + ; + + [flatten] if (input == input) { + return input; + } + + if (input == input) { + return input; + } else { + return -input; + } +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 9c0061ed..123dd608 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -73,9 +73,11 @@ INSTANTIATE_TEST_CASE_P( ToSpirv, HlslCompileTest, ::testing::ValuesIn(std::vector{ {"hlsl.assoc.frag", "PixelShaderFunction"}, + {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.cast.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, + {"hlsl.if.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 31e67d36..a75fee6d 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -434,7 +434,7 @@ bool HlslGrammar::acceptFunctionParameters(TFunction& function) // RIGHT_PAREN if (! acceptTokenClass(EHTokRightParen)) { - expected("right parenthesis"); + expected(")"); return false; } @@ -485,6 +485,31 @@ bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& no return false; } +// Accept an expression with parenthesis around it, where +// the parenthesis ARE NOT expression parenthesis, but the +// syntactically required ones like in "if ( expression )" +// +// Note this one is not set up to be speculative; as it gives +// errors if not found. +// +bool HlslGrammar::acceptParenExpression(TIntermTyped*& expression) +{ + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) + expected("("); + + if (! acceptExpression(expression)) { + expected("expression"); + return false; + } + + // RIGHT_PAREN + if (! acceptTokenClass(EHTokRightParen)) + expected(")"); + + return true; +} + // The top-level full expression recognizer. // // expression @@ -620,7 +645,7 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) TType castType; if (acceptType(castType)) { if (! acceptTokenClass(EHTokRightParen)) { - expected("right parenthesis"); + expected(")"); return false; } @@ -699,7 +724,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) return false; } if (! acceptTokenClass(EHTokRightParen)) { - expected("right parenthesis"); + expected(")"); return false; } } else if (acceptLiteral(node)) { @@ -838,7 +863,7 @@ bool HlslGrammar::acceptArguments(TFunction* function, TIntermTyped*& arguments) // RIGHT_PAREN if (! acceptTokenClass(EHTokRightParen)) { - expected("right parenthesis"); + expected(")"); return false; } @@ -896,6 +921,24 @@ bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) return acceptTokenClass(EHTokRightBrace); } +bool HlslGrammar::acceptScopedStatement(TIntermNode*& statement) +{ + parseContext.pushScope(); + bool result = acceptNestedStatement(statement); + parseContext.popScope(); + + return result; +} + +bool HlslGrammar::acceptNestedStatement(TIntermNode*& statement) +{ + parseContext.nestStatement(); + bool result = acceptStatement(statement); + parseContext.unnestStatement(); + + return result; +} + // statement // : attributes attributed_statement // @@ -965,7 +1008,7 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) // SEMICOLON (following an expression) if (! acceptTokenClass(EHTokSemicolon)) { - expected("semicolon"); + expected(";"); return false; } } @@ -989,12 +1032,86 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) // void HlslGrammar::acceptAttributes() { - // TODO + // For now, accept the [ XXX(X) ] syntax, but drop. + // TODO: subset to correct set? Pass on? + do { + // LEFT_BRACKET? + if (! acceptTokenClass(EHTokLeftBracket)) + return; + + // attribute + if (peekTokenClass(EHTokIdentifier)) { + // 'token.string' is the attribute + advanceToken(); + } else if (! peekTokenClass(EHTokRightBracket)) { + expected("identifier"); + advanceToken(); + } + + // (x) + if (acceptTokenClass(EHTokLeftParen)) { + TIntermTyped* node; + if (! acceptLiteral(node)) + expected("literal"); + // 'node' has the literal in it + if (! acceptTokenClass(EHTokRightParen)) + expected(")"); + } + + // RIGHT_BRACKET + if (acceptTokenClass(EHTokRightBracket)) + continue; + + expected("]"); + return; + + } while (true); } +// selection_statement +// : IF LEFT_PAREN expression RIGHT_PAREN statement +// : IF LEFT_PAREN expression RIGHT_PAREN statement ELSE statement +// bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement) { - return false; + TSourceLoc loc = token.loc; + + // IF + if (! acceptTokenClass(EHTokIf)) + return false; + + // so that something declared in the condition is scoped to the lifetimes + // of the then-else statements + parseContext.pushScope(); + + // LEFT_PAREN expression RIGHT_PAREN + TIntermTyped* condition; + if (! acceptParenExpression(condition)) + return false; + + // create the child statements + TIntermNodePair thenElse = { nullptr, nullptr }; + + // then statement + if (! acceptScopedStatement(thenElse.node1)) { + expected("then statement"); + return false; + } + + // ELSE + if (acceptTokenClass(EHTokElse)) { + // else statement + if (! acceptScopedStatement(thenElse.node2)) { + expected("else statement"); + return false; + } + } + + // Put the pieces together + statement = intermediate.addSelection(condition, thenElse, loc); + parseContext.popScope(); + + return true; } bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement) @@ -1036,7 +1153,7 @@ bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) // SEMICOLON if (! acceptTokenClass(EHTokSemicolon)) { - expected("semicolon"); + expected(";"); return false; } diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 7d337fde..69535f30 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -64,6 +64,7 @@ namespace glslang { bool acceptFunctionParameters(TFunction&); bool acceptParameterDeclaration(TFunction&); bool acceptFunctionDefinition(TFunction&, TIntermNode*&); + bool acceptParenExpression(TIntermTyped*&); bool acceptExpression(TIntermTyped*&); bool acceptAssignmentExpression(TIntermTyped*&); bool acceptBinaryExpression(TIntermTyped*&, PrecedenceLevel); @@ -75,6 +76,8 @@ namespace glslang { bool acceptLiteral(TIntermTyped*&); bool acceptCompoundStatement(TIntermNode*&); bool acceptStatement(TIntermNode*&); + bool acceptScopedStatement(TIntermNode*&); + bool acceptNestedStatement(TIntermNode*&); void acceptAttributes(); bool acceptSelectionStatement(TIntermNode*&); bool acceptSwitchStatement(TIntermNode*&); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 7fa267ff..a6c59a32 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -139,6 +139,11 @@ public: void updateImplicitArraySize(const TSourceLoc&, TIntermNode*, int index); + void nestStatement() { ++statementNestingLevel; } + void unnestStatement() { --statementNestingLevel; } + void pushScope() { symbolTable.push(); } + void popScope() { symbolTable.pop(0); } + protected: void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; From 119f8f690656b85843eb27d8a79be7b1bd5d0ec7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 5 Jun 2016 15:44:07 -0600 Subject: [PATCH 19/48] HLSL: Flesh out the loop grammar and productions. --- Test/baseResults/hlsl.doLoop.frag.out | 116 +++++++++ Test/baseResults/hlsl.forLoop.frag.out | 220 ++++++++++++++++++ Test/baseResults/hlsl.whileLoop.frag.out | 145 ++++++++++++ Test/hlsl.doLoop.frag | 6 + Test/hlsl.forLoop.frag | 8 + Test/hlsl.whileLoop.frag | 7 + glslang/MachineIndependent/Intermediate.cpp | 18 +- .../MachineIndependent/localintermediate.h | 1 + gtests/Hlsl.FromFile.cpp | 3 + hlsl/hlslGrammar.cpp | 121 +++++++++- hlsl/hlslParseHelper.h | 2 + 11 files changed, 645 insertions(+), 2 deletions(-) create mode 100755 Test/baseResults/hlsl.doLoop.frag.out create mode 100755 Test/baseResults/hlsl.forLoop.frag.out create mode 100755 Test/baseResults/hlsl.whileLoop.frag.out create mode 100644 Test/hlsl.doLoop.frag create mode 100644 Test/hlsl.forLoop.frag create mode 100644 Test/hlsl.whileLoop.frag diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out new file mode 100755 index 00000000..eed2d913 --- /dev/null +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -0,0 +1,116 @@ +hlsl.doLoop.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:3 Loop with condition not tested first +0:3 Loop Condition +0:3 Constant: +0:3 false (const bool) +0:3 No loop body +0:4 Loop with condition not tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition not tested first +0:5 Loop Condition +0:5 Compare Equal (temp bool) +0:5 'input' (temp 4-component vector of float) +0:5 'input' (temp 4-component vector of float) +0:5 Loop Body +0:5 Branch: Return with expression +0:5 'input' (temp 4-component vector of float) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:3 Loop with condition not tested first +0:3 Loop Condition +0:3 Constant: +0:3 false (const bool) +0:3 No loop body +0:4 Loop with condition not tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition not tested first +0:5 Loop Condition +0:5 Compare Equal (temp bool) +0:5 'input' (temp 4-component vector of float) +0:5 'input' (temp 4-component vector of float) +0:5 Loop Body +0:5 Branch: Return with expression +0:5 'input' (temp 4-component vector of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 31 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 23 "input" + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeBool + 11: 10(bool) ConstantFalse + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 28: TypeVector 10(bool) 4 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 23(input): 22(ptr) Variable Function + Branch 6 + 6: Label + LoopMerge 8 9 None + Branch 7 + 7: Label + Branch 9 + 9: Label + BranchConditional 11 6 8 + 8: Label + Branch 12 + 12: Label + LoopMerge 14 15 None + Branch 13 + 13: Label + Branch 15 + 15: Label + BranchConditional 11 12 14 + 14: Label + Branch 16 + 16: Label + LoopMerge 18 19 None + Branch 17 + 17: Label + 24: 21(fvec4) Load 23(input) + ReturnValue 24 + 19: Label + 26: 21(fvec4) Load 23(input) + 27: 21(fvec4) Load 23(input) + 29: 28(bvec4) FOrdEqual 26 27 + 30: 10(bool) All 29 + BranchConditional 30 16 18 + 18: Label + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out new file mode 100755 index 00000000..2e654e19 --- /dev/null +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -0,0 +1,220 @@ +hlsl.forLoop.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:? Sequence +0:3 Loop with condition tested first +0:3 No loop condition +0:3 No loop body +0:4 Sequence +0:4 Pre-Increment (temp 4-component vector of float) +0:4 'input' (temp 4-component vector of float) +0:4 Loop with condition tested first +0:4 No loop condition +0:4 No loop body +0:? Sequence +0:5 Loop with condition tested first +0:5 Loop Condition +0:5 Compare Not Equal (temp bool) +0:5 'input' (temp 4-component vector of float) +0:5 'input' (temp 4-component vector of float) +0:5 No loop body +0:? Sequence +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 Compare Not Equal (temp bool) +0:6 'input' (temp 4-component vector of float) +0:6 'input' (temp 4-component vector of float) +0:6 Loop Body +0:? Sequence +0:6 Branch: Return with expression +0:6 Negate value (temp 4-component vector of float) +0:6 'input' (temp 4-component vector of float) +0:7 Sequence +0:7 Pre-Decrement (temp 4-component vector of float) +0:7 'input' (temp 4-component vector of float) +0:7 Loop with condition tested first +0:7 Loop Condition +0:7 Compare Not Equal (temp bool) +0:7 'input' (temp 4-component vector of float) +0:7 'input' (temp 4-component vector of float) +0:7 Loop Body +0:? Sequence +0:7 Branch: Return with expression +0:7 Negate value (temp 4-component vector of float) +0:7 'input' (temp 4-component vector of float) +0:7 Loop Terminal Expression +0:7 add second child into first child (temp 4-component vector of float) +0:7 'input' (temp 4-component vector of float) +0:7 Constant: +0:7 2.000000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:? Sequence +0:3 Loop with condition tested first +0:3 No loop condition +0:3 No loop body +0:4 Sequence +0:4 Pre-Increment (temp 4-component vector of float) +0:4 'input' (temp 4-component vector of float) +0:4 Loop with condition tested first +0:4 No loop condition +0:4 No loop body +0:? Sequence +0:5 Loop with condition tested first +0:5 Loop Condition +0:5 Compare Not Equal (temp bool) +0:5 'input' (temp 4-component vector of float) +0:5 'input' (temp 4-component vector of float) +0:5 No loop body +0:? Sequence +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 Compare Not Equal (temp bool) +0:6 'input' (temp 4-component vector of float) +0:6 'input' (temp 4-component vector of float) +0:6 Loop Body +0:? Sequence +0:6 Branch: Return with expression +0:6 Negate value (temp 4-component vector of float) +0:6 'input' (temp 4-component vector of float) +0:7 Sequence +0:7 Pre-Decrement (temp 4-component vector of float) +0:7 'input' (temp 4-component vector of float) +0:7 Loop with condition tested first +0:7 Loop Condition +0:7 Compare Not Equal (temp bool) +0:7 'input' (temp 4-component vector of float) +0:7 'input' (temp 4-component vector of float) +0:7 Loop Body +0:? Sequence +0:7 Branch: Return with expression +0:7 Negate value (temp 4-component vector of float) +0:7 'input' (temp 4-component vector of float) +0:7 Loop Terminal Expression +0:7 add second child into first child (temp 4-component vector of float) +0:7 'input' (temp 4-component vector of float) +0:7 Constant: +0:7 2.000000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 64 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 13 "input" + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12: TypePointer Function 11(fvec4) + 15: 10(float) Constant 1065353216 + 29: TypeBool + 30: TypeVector 29(bool) 4 + 60: 10(float) Constant 1073741824 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 13(input): 12(ptr) Variable Function + Branch 6 + 6: Label + LoopMerge 8 9 None + Branch 7 + 7: Label + Branch 9 + 9: Label + Branch 6 + 8: Label + 14: 11(fvec4) Load 13(input) + 16: 11(fvec4) CompositeConstruct 15 15 15 15 + 17: 11(fvec4) FAdd 14 16 + Store 13(input) 17 + Branch 18 + 18: Label + LoopMerge 20 21 None + Branch 19 + 19: Label + Branch 21 + 21: Label + Branch 18 + 20: Label + Branch 22 + 22: Label + LoopMerge 24 25 None + Branch 26 + 26: Label + 27: 11(fvec4) Load 13(input) + 28: 11(fvec4) Load 13(input) + 31: 30(bvec4) FOrdNotEqual 27 28 + 32: 29(bool) Any 31 + BranchConditional 32 23 24 + 23: Label + Branch 25 + 25: Label + Branch 22 + 24: Label + Branch 33 + 33: Label + LoopMerge 35 36 None + Branch 37 + 37: Label + 38: 11(fvec4) Load 13(input) + 39: 11(fvec4) Load 13(input) + 40: 30(bvec4) FOrdNotEqual 38 39 + 41: 29(bool) Any 40 + BranchConditional 41 34 35 + 34: Label + 42: 11(fvec4) Load 13(input) + 43: 11(fvec4) FNegate 42 + ReturnValue 43 + 36: Label + Branch 33 + 35: Label + 45: 11(fvec4) Load 13(input) + 46: 11(fvec4) CompositeConstruct 15 15 15 15 + 47: 11(fvec4) FSub 45 46 + Store 13(input) 47 + Branch 48 + 48: Label + LoopMerge 50 51 None + Branch 52 + 52: Label + 53: 11(fvec4) Load 13(input) + 54: 11(fvec4) Load 13(input) + 55: 30(bvec4) FOrdNotEqual 53 54 + 56: 29(bool) Any 55 + BranchConditional 56 49 50 + 49: Label + 57: 11(fvec4) Load 13(input) + 58: 11(fvec4) FNegate 57 + ReturnValue 58 + 51: Label + 61: 11(fvec4) Load 13(input) + 62: 11(fvec4) CompositeConstruct 60 60 60 60 + 63: 11(fvec4) FAdd 61 62 + Store 13(input) 63 + Branch 48 + 50: Label + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out new file mode 100755 index 00000000..686407bd --- /dev/null +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -0,0 +1,145 @@ +hlsl.whileLoop.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:3 Loop with condition tested first +0:3 Loop Condition +0:3 Compare Not Equal (temp bool) +0:3 'input' (temp 4-component vector of float) +0:3 'input' (temp 4-component vector of float) +0:3 Loop Body +0:? Sequence +0:3 Branch: Return with expression +0:3 'input' (temp 4-component vector of float) +0:4 Loop with condition tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition tested first +0:5 Loop Condition +0:5 Constant: +0:5 false (const bool) +0:5 No loop body +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 Constant: +0:6 false (const bool) +0:6 No loop body +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:3 Loop with condition tested first +0:3 Loop Condition +0:3 Compare Not Equal (temp bool) +0:3 'input' (temp 4-component vector of float) +0:3 'input' (temp 4-component vector of float) +0:3 Loop Body +0:? Sequence +0:3 Branch: Return with expression +0:3 'input' (temp 4-component vector of float) +0:4 Loop with condition tested first +0:4 Loop Condition +0:4 Constant: +0:4 false (const bool) +0:4 No loop body +0:5 Loop with condition tested first +0:5 Loop Condition +0:5 Constant: +0:5 false (const bool) +0:5 No loop body +0:6 Loop with condition tested first +0:6 Loop Condition +0:6 Constant: +0:6 false (const bool) +0:6 No loop body +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 14 "input" + 2: TypeVoid + 3: TypeFunction 2 + 11: TypeFloat 32 + 12: TypeVector 11(float) 4 + 13: TypePointer Function 12(fvec4) + 17: TypeBool + 18: TypeVector 17(bool) 4 + 28: 17(bool) ConstantFalse +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 14(input): 13(ptr) Variable Function + Branch 6 + 6: Label + LoopMerge 8 9 None + Branch 10 + 10: Label + 15: 12(fvec4) Load 14(input) + 16: 12(fvec4) Load 14(input) + 19: 18(bvec4) FOrdNotEqual 15 16 + 20: 17(bool) Any 19 + BranchConditional 20 7 8 + 7: Label + 21: 12(fvec4) Load 14(input) + ReturnValue 21 + 9: Label + Branch 6 + 8: Label + Branch 23 + 23: Label + LoopMerge 25 26 None + Branch 27 + 27: Label + BranchConditional 28 24 25 + 24: Label + Branch 26 + 26: Label + Branch 23 + 25: Label + Branch 29 + 29: Label + LoopMerge 31 32 None + Branch 33 + 33: Label + BranchConditional 28 30 31 + 30: Label + Branch 32 + 32: Label + Branch 29 + 31: Label + Branch 34 + 34: Label + LoopMerge 36 37 None + Branch 38 + 38: Label + BranchConditional 28 35 36 + 35: Label + Branch 37 + 37: Label + Branch 34 + 36: Label + Return + FunctionEnd diff --git a/Test/hlsl.doLoop.frag b/Test/hlsl.doLoop.frag new file mode 100644 index 00000000..546b2c2c --- /dev/null +++ b/Test/hlsl.doLoop.frag @@ -0,0 +1,6 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + [unroll] do {} while (false); + [unroll] do {;} while (false); + do { return input; } while (input == input); +} diff --git a/Test/hlsl.forLoop.frag b/Test/hlsl.forLoop.frag new file mode 100644 index 00000000..9109de79 --- /dev/null +++ b/Test/hlsl.forLoop.frag @@ -0,0 +1,8 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + for (;;) ; + for (++input; ; ) ; + [unroll] for (; input != input; ) {} + for (; input != input; ) { return -input; } + for (--input; input != input; input += 2) { return -input; } +} diff --git a/Test/hlsl.whileLoop.frag b/Test/hlsl.whileLoop.frag new file mode 100644 index 00000000..f282375d --- /dev/null +++ b/Test/hlsl.whileLoop.frag @@ -0,0 +1,7 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + while (input != input) { return input; } + while (false) ; + [unroll] while (false) { } + while ((false)) { } +} diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 416dc34a..02681ac5 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -1028,7 +1028,7 @@ const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool } // -// Create loop nodes. +// Create while and do-while loop nodes. // TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc) { @@ -1038,6 +1038,22 @@ TIntermLoop* TIntermediate::addLoop(TIntermNode* body, TIntermTyped* test, TInte return node; } +// +// Create a for-loop sequence. +// +TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* initializer, TIntermTyped* test, TIntermTyped* terminal, bool testFirst, const TSourceLoc& loc) +{ + TIntermLoop* node = new TIntermLoop(body, test, terminal, testFirst); + node->setLoc(loc); + + // make a sequence of the initializer and statement + TIntermAggregate* loopSequence = makeAggregate(initializer, loc); + loopSequence = growAggregate(loopSequence, node); + loopSequence->setOperator(EOpSequence); + + return loopSequence; +} + // // Add branches. // diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index d60c59ed..7445dee0 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -198,6 +198,7 @@ public: TIntermTyped* promoteConstantUnion(TBasicType, TIntermConstantUnion*) const; bool parseConstTree(TIntermNode*, TConstUnionArray, TOperator, const TType&, bool singleConstantParam = false); TIntermLoop* addLoop(TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, const TSourceLoc&); + TIntermAggregate* addForLoop(TIntermNode*, TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, const TSourceLoc&); TIntermBranch* addBranch(TOperator, const TSourceLoc&); TIntermBranch* addBranch(TOperator, TIntermTyped*, const TSourceLoc&); TIntermTyped* addSwizzle(TVectorFields&, const TSourceLoc&); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 123dd608..3b61dc00 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -75,8 +75,10 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.cast.frag", "PixelShaderFunction"}, + {"hlsl.doLoop.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, + {"hlsl.forLoop.frag", "PixelShaderFunction"}, {"hlsl.if.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, @@ -87,6 +89,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.precedence.frag", "PixelShaderFunction"}, {"hlsl.precedence2.frag", "PixelShaderFunction"}, {"hlsl.sin.frag", "PixelShaderFunction"}, + {"hlsl.whileLoop.frag", "PixelShaderFunction"}, }), FileNameAsCustomTestSuffix ); diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index a75fee6d..c1600e4d 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1119,9 +1119,128 @@ bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement) return false; } +// iteration_statement +// : WHILE LEFT_PAREN condition RIGHT_PAREN statement +// | DO LEFT_BRACE statement RIGHT_BRACE WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON +// | FOR LEFT_PAREN for_init_statement for_rest_statement RIGHT_PAREN statement +// +// Non-speculative, only call if it needs to be found; WHILE or DO or FOR already seen. bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) { - return false; + TSourceLoc loc = token.loc; + TIntermTyped* condition = nullptr; + + EHlslTokenClass loop = peek(); + assert(loop == EHTokDo || loop == EHTokFor || loop == EHTokWhile); + + // WHILE or DO or FOR + advanceToken(); + + switch (loop) { + case EHTokWhile: + // so that something declared in the condition is scoped to the lifetime + // of the while sub-statement + parseContext.pushScope(); + parseContext.nestLooping(); + + // LEFT_PAREN condition RIGHT_PAREN + if (! acceptParenExpression(condition)) + return false; + + // statement + if (! acceptScopedStatement(statement)) { + expected("while sub-statement"); + return false; + } + + parseContext.unnestLooping(); + parseContext.popScope(); + + statement = intermediate.addLoop(statement, condition, nullptr, true, loc); + + return true; + + case EHTokDo: + parseContext.nestLooping(); + + if (! acceptTokenClass(EHTokLeftBrace)) + expected("{"); + + // statement + if (! peekTokenClass(EHTokRightBrace) && ! acceptScopedStatement(statement)) { + expected("do sub-statement"); + return false; + } + + if (! acceptTokenClass(EHTokRightBrace)) + expected("}"); + + // WHILE + if (! acceptTokenClass(EHTokWhile)) { + expected("while"); + return false; + } + + // LEFT_PAREN condition RIGHT_PAREN + TIntermTyped* condition; + if (! acceptParenExpression(condition)) + return false; + + if (! acceptTokenClass(EHTokSemicolon)) + expected(";"); + + parseContext.unnestLooping(); + + statement = intermediate.addLoop(statement, condition, 0, false, loc); + + return true; + + case EHTokFor: + { + // LEFT_PAREN + if (! acceptTokenClass(EHTokLeftParen)) + expected("("); + + // so that something declared in the condition is scoped to the lifetime + // of the for sub-statement + parseContext.pushScope(); + + // initializer SEMI_COLON + TIntermTyped* initializer = nullptr; // TODO, "for (initializer" needs to support decl. statement + acceptExpression(initializer); + if (! acceptTokenClass(EHTokSemicolon)) + expected(";"); + + parseContext.nestLooping(); + + // condition SEMI_COLON + acceptExpression(condition); + if (! acceptTokenClass(EHTokSemicolon)) + expected(";"); + + // iterator SEMI_COLON + TIntermTyped* iterator = nullptr; + acceptExpression(iterator); + if (! acceptTokenClass(EHTokRightParen)) + expected(")"); + + // statement + if (! acceptScopedStatement(statement)) { + expected("for sub-statement"); + return false; + } + + statement = intermediate.addForLoop(statement, initializer, condition, iterator, true, loc); + + parseContext.popScope(); + parseContext.unnestLooping(); + + return true; + } + + default: + return false; + } } // jump_statement diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index a6c59a32..6f920d8c 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -141,6 +141,8 @@ public: void nestStatement() { ++statementNestingLevel; } void unnestStatement() { --statementNestingLevel; } + void nestLooping() { ++loopNestingLevel; } + void unnestLooping() { --loopNestingLevel; } void pushScope() { symbolTable.push(); } void popScope() { symbolTable.pop(0); } From 133253b6eede33625061ab83a2d72942a293c3db Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 5 Jun 2016 17:25:34 -0600 Subject: [PATCH 20/48] Front-end: Fix issue #147: ensure layout(index=N) has N in [0,1]. --- Test/330.frag | 2 ++ Test/baseResults/330.frag.out | 5 ++++- glslang/MachineIndependent/ParseHelper.cpp | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Test/330.frag b/Test/330.frag index 57736b0c..9afa8f82 100644 --- a/Test/330.frag +++ b/Test/330.frag @@ -148,3 +148,5 @@ void fooKeyMem() { KeyMem.precise; } + +layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range \ No newline at end of file diff --git a/Test/baseResults/330.frag.out b/Test/baseResults/330.frag.out index 5d145efd..904ad3ed 100644 --- a/Test/baseResults/330.frag.out +++ b/Test/baseResults/330.frag.out @@ -37,7 +37,8 @@ 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. +ERROR: 0:152: 'index' : value must be 0 or 1 +ERROR: 39 compilation errors. No code generated. Shader version: 330 @@ -122,6 +123,7 @@ ERROR: node is still EOpNull! 0:? 'samp2Ds' (uniform sampler2DShadow) 0:? 'precise' (global int) 0:? 'KeyMem' (global structure{global int precise}) +0:? 'outIndex2' (layout(location=28 index=0 ) out 4-component vector of float) Linked fragment stage: @@ -211,4 +213,5 @@ ERROR: node is still EOpNull! 0:? 'samp2Ds' (uniform sampler2DShadow) 0:? 'precise' (global int) 0:? 'KeyMem' (global structure{global int precise}) +0:? 'outIndex2' (layout(location=28 index=0 ) out 4-component vector of float) diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 31a94d26..959d6900 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -4225,6 +4225,13 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi requireProfile(loc, ECompatibilityProfile | ECoreProfile, "index layout qualifier on fragment output"); const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location }; profileRequires(loc, ECompatibilityProfile | ECoreProfile, 330, 2, exts, "index layout qualifier on fragment output"); + + // "It is also a compile-time error if a fragment shader sets a layout index to less than 0 or greater than 1." + if (value < 0 || value > 1) { + value = 0; + error(loc, "value must be 0 or 1", "index", ""); + } + publicType.qualifier.layoutIndex = value; return; } From e592652665c0c83eb4a1de4007463145a10bb40d Mon Sep 17 00:00:00 2001 From: Dejan Mircevski Date: Sun, 5 Jun 2016 20:45:34 -0400 Subject: [PATCH 21/48] Increase column limit to 120. --- .clang-format | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clang-format b/.clang-format index ad2b1282..daf87985 100644 --- a/.clang-format +++ b/.clang-format @@ -4,7 +4,7 @@ BreakBeforeBraces: Custom BraceWrapping: { AfterFunction: true, AfterControlStatement: true } IndentCaseLabels: false ReflowComments: false -ColumnLimit: 100 +ColumnLimit: 120 AccessModifierOffset: -4 AlignTrailingComments: true AllowShortBlocksOnASingleLine: false From 738314fe8214a00349cb0855aa50eb1836359f31 Mon Sep 17 00:00:00 2001 From: Dejan Mircevski Date: Sun, 5 Jun 2016 20:46:33 -0400 Subject: [PATCH 22/48] Revert SpvBuilder.* to master versions. --- SPIRV/SpvBuilder.cpp | 552 +++++++++++++++++-------------------------- SPIRV/SpvBuilder.h | 111 ++++----- 2 files changed, 267 insertions(+), 396 deletions(-) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index b7e5ef0c..152a4639 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -47,7 +47,7 @@ #include "SpvBuilder.h" #ifndef _WIN32 -#include + #include #endif namespace spv { @@ -67,12 +67,15 @@ Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) : clearAccessChain(); } -Builder::~Builder() {} +Builder::~Builder() +{ +} + Id Builder::import(const char* name) { Instruction* import = new Instruction(getUniqueId(), NoType, OpExtInstImport); import->addStringOperand(name); - + imports.push_back(std::unique_ptr(import)); return import->getResultId(); } @@ -81,8 +84,7 @@ Id Builder::import(const char* name) Id Builder::makeVoidType() { Instruction* type; - if (groupedTypes[OpTypeVoid].size() == 0) - { + if (groupedTypes[OpTypeVoid].size() == 0) { type = new Instruction(getUniqueId(), NoType, OpTypeVoid); groupedTypes[OpTypeVoid].push_back(type); constantsTypesGlobals.push_back(std::unique_ptr(type)); @@ -96,8 +98,7 @@ Id Builder::makeVoidType() Id Builder::makeBoolType() { Instruction* type; - if (groupedTypes[OpTypeBool].size() == 0) - { + if (groupedTypes[OpTypeBool].size() == 0) { type = new Instruction(getUniqueId(), NoType, OpTypeBool); groupedTypes[OpTypeBool].push_back(type); constantsTypesGlobals.push_back(std::unique_ptr(type)); @@ -111,8 +112,7 @@ Id Builder::makeBoolType() Id Builder::makeSamplerType() { Instruction* type; - if (groupedTypes[OpTypeSampler].size() == 0) - { + if (groupedTypes[OpTypeSampler].size() == 0) { type = new Instruction(getUniqueId(), NoType, OpTypeSampler); groupedTypes[OpTypeSampler].push_back(type); constantsTypesGlobals.push_back(std::unique_ptr(type)); @@ -127,8 +127,7 @@ Id Builder::makePointer(StorageClass storageClass, Id pointee) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypePointer].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypePointer].size(); ++t) { type = groupedTypes[OpTypePointer][t]; if (type->getImmediateOperand(0) == (unsigned)storageClass && type->getIdOperand(1) == pointee) @@ -150,8 +149,7 @@ Id Builder::makeIntegerType(int width, bool hasSign) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeInt].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeInt].size(); ++t) { type = groupedTypes[OpTypeInt][t]; if (type->getImmediateOperand(0) == (unsigned)width && type->getImmediateOperand(1) == (hasSign ? 1u : 0u)) @@ -167,8 +165,7 @@ Id Builder::makeIntegerType(int width, bool hasSign) module.mapInstruction(type); // deal with capabilities - switch (width) - { + switch (width) { case 16: addCapability(CapabilityInt16); break; @@ -186,8 +183,7 @@ Id Builder::makeFloatType(int width) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeFloat].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeFloat].size(); ++t) { type = groupedTypes[OpTypeFloat][t]; if (type->getImmediateOperand(0) == (unsigned)width) return type->getResultId(); @@ -201,8 +197,7 @@ Id Builder::makeFloatType(int width) module.mapInstruction(type); // deal with capabilities - switch (width) - { + switch (width) { case 16: addCapability(CapabilityFloat16); break; @@ -243,12 +238,12 @@ Id Builder::makeStructResultType(Id type0, Id type1) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeStruct].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeStruct].size(); ++t) { type = groupedTypes[OpTypeStruct][t]; if (type->getNumOperands() != 2) continue; - if (type->getIdOperand(0) != type0 || type->getIdOperand(1) != type1) + if (type->getIdOperand(0) != type0 || + type->getIdOperand(1) != type1) continue; return type->getResultId(); } @@ -265,10 +260,10 @@ Id Builder::makeVectorType(Id component, int size) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeVector].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeVector].size(); ++t) { type = groupedTypes[OpTypeVector][t]; - if (type->getIdOperand(0) == component && type->getImmediateOperand(1) == (unsigned)size) + if (type->getIdOperand(0) == component && + type->getImmediateOperand(1) == (unsigned)size) return type->getResultId(); } @@ -291,10 +286,10 @@ Id Builder::makeMatrixType(Id component, int cols, int rows) // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeMatrix].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeMatrix].size(); ++t) { type = groupedTypes[OpTypeMatrix][t]; - if (type->getIdOperand(0) == column && type->getImmediateOperand(1) == (unsigned)cols) + if (type->getIdOperand(0) == column && + type->getImmediateOperand(1) == (unsigned)cols) return type->getResultId(); } @@ -316,13 +311,12 @@ Id Builder::makeMatrixType(Id component, int cols, int rows) Id Builder::makeArrayType(Id element, Id sizeId, int stride) { Instruction* type; - if (stride == 0) - { + if (stride == 0) { // try to find existing type - for (int t = 0; t < (int)groupedTypes[OpTypeArray].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeArray].size(); ++t) { type = groupedTypes[OpTypeArray][t]; - if (type->getIdOperand(0) == element && type->getIdOperand(1) == sizeId) + if (type->getIdOperand(0) == element && + type->getIdOperand(1) == sizeId) return type->getResultId(); } } @@ -352,22 +346,18 @@ Id Builder::makeFunctionType(Id returnType, const std::vector& paramTypes) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeFunction].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeFunction].size(); ++t) { type = groupedTypes[OpTypeFunction][t]; - if (type->getIdOperand(0) != returnType || - (int)paramTypes.size() != type->getNumOperands() - 1) + if (type->getIdOperand(0) != returnType || (int)paramTypes.size() != type->getNumOperands() - 1) continue; bool mismatch = false; - for (int p = 0; p < (int)paramTypes.size(); ++p) - { - if (paramTypes[p] != type->getIdOperand(p + 1)) - { + for (int p = 0; p < (int)paramTypes.size(); ++p) { + if (paramTypes[p] != type->getIdOperand(p + 1)) { mismatch = true; break; } } - if (!mismatch) + if (! mismatch) return type->getResultId(); } @@ -383,19 +373,17 @@ Id Builder::makeFunctionType(Id returnType, const std::vector& paramTypes) return type->getResultId(); } -Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, - unsigned sampled, ImageFormat format) +Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) { type = groupedTypes[OpTypeImage][t]; if (type->getIdOperand(0) == sampledType && type->getImmediateOperand(1) == (unsigned int)dim && - type->getImmediateOperand(2) == (depth ? 1u : 0u) && + type->getImmediateOperand(2) == ( depth ? 1u : 0u) && type->getImmediateOperand(3) == (arrayed ? 1u : 0u) && - type->getImmediateOperand(4) == (ms ? 1u : 0u) && + type->getImmediateOperand(4) == ( ms ? 1u : 0u) && type->getImmediateOperand(5) == sampled && type->getImmediateOperand(6) == (unsigned int)format) return type->getResultId(); @@ -404,10 +392,10 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo // not found, make it type = new Instruction(getUniqueId(), NoType, OpTypeImage); type->addIdOperand(sampledType); - type->addImmediateOperand(dim); - type->addImmediateOperand(depth ? 1 : 0); + type->addImmediateOperand( dim); + type->addImmediateOperand( depth ? 1 : 0); type->addImmediateOperand(arrayed ? 1 : 0); - type->addImmediateOperand(ms ? 1 : 0); + type->addImmediateOperand( ms ? 1 : 0); type->addImmediateOperand(sampled); type->addImmediateOperand((unsigned int)format); @@ -416,8 +404,7 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo module.mapInstruction(type); // deal with capabilities - switch (dim) - { + switch (dim) { case DimBuffer: if (sampled) addCapability(CapabilitySampledBuffer); @@ -431,8 +418,7 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo addCapability(CapabilityImage1D); break; case DimCube: - if (arrayed) - { + if (arrayed) { if (sampled) addCapability(CapabilitySampledCubeArray); else @@ -452,11 +438,10 @@ Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, boo break; } - if (ms) - { + if (ms) { if (arrayed) addCapability(CapabilityImageMSArray); - if (!sampled) + if (! sampled) addCapability(CapabilityStorageImageMultisample); } @@ -467,8 +452,7 @@ Id Builder::makeSampledImageType(Id imageType) { // try to find it Instruction* type; - for (int t = 0; t < (int)groupedTypes[OpTypeSampledImage].size(); ++t) - { + for (int t = 0; t < (int)groupedTypes[OpTypeSampledImage].size(); ++t) { type = groupedTypes[OpTypeSampledImage][t]; if (type->getIdOperand(0) == imageType) return type->getResultId(); @@ -597,16 +581,20 @@ Id Builder::getContainedTypeId(Id typeId, int member) const } // Return the immediately contained type of a given composite type. -Id Builder::getContainedTypeId(Id typeId) const { return getContainedTypeId(typeId, 0); } +Id Builder::getContainedTypeId(Id typeId) const +{ + return getContainedTypeId(typeId, 0); +} + // See if a scalar constant of this type has already been created, so it // can be reused rather than duplicated. (Required by the specification). Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const { Instruction* constant; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) - { + for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { constant = groupedConstants[typeClass][i]; - if (constant->getOpCode() == opcode && constant->getTypeId() == typeId && + if (constant->getOpCode() == opcode && + constant->getTypeId() == typeId && constant->getImmediateOperand(0) == value) return constant->getResultId(); } @@ -618,11 +606,12 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned valu Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const { Instruction* constant; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) - { + for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { constant = groupedConstants[typeClass][i]; - if (constant->getOpCode() == opcode && constant->getTypeId() == typeId && - constant->getImmediateOperand(0) == v1 && constant->getImmediateOperand(1) == v2) + if (constant->getOpCode() == opcode && + constant->getTypeId() == typeId && + constant->getImmediateOperand(0) == v1 && + constant->getImmediateOperand(1) == v2) return constant->getResultId(); } @@ -634,9 +623,8 @@ Id Builder::findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, // the value consumed will be a constant, so includes specialization. bool Builder::isConstantOpCode(Op opcode) const { - switch (opcode) - { - case OpUndef: + switch (opcode) { + case OpUndef: case OpConstantTrue: case OpConstantFalse: case OpConstant: @@ -673,16 +661,13 @@ Id Builder::makeBoolConstant(bool b, bool specConstant) { Id typeId = makeBoolType(); Instruction* constant; - Op opcode = specConstant ? (b ? OpSpecConstantTrue : OpSpecConstantFalse) - : (b ? OpConstantTrue : OpConstantFalse); + Op opcode = specConstant ? (b ? OpSpecConstantTrue : OpSpecConstantFalse) : (b ? OpConstantTrue : OpConstantFalse); // See if we already made it. Applies only to regular constants, because specialization constants // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) - { + if (! specConstant) { Id existing = 0; - for (int i = 0; i < (int)groupedConstants[OpTypeBool].size(); ++i) - { + for (int i = 0; i < (int)groupedConstants[OpTypeBool].size(); ++i) { constant = groupedConstants[OpTypeBool][i]; if (constant->getTypeId() == typeId && constant->getOpCode() == opcode) existing = constant->getResultId(); @@ -707,8 +692,7 @@ Id Builder::makeIntConstant(Id typeId, unsigned value, bool specConstant) // See if we already made it. Applies only to regular constants, because specialization constants // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) - { + if (! specConstant) { Id existing = findScalarConstant(OpTypeInt, opcode, typeId, value); if (existing) return existing; @@ -752,17 +736,13 @@ Id Builder::makeFloatConstant(float f, bool specConstant) { Op opcode = specConstant ? OpSpecConstant : OpConstant; Id typeId = makeFloatType(32); - union { - float fl; - unsigned int ui; - } u; + union { float fl; unsigned int ui; } u; u.fl = f; unsigned value = u.ui; // See if we already made it. Applies only to regular constants, because specialization constants // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) - { + if (! specConstant) { Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value); if (existing) return existing; @@ -781,10 +761,7 @@ Id Builder::makeDoubleConstant(double d, bool specConstant) { Op opcode = specConstant ? OpSpecConstant : OpConstant; Id typeId = makeFloatType(64); - union { - double db; - unsigned long long ull; - } u; + union { double db; unsigned long long ull; } u; u.db = d; unsigned long long value = u.ull; unsigned op1 = value & 0xFFFFFFFF; @@ -792,8 +769,7 @@ Id Builder::makeDoubleConstant(double d, bool specConstant) // See if we already made it. Applies only to regular constants, because specialization constants // must remain distinct for the purpose of applying a SpecId decoration. - if (!specConstant) - { + if (! specConstant) { Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, op1, op2); if (existing) return existing; @@ -813,8 +789,7 @@ Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const { Instruction* constant = 0; bool found = false; - for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) - { + for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) { constant = groupedConstants[typeClass][i]; // same shape? @@ -823,16 +798,13 @@ Id Builder::findCompositeConstant(Op typeClass, std::vector& comps) const // same contents? bool mismatch = false; - for (int op = 0; op < constant->getNumOperands(); ++op) - { - if (constant->getIdOperand(op) != comps[op]) - { + for (int op = 0; op < constant->getNumOperands(); ++op) { + if (constant->getIdOperand(op) != comps[op]) { mismatch = true; break; } } - if (!mismatch) - { + if (! mismatch) { found = true; break; } @@ -848,8 +820,7 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector& members, bool spec assert(typeId); Op typeClass = getTypeClass(typeId); - switch (typeClass) - { + switch (typeClass) { case OpTypeVector: case OpTypeArray: case OpTypeStruct: @@ -860,8 +831,7 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector& members, bool spec return makeFloatConstant(0.0); } - if (!specConstant) - { + if (! specConstant) { Id existing = findCompositeConstant(typeClass, members); if (existing) return existing; @@ -890,8 +860,7 @@ Instruction* Builder::addEntryPoint(ExecutionModel model, Function* function, co } // Currently relying on the fact that all 'value' of interest are small non-negative values. -void Builder::addExecutionMode(Function* entryPoint, ExecutionMode mode, int value1, int value2, - int value3) +void Builder::addExecutionMode(Function* entryPoint, ExecutionMode mode, int value1, int value2, int value3) { Instruction* instr = new Instruction(OpExecutionMode); instr->addIdOperand(entryPoint->getId()); @@ -964,7 +933,7 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat // Comments in header Function* Builder::makeEntrypoint(const char* entryPoint) { - assert(!mainFunction); + assert(! mainFunction); Block* entry; std::vector params; @@ -977,8 +946,7 @@ Function* Builder::makeEntrypoint(const char* entryPoint) // Comments in header Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const char* name, - const std::vector& paramTypes, - const std::vector& precisions, Block** entry) + const std::vector& paramTypes, const std::vector& precisions, Block **entry) { // Make the function and initial instructions in it Id typeId = makeFunctionType(returnType, paramTypes); @@ -991,8 +959,7 @@ Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const setPrecision(firstParamId + p, precisions[p]); // CFG - if (entry) - { + if (entry) { *entry = new Block(getUniqueId(), *function); function->addBlock(*entry); setBuildPoint(*entry); @@ -1009,16 +976,14 @@ Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const // Comments in header void Builder::makeReturn(bool implicit, Id retVal) { - if (retVal) - { + if (retVal) { Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue); inst->addIdOperand(retVal); buildPoint->addInstruction(std::unique_ptr(inst)); } else - buildPoint->addInstruction( - std::unique_ptr(new Instruction(NoResult, NoType, OpReturn))); + buildPoint->addInstruction(std::unique_ptr(new Instruction(NoResult, NoType, OpReturn))); - if (!implicit) + if (! implicit) createAndSetNoPredecessorBlock("post-return"); } @@ -1030,12 +995,10 @@ void Builder::leaveFunction() assert(block); // If our function did not contain a return, add a return void now. - if (!block->isTerminated()) - { + if (! block->isTerminated()) { if (function.getReturnType() == makeVoidType()) makeReturn(true); - else - { + else { makeReturn(true, createUndefined(function.getReturnType())); } } @@ -1055,8 +1018,7 @@ Id Builder::createVariable(StorageClass storageClass, Id type, const char* name) Instruction* inst = new Instruction(getUniqueId(), pointerType, OpVariable); inst->addImmediateOperand(storageClass); - switch (storageClass) - { + switch (storageClass) { case StorageClassFunction: // Validation rules require the declaration in the entry block buildPoint->getParent().addLocalVariable(std::unique_ptr(inst)); @@ -1077,9 +1039,9 @@ Id Builder::createVariable(StorageClass storageClass, Id type, const char* name) // Comments in header Id Builder::createUndefined(Id type) { - Instruction* inst = new Instruction(getUniqueId(), type, OpUndef); - buildPoint->addInstruction(std::unique_ptr(inst)); - return inst->getResultId(); + Instruction* inst = new Instruction(getUniqueId(), type, OpUndef); + buildPoint->addInstruction(std::unique_ptr(inst)); + return inst->getResultId(); } // Comments in header @@ -1108,10 +1070,8 @@ Id Builder::createAccessChain(StorageClass storageClass, Id base, std::vector 0); typeId = getContainedTypeId(typeId); - for (int i = 0; i < (int)offsets.size(); ++i) - { - if (isStructType(typeId)) - { + for (int i = 0; i < (int)offsets.size(); ++i) { + if (isStructType(typeId)) { assert(isConstantScalar(offsets[i])); typeId = getContainedTypeId(typeId, getConstantScalar(offsets[i])); } else @@ -1181,8 +1141,7 @@ Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, unsigned i return insert->getResultId(); } -Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, - std::vector& indexes) +Id Builder::createCompositeInsert(Id object, Id composite, Id typeId, std::vector& indexes) { Instruction* insert = new Instruction(getUniqueId(), typeId, OpCompositeInsert); insert->addIdOperand(object); @@ -1345,8 +1304,7 @@ Id Builder::createFunctionCall(spv::Function* function, std::vector& ar } // Comments in header -Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, - std::vector& channels) +Id Builder::createRvalueSwizzle(Decoration precision, Id typeId, Id source, std::vector& channels) { if (channels.size() == 1) return setPrecision(createCompositeExtract(source, typeId, channels.front()), precision); @@ -1404,11 +1362,9 @@ void Builder::promoteScalar(Decoration precision, Id& left, Id& right) int direction = getNumComponents(right) - getNumComponents(left); if (direction > 0) - left = - smearScalar(precision, left, makeVectorType(getTypeId(left), getNumComponents(right))); + left = smearScalar(precision, left, makeVectorType(getTypeId(left), getNumComponents(right))); else if (direction < 0) - right = - smearScalar(precision, right, makeVectorType(getTypeId(right), getNumComponents(left))); + right = smearScalar(precision, right, makeVectorType(getTypeId(right), getNumComponents(left))); return; } @@ -1462,9 +1418,7 @@ Id Builder::createBuiltinCall(Id resultType, Id builtins, int entryPoint, std::v // Accept all parameters needed to create a texture instruction. // Create the correct instruction based on the inputs, and make the call. -Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, - bool proj, bool gather, bool noImplicitLod, - const TextureParameters& parameters) +Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, bool gather, bool noImplicitLod, const TextureParameters& parameters) { static const int maxTextureArgs = 10; Id texArgs[maxTextureArgs] = {}; @@ -1484,36 +1438,30 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, // // Set up the optional arguments // - int optArgNum = - numArgs; // track which operand, if it exists, is the mask of optional arguments - ++numArgs; // speculatively make room for the mask operand - ImageOperandsMask mask = ImageOperandsMaskNone; // the mask operand - if (parameters.bias) - { + int optArgNum = numArgs; // track which operand, if it exists, is the mask of optional arguments + ++numArgs; // speculatively make room for the mask operand + ImageOperandsMask mask = ImageOperandsMaskNone; // the mask operand + if (parameters.bias) { mask = (ImageOperandsMask)(mask | ImageOperandsBiasMask); texArgs[numArgs++] = parameters.bias; } - if (parameters.lod) - { + if (parameters.lod) { mask = (ImageOperandsMask)(mask | ImageOperandsLodMask); texArgs[numArgs++] = parameters.lod; explicitLod = true; - } else if (parameters.gradX) - { + } else if (parameters.gradX) { mask = (ImageOperandsMask)(mask | ImageOperandsGradMask); texArgs[numArgs++] = parameters.gradX; texArgs[numArgs++] = parameters.gradY; explicitLod = true; - } else if (noImplicitLod && !fetch && !gather) - { + } else if (noImplicitLod && ! fetch && ! gather) { // have to explicitly use lod of 0 if not allowed to have them be implicit, and // we would otherwise be about to issue an implicit instruction mask = (ImageOperandsMask)(mask | ImageOperandsLodMask); texArgs[numArgs++] = makeFloatConstant(0.0); explicitLod = true; } - if (parameters.offset) - { + if (parameters.offset) { if (isConstant(parameters.offset)) mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetMask); else { @@ -1522,18 +1470,15 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, } texArgs[numArgs++] = parameters.offset; } - if (parameters.offsets) - { + if (parameters.offsets) { mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask); texArgs[numArgs++] = parameters.offsets; } - if (parameters.sample) - { + if (parameters.sample) { mask = (ImageOperandsMask)(mask | ImageOperandsSampleMask); texArgs[numArgs++] = parameters.sample; } - if (parameters.lodClamp) - { + if (parameters.lodClamp) { // capability if this bit is used addCapability(CapabilityMinLod); @@ -1549,72 +1494,69 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, // Set up the instruction // Op opCode = OpNop; // All paths below need to set this - if (fetch) - { + if (fetch) { if (sparse) opCode = OpImageSparseFetch; else opCode = OpImageFetch; - } else if (gather) - { + } else if (gather) { if (parameters.Dref) if (sparse) opCode = OpImageSparseDrefGather; else opCode = OpImageDrefGather; - else if (sparse) - opCode = OpImageSparseGather; else - opCode = OpImageGather; - } else if (explicitLod) - { - if (parameters.Dref) - { + if (sparse) + opCode = OpImageSparseGather; + else + opCode = OpImageGather; + } else if (explicitLod) { + if (parameters.Dref) { if (proj) if (sparse) opCode = OpImageSparseSampleProjDrefExplicitLod; else opCode = OpImageSampleProjDrefExplicitLod; - else if (sparse) - opCode = OpImageSparseSampleDrefExplicitLod; else - opCode = OpImageSampleDrefExplicitLod; - } else - { + if (sparse) + opCode = OpImageSparseSampleDrefExplicitLod; + else + opCode = OpImageSampleDrefExplicitLod; + } else { if (proj) if (sparse) opCode = OpImageSparseSampleProjExplicitLod; else opCode = OpImageSampleProjExplicitLod; - else if (sparse) - opCode = OpImageSparseSampleExplicitLod; else - opCode = OpImageSampleExplicitLod; + if (sparse) + opCode = OpImageSparseSampleExplicitLod; + else + opCode = OpImageSampleExplicitLod; } - } else - { - if (parameters.Dref) - { + } else { + if (parameters.Dref) { if (proj) if (sparse) opCode = OpImageSparseSampleProjDrefImplicitLod; else opCode = OpImageSampleProjDrefImplicitLod; - else if (sparse) - opCode = OpImageSparseSampleDrefImplicitLod; else - opCode = OpImageSampleDrefImplicitLod; - } else - { + if (sparse) + opCode = OpImageSparseSampleDrefImplicitLod; + else + opCode = OpImageSampleDrefImplicitLod; + } else { if (proj) if (sparse) opCode = OpImageSparseSampleProjImplicitLod; else opCode = OpImageSampleProjImplicitLod; - else if (sparse) - opCode = OpImageSparseSampleImplicitLod; else - opCode = OpImageSampleImplicitLod; + if (sparse) + opCode = OpImageSparseSampleImplicitLod; + else + opCode = OpImageSampleImplicitLod; } } @@ -1622,10 +1564,8 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, // 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) - { + if (! isScalarType(resultType)) { + switch (opCode) { case OpImageSampleDrefImplicitLod: case OpImageSampleDrefExplicitLod: case OpImageSampleProjDrefImplicitLod: @@ -1640,8 +1580,7 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, Id typeId0 = 0; Id typeId1 = 0; - if (sparse) - { + if (sparse) { typeId0 = resultType; typeId1 = getDerefTypeId(parameters.texelOut); resultType = makeStructResultType(typeId0, typeId1); @@ -1660,8 +1599,7 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, Id resultId = textureInst->getResultId(); - if (sparse) - { + if (sparse) { // set capability addCapability(CapabilitySparseResidency); @@ -1669,8 +1607,7 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, createStore(createCompositeExtract(resultId, typeId1, 1), parameters.texelOut); resultId = createCompositeExtract(resultId, typeId0, 0); setPrecision(resultId, precision); - } else - { + } else { // When a smear is needed, do it, as per what was computed // above when resultType was changed to a scalar type. if (resultType != smearedType) @@ -1688,14 +1625,12 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter // Figure out the result type Id resultType = 0; - switch (opCode) - { + switch (opCode) { case OpImageQuerySize: case OpImageQuerySizeLod: { int numComponents = 0; - switch (getTypeDimensionality(getImageType(parameters.sampler))) - { + switch (getTypeDimensionality(getImageType(parameters.sampler))) { case Dim1D: case DimBuffer: numComponents = 1; @@ -1759,14 +1694,12 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b // Scalars and Vectors - if (isScalarType(valueType) || isVectorType(valueType)) - { + if (isScalarType(valueType) || isVectorType(valueType)) { assert(valueType == getTypeId(value2)); // These just need a single comparison, just have // to figure out what it is. Op op; - switch (getMostBasicTypeClass(valueType)) - { + switch (getMostBasicTypeClass(valueType)) { case OpTypeFloat: op = equal ? OpFOrdEqual : OpFOrdNotEqual; break; @@ -1780,12 +1713,10 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b break; } - if (isScalarType(valueType)) - { + if (isScalarType(valueType)) { // scalar resultId = createBinOp(op, boolType, value1, value2); - } else - { + } else { // vector resultId = createBinOp(op, makeVectorType(boolType, numConstituents), value1, value2); setPrecision(resultId, precision); @@ -1801,8 +1732,7 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b assert(isAggregateType(valueType) || isMatrixType(valueType)); // Compare each pair of constituents - for (int constituent = 0; constituent < numConstituents; ++constituent) - { + for (int constituent = 0; constituent < numConstituents; ++constituent) { std::vector indexes(1, constituent); Id constituentType1 = getContainedTypeId(getTypeId(value1), constituent); Id constituentType2 = getContainedTypeId(getTypeId(value2), constituent); @@ -1814,9 +1744,7 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b if (constituent == 0) resultId = subResultId; else - resultId = setPrecision( - createBinOp(equal ? OpLogicalAnd : OpLogicalOr, boolType, resultId, subResultId), - precision); + resultId = setPrecision(createBinOp(equal ? OpLogicalAnd : OpLogicalOr, boolType, resultId, subResultId), precision); } return resultId; @@ -1825,8 +1753,7 @@ Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, b // OpCompositeConstruct Id Builder::createCompositeConstruct(Id typeId, std::vector& constituents) { - assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && - getNumTypeConstituents(typeId) == (int)constituents.size())); + assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && getNumTypeConstituents(typeId) == (int)constituents.size())); if (generatingOpCodeForSpecConst) { // Sometime, even in spec-constant-op mode, the constant composite to be @@ -1864,19 +1791,16 @@ Id Builder::createConstructor(Decoration precision, const std::vector& sourc Id scalarTypeId = getScalarTypeId(resultTypeId); std::vector constituents; // accumulate the arguments for OpCompositeConstruct - for (unsigned int i = 0; i < sources.size(); ++i) - { - assert(!isAggregate(sources[i])); + for (unsigned int i = 0; i < sources.size(); ++i) { + assert(! isAggregate(sources[i])); unsigned int sourceSize = getNumComponents(sources[i]); unsigned int sourcesToUse = sourceSize; if (sourcesToUse + targetComponent > numTargetComponents) sourcesToUse = numTargetComponents - targetComponent; - for (unsigned int s = 0; s < sourcesToUse; ++s) - { + for (unsigned int s = 0; s < sourcesToUse; ++s) { Id arg = sources[i]; - if (sourceSize > 1) - { + if (sourceSize > 1) { std::vector swiz; swiz.push_back(s); arg = createRvalueSwizzle(precision, scalarTypeId, arg, swiz); @@ -1900,8 +1824,7 @@ Id Builder::createConstructor(Decoration precision, const std::vector& sourc } // Comments in header -Id Builder::createMatrixConstructor(Decoration precision, const std::vector& sources, - Id resultTypeId) +Id Builder::createMatrixConstructor(Decoration precision, const std::vector& sources, Id resultTypeId) { Id componentTypeId = getScalarTypeId(resultTypeId); int numCols = getTypeNumColumns(resultTypeId); @@ -1930,49 +1853,39 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } // modify components as dictated by the arguments - if (sources.size() == 1 && isScalar(sources[0])) - { + if (sources.size() == 1 && isScalar(sources[0])) { // a single scalar; resets the diagonals for (int col = 0; col < 4; ++col) ids[col][col] = sources[0]; - } else if (isMatrix(sources[0])) - { - // constructing from another matrix; copy over the parts that exist in both the argument and - // constructee + } else if (isMatrix(sources[0])) { + // constructing from another matrix; copy over the parts that exist in both the argument and constructee Id matrix = sources[0]; int minCols = std::min(numCols, getNumColumns(matrix)); int minRows = std::min(numRows, getNumRows(matrix)); - for (int col = 0; col < minCols; ++col) - { + for (int col = 0; col < minCols; ++col) { std::vector indexes; indexes.push_back(col); - for (int row = 0; row < minRows; ++row) - { + for (int row = 0; row < minRows; ++row) { indexes.push_back(row); ids[col][row] = createCompositeExtract(matrix, componentTypeId, indexes); indexes.pop_back(); setPrecision(ids[col][row], precision); } } - } else - { + } else { // fill in the matrix in column-major order with whatever argument components are available int row = 0; int col = 0; - for (int arg = 0; arg < (int)sources.size(); ++arg) - { + for (int arg = 0; arg < (int)sources.size(); ++arg) { Id argComp = sources[arg]; - for (int comp = 0; comp < getNumComponents(sources[arg]); ++comp) - { - if (getNumComponents(sources[arg]) > 1) - { + for (int comp = 0; comp < getNumComponents(sources[arg]); ++comp) { + if (getNumComponents(sources[arg]) > 1) { argComp = createCompositeExtract(sources[arg], componentTypeId, comp); setPrecision(argComp, precision); } ids[col][row++] = argComp; - if (row == numRows) - { + if (row == numRows) { row = 0; col++; } @@ -1980,14 +1893,14 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } } + // Step 2: Construct a matrix from that array. // First make the column vectors, then make the matrix. // make the column vectors Id columnTypeId = getContainedTypeId(resultTypeId); std::vector matrixColumns; - for (int col = 0; col < numCols; ++col) - { + for (int col = 0; col < numCols; ++col) { std::vector vectorComponents; for (int row = 0; row < numRows; ++row) vectorComponents.push_back(ids[col][row]); @@ -2001,7 +1914,10 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector& } // Comments in header -Builder::If::If(Id cond, Builder& gb) : builder(gb), condition(cond), elseBlock(0) +Builder::If::If(Id cond, Builder& gb) : + builder(gb), + condition(cond), + elseBlock(0) { function = &builder.getBuildPoint()->getParent(); @@ -2053,8 +1969,7 @@ void Builder::If::makeEndIf() } // Comments in header -void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseValues, - std::vector& valueIndexToSegment, int defaultSegment, +void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseValues, std::vector& valueIndexToSegment, int defaultSegment, std::vector& segmentBlocks) { Function& function = buildPoint->getParent(); @@ -2074,8 +1989,7 @@ void Builder::makeSwitch(Id selector, int numSegments, std::vector& caseVal auto defaultOrMerge = (defaultSegment >= 0) ? segmentBlocks[defaultSegment] : mergeBlock; switchInst->addIdOperand(defaultOrMerge->getId()); defaultOrMerge->addPredecessor(buildPoint); - for (int i = 0; i < (int)caseValues.size(); ++i) - { + for (int i = 0; i < (int)caseValues.size(); ++i) { switchInst->addImmediateOperand(caseValues[i]); switchInst->addIdOperand(segmentBlocks[valueIndexToSegment[i]]->getId()); segmentBlocks[valueIndexToSegment[i]]->addPredecessor(buildPoint); @@ -2098,10 +2012,9 @@ void Builder::addSwitchBreak() void Builder::nextSwitchSegment(std::vector& segmentBlock, int nextSegment) { int lastSegment = nextSegment - 1; - if (lastSegment >= 0) - { + if (lastSegment >= 0) { // Close out previous segment by jumping, if necessary, to next segment - if (!buildPoint->isTerminated()) + if (! buildPoint->isTerminated()) createBranch(segmentBlock[nextSegment]); } Block* block = segmentBlock[nextSegment]; @@ -2113,7 +2026,7 @@ void Builder::nextSwitchSegment(std::vector& segmentBlock, int nextSegme void Builder::endSwitch(std::vector& /*segmentBlock*/) { // Close out previous segment by jumping, if necessary, to next segment - if (!buildPoint->isTerminated()) + if (! buildPoint->isTerminated()) addSwitchBreak(); switchMerges.top()->getParent().addBlock(switchMerges.top()); @@ -2152,7 +2065,11 @@ void Builder::createLoopExit() createAndSetNoPredecessorBlock("post-loop-break"); } -void Builder::closeLoop() { loops.pop(); } +void Builder::closeLoop() +{ + loops.pop(); +} + void Builder::clearAccessChain() { accessChain.base = NoResult; @@ -2173,12 +2090,10 @@ void Builder::accessChainPushSwizzle(std::vector& swizzle, Id preSwizz accessChain.preSwizzleBaseType = preSwizzleBaseType; // if needed, propagate the swizzle for the current access chain - if (accessChain.swizzle.size()) - { + if (accessChain.swizzle.size()) { std::vector oldSwizzle = accessChain.swizzle; accessChain.swizzle.resize(0); - for (unsigned int i = 0; i < swizzle.size(); ++i) - { + for (unsigned int i = 0; i < swizzle.size(); ++i) { accessChain.swizzle.push_back(oldSwizzle[swizzle[i]]); } } else @@ -2202,19 +2117,15 @@ void Builder::accessChainStore(Id rvalue) // If swizzle still exists, it is out-of-order or not full, we must load the target vector, // extract and insert elements to perform writeMask and/or swizzle. Id source = NoResult; - if (accessChain.swizzle.size()) - { + if (accessChain.swizzle.size()) { Id tempBaseId = createLoad(base); - source = - createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle); + source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle); } // dynamic component selection - if (accessChain.component != NoResult) - { + if (accessChain.component != NoResult) { Id tempBaseId = (source == NoResult) ? createLoad(base) : source; - source = createVectorInsertDynamic(tempBaseId, getTypeId(tempBaseId), rvalue, - accessChain.component); + source = createVectorInsertDynamic(tempBaseId, getTypeId(tempBaseId), rvalue, accessChain.component); } if (source == NoResult) @@ -2228,25 +2139,19 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) { Id id; - if (accessChain.isRValue) - { + if (accessChain.isRValue) { // transfer access chain, but keep it static, so we can stay in registers transferAccessChainSwizzle(false); - if (accessChain.indexChain.size() > 0) - { - Id swizzleBase = accessChain.preSwizzleBaseType != NoType - ? accessChain.preSwizzleBaseType - : resultType; + if (accessChain.indexChain.size() > 0) { + Id swizzleBase = accessChain.preSwizzleBaseType != NoType ? accessChain.preSwizzleBaseType : resultType; // if all the accesses are constants, we can use OpCompositeExtract std::vector indexes; bool constant = true; - for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) - { + for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) { if (isConstantScalar(accessChain.indexChain[i])) indexes.push_back(getConstantScalar(accessChain.indexChain[i])); - else - { + else { constant = false; break; } @@ -2254,11 +2159,9 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) if (constant) id = createCompositeExtract(accessChain.base, swizzleBase, indexes); - else - { + else { // make a new function variable for this r-value - Id lValue = - createVariable(StorageClassFunction, getTypeId(accessChain.base), "indexable"); + Id lValue = createVariable(StorageClassFunction, getTypeId(accessChain.base), "indexable"); // store into it createStore(accessChain.base, lValue); @@ -2273,8 +2176,7 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) setPrecision(id, precision); } else id = accessChain.base; // no precision, it was set when this was defined - } else - { + } else { transferAccessChainSwizzle(true); // load through the access chain id = createLoad(collapseAccessChain()); @@ -2287,8 +2189,7 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) // Do remaining swizzling // First, static swizzling - if (accessChain.swizzle.size()) - { + if (accessChain.swizzle.size()) { // static swizzle Id swizzledType = getScalarTypeId(getTypeId(id)); if (accessChain.swizzle.size() > 1) @@ -2298,8 +2199,7 @@ Id Builder::accessChainLoad(Decoration precision, Id resultType) // dynamic single-component selection if (accessChain.component != NoResult) - id = setPrecision(createVectorExtractDynamic(id, resultType, accessChain.component), - precision); + id = setPrecision(createVectorExtractDynamic(id, resultType, accessChain.component), precision); return id; } @@ -2329,12 +2229,11 @@ Id Builder::accessChainGetInferredType() Id type = getTypeId(accessChain.base); // do initial dereference - if (!accessChain.isRValue) + if (! accessChain.isRValue) type = getContainedTypeId(type); // dereference each index - for (auto it = accessChain.indexChain.cbegin(); it != accessChain.indexChain.cend(); ++it) - { + for (auto it = accessChain.indexChain.cbegin(); it != accessChain.indexChain.cend(); ++it) { if (isStructType(type)) type = getContainedTypeId(type, getConstantScalar(*it)); else @@ -2355,29 +2254,26 @@ Id Builder::accessChainGetInferredType() } // comment in header -void Builder::eliminateDeadDecorations() -{ +void Builder::eliminateDeadDecorations() { std::unordered_set reachable_blocks; std::unordered_set unreachable_definitions; // Collect IDs defined in unreachable blocks. For each function, label the // reachable blocks first. Then for each unreachable block, collect the // result IDs of the instructions in it. for (std::vector::const_iterator fi = module.getFunctions().cbegin(); - fi != module.getFunctions().cend(); fi++) - { + fi != module.getFunctions().cend(); fi++) { Function* f = *fi; Block* entry = f->getEntryBlock(); - inReadableOrder(entry, [&reachable_blocks](const Block* b) { reachable_blocks.insert(b); }); + inReadableOrder(entry, [&reachable_blocks](const Block* b) { + reachable_blocks.insert(b); + }); for (std::vector::const_iterator bi = f->getBlocks().cbegin(); - bi != f->getBlocks().cend(); bi++) - { + bi != f->getBlocks().cend(); bi++) { Block* b = *bi; - if (!reachable_blocks.count(b)) - { - for (std::vector >::const_iterator ii = - b->getInstructions().cbegin(); - ii != b->getInstructions().cend(); ii++) - { + if (!reachable_blocks.count(b)) { + for (std::vector >::const_iterator + ii = b->getInstructions().cbegin(); + ii != b->getInstructions().cend(); ii++) { Instruction* i = ii->get(); unreachable_definitions.insert(i->getResultId()); } @@ -2403,8 +2299,7 @@ void Builder::dump(std::vector& out) const out.push_back(0); // Capabilities - for (auto it = capabilities.cbegin(); it != capabilities.cend(); ++it) - { + for (auto it = capabilities.cbegin(); it != capabilities.cend(); ++it) { Instruction capInst(0, 0, OpCapability); capInst.addImmediateOperand(*it); capInst.dump(out); @@ -2423,15 +2318,13 @@ void Builder::dump(std::vector& out) const dumpInstructions(out, executionModes); // Debug instructions - if (source != SourceLanguageUnknown) - { + if (source != SourceLanguageUnknown) { Instruction sourceInst(0, 0, OpSource); sourceInst.addImmediateOperand(source); sourceInst.addImmediateOperand(sourceVersion); sourceInst.dump(out); } - for (int e = 0; e < (int)extensions.size(); ++e) - { + for (int e = 0; e < (int)extensions.size(); ++e) { Instruction extInst(0, 0, OpSourceExtension); extInst.addStringOperand(extensions[e]); extInst.dump(out); @@ -2462,14 +2355,10 @@ Id Builder::collapseAccessChain() { assert(accessChain.isRValue == false); - if (accessChain.indexChain.size() > 0) - { - if (accessChain.instr == 0) - { - StorageClass storageClass = - (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); - accessChain.instr = - createAccessChain(storageClass, accessChain.base, accessChain.indexChain); + if (accessChain.indexChain.size() > 0) { + if (accessChain.instr == 0) { + StorageClass storageClass = (StorageClass)module.getStorageClass(getTypeId(accessChain.base)); + accessChain.instr = createAccessChain(storageClass, accessChain.base, accessChain.indexChain); } return accessChain.instr; @@ -2489,8 +2378,7 @@ void Builder::simplifyAccessChainSwizzle() return; // if components are out of order, it is a swizzle - for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) - { + for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) { if (i != accessChain.swizzle[i]) return; } @@ -2526,8 +2414,7 @@ void Builder::transferAccessChainSwizzle(bool dynamic) if (isBoolType(getContainedTypeId(accessChain.preSwizzleBaseType))) return; - if (accessChain.swizzle.size() == 1) - { + if (accessChain.swizzle.size() == 1) { // handle static component accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle.front())); accessChain.swizzle.clear(); @@ -2535,8 +2422,7 @@ void Builder::transferAccessChainSwizzle(bool dynamic) // component, so don't bother even looking at accessChain.component accessChain.preSwizzleBaseType = NoType; accessChain.component = NoResult; - } else if (dynamic && accessChain.component != NoResult) - { + } else if (dynamic && accessChain.component != NoResult) { // handle dynamic component accessChain.indexChain.push_back(accessChain.component); accessChain.preSwizzleBaseType = NoType; @@ -2554,7 +2440,7 @@ void Builder::createAndSetNoPredecessorBlock(const char* /*name*/) buildPoint->getParent().addBlock(block); setBuildPoint(block); - // if (name) + //if (name) // addName(block->getId(), name); } @@ -2595,11 +2481,9 @@ void Builder::createConditionalBranch(Id condition, Block* thenBlock, Block* els elseBlock->addPredecessor(buildPoint); } -void Builder::dumpInstructions(std::vector& out, - const std::vector >& instructions) const +void Builder::dumpInstructions(std::vector& out, const std::vector >& instructions) const { - for (int i = 0; i < (int)instructions.size(); ++i) - { + for (int i = 0; i < (int)instructions.size(); ++i) { instructions[i]->dump(out); } } diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index e577ddfb..01cd6038 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -79,8 +79,10 @@ public: } void addCapability(spv::Capability cap) { capabilities.insert(cap); } + // To get a new for anything needing a new one. Id getUniqueId() { return ++uniqueId; } + // To get a set of new s, e.g., for a set of function parameters Id getUniqueIds(int numIds) { @@ -93,7 +95,7 @@ public: Id makeVoidType(); Id makeBoolType(); Id makePointer(StorageClass, Id type); - Id makeIntegerType(int width, bool hasSign); // generic + Id makeIntegerType(int width, bool hasSign); // generic Id makeIntType(int width) { return makeIntegerType(width, true); } Id makeUintType(int width) { return makeIntegerType(width, false); } Id makeFloatType(int width); @@ -104,8 +106,7 @@ public: Id makeArrayType(Id element, Id sizeId, int stride); // 0 stride means no stride decoration Id makeRuntimeArray(Id element); Id makeFunctionType(Id returnType, const std::vector& paramTypes); - Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, - ImageFormat format); + Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format); Id makeSamplerType(); Id makeSampledImageType(Id imageType); @@ -122,36 +123,27 @@ public: Id getContainedTypeId(Id typeId) const; Id getContainedTypeId(Id typeId, int) const; StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); } - ImageFormat getImageTypeFormat(Id typeId) const - { - return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); - } + ImageFormat getImageTypeFormat(Id typeId) const { return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); } - bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } - bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } - bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); } - bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); } - bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } + bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } + bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } + bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); } + bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); } + bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); } - bool isBoolType(Id typeId) const - { - return groupedTypes[OpTypeBool].size() > 0 && - typeId == groupedTypes[OpTypeBool].back()->getResultId(); - } - bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } - bool isScalarType(Id typeId) const - { - return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || - getTypeClass(typeId) == OpTypeBool; - } - bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } - bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; } - bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; } - bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; } - bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); } - bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; } - bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } + + bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } + bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } + bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; } + bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } + bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; } + bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; } + bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; } + bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); } + bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; } + bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; } + bool isConstantOpCode(Op opcode) const; bool isSpecConstantOpCode(Op opcode) const; bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); } @@ -172,6 +164,7 @@ public: return getNumTypeComponents(getContainedTypeId(typeId)); } int getNumRows(Id resultId) const { return getTypeNumRows(getTypeId(resultId)); } + Dim getTypeDimensionality(Id typeId) const { assert(isImageType(typeId)); @@ -203,8 +196,7 @@ public: // Methods for adding information outside the CFG. Instruction* addEntryPoint(ExecutionModel, Function*, const char* name); - void addExecutionMode(Function*, ExecutionMode mode, int value1 = -1, int value2 = -1, - int value3 = -1); + void addExecutionMode(Function*, ExecutionMode mode, int value1 = -1, int value2 = -1, int value3 = -1); void addName(Id, const char* name); void addMemberName(Id, int member, const char* name); void addLine(Id target, Id fileName, int line, int column); @@ -222,9 +214,8 @@ public: // Make a shader-style function, and create its entry block if entry is non-zero. // Return the function, pass back the entry. // The returned pointer is only valid for the lifetime of this builder. - Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name, - const std::vector& paramTypes, - const std::vector& precisions, Block** entry = 0); + Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name, const std::vector& paramTypes, + const std::vector& precisions, Block **entry = 0); // 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. @@ -277,8 +268,7 @@ public: // Take an rvalue (source) and a set of channels to extract from it to // make a new rvalue, which is returned. - Id createRvalueSwizzle(Decoration precision, Id typeId, Id source, - std::vector& channels); + Id createRvalueSwizzle(Decoration precision, Id typeId, Id source, std::vector& channels); // Take a copy of an lvalue (target) and a source of components, and set the // source components into the lvalue where the 'channels' say to put them. @@ -304,11 +294,10 @@ public: // - promoteScalar(scalar, scalar) // do nothing // Other forms are not allowed. // - // Generally, the type of 'scalar' does not need to be the same type as the components in - // 'vector'. + // Generally, the type of 'scalar' does not need to be the same type as the components in 'vector'. // The type of the created vector is a vector of components of the same type as the scalar. // - // Note: One of the arguments will change, with the result coming back that way rather than + // Note: One of the arguments will change, with the result coming back that way rather than // through the return value. void promoteScalar(Decoration precision, Id& left, Id& right); @@ -338,8 +327,7 @@ public: }; // Select the correct texture operation based on all inputs, and emit the correct instruction - Id createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, - bool gather, bool noImplicit, const TextureParameters&); + Id createTextureCall(Decoration precision, Id resultType, bool sparse, bool fetch, bool proj, bool gather, bool noImplicit, const TextureParameters&); // Emit the OpTextureQuery* instruction that was passed in. // Figure out the right return value and type, and return it. @@ -351,8 +339,7 @@ public: Id createBitFieldInsertCall(Decoration precision, Id, Id, Id, Id); // Reduction comparison for composites: For equal and not-equal resulting in a scalar. - Id createCompositeCompare(Decoration precision, Id, Id, - bool /* true if for equal, false if for not-equal */); + Id createCompositeCompare(Decoration precision, Id, Id, bool /* true if for equal, false if for not-equal */); // OpCompositeConstruct Id createCompositeConstruct(Id typeId, std::vector& constituents); @@ -361,14 +348,14 @@ public: Id createConstructor(Decoration precision, const std::vector& sources, Id resultTypeId); // matrix constructor - Id createMatrixConstructor(Decoration precision, const std::vector& sources, - Id constructee); + Id createMatrixConstructor(Decoration precision, const std::vector& sources, Id constructee); // Helper to use for building nested control flow with if-then-else. class If { public: If(Id condition, Builder& builder); ~If() {} + void makeBeginElse(); void makeEndIf(); @@ -397,8 +384,7 @@ public: // Returns the right set of basic blocks to start each code segment with, so that the caller's // recursion stack can hold the memory for it. // - void makeSwitch(Id condition, int numSegments, std::vector& caseValues, - std::vector& valueToSegment, int defaultSegment, + void makeSwitch(Id condition, int numSegments, std::vector& caseValues, std::vector& valueToSegment, int defaultSegment, std::vector& segmentBB); // return argument // Add a branch to the innermost switch's merge block. @@ -464,16 +450,13 @@ public: // struct AccessChain { - Id base; // for l-values, pointer to the base object, for r-values, the base object + Id base; // for l-values, pointer to the base object, for r-values, the base object std::vector indexChain; - Id instr; // cache the instruction that generates this access chain - std::vector - swizzle; // each std::vector element selects the next GLSL component number - Id component; // a dynamic component index, can coexist with a swizzle, done after the - // swizzle, NoResult if not present - Id preSwizzleBaseType; // dereferenced type, before swizzle or component is applied; NoType - // unless a swizzle or component is present - bool isRValue; // true if 'base' is an r-value, otherwise, base is an l-value + Id instr; // cache the instruction that generates this access chain + std::vector swizzle; // each std::vector element selects the next GLSL component number + Id component; // a dynamic component index, can coexist with a swizzle, done after the swizzle, NoResult if not present + Id preSwizzleBaseType; // dereferenced type, before swizzle or component is applied; NoType unless a swizzle or component is present + bool isRValue; // true if 'base' is an r-value, otherwise, base is an l-value }; // @@ -484,6 +467,7 @@ public: // for external save and restore AccessChain getAccessChain() { return accessChain; } void setAccessChain(AccessChain newChain) { accessChain = newChain; } + // clear accessChain void clearAccessChain(); @@ -502,7 +486,11 @@ public: } // push offset onto the end of the chain - void accessChainPush(Id offset) { accessChain.indexChain.push_back(offset); } + void accessChainPush(Id offset) + { + accessChain.indexChain.push_back(offset); + } + // push new swizzle onto the end of any existing swizzle, merging into a single swizzle void accessChainPushSwizzle(std::vector& swizzle, Id preSwizzleBaseType); @@ -554,8 +542,7 @@ public: void simplifyAccessChainSwizzle(); void createAndSetNoPredecessorBlock(const char*); void createSelectionMerge(Block* mergeBlock, unsigned int control); - void dumpInstructions(std::vector&, - const std::vector >&) const; + void dumpInstructions(std::vector&, const std::vector >&) const; SourceLanguage source; int sourceVersion; @@ -582,7 +569,7 @@ public: std::vector > externals; std::vector > functions; - // not output, internally used for quick & dirty canonical (unique) creation + // not output, internally used for quick & dirty canonical (unique) creation std::vector groupedConstants[OpConstant]; // all types appear before OpConstant std::vector groupedTypes[OpConstant]; @@ -598,4 +585,4 @@ public: }; // end spv namespace -#endif // SpvBuilder_H +#endif // SpvBuilder_H From 80cb324ff603009761917672f463e26b32890b9e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 5 Jun 2016 18:52:05 -0600 Subject: [PATCH 23/48] Front-end: Fix issue #146: which versions allow double in/out. --- Test/400.vert | 9 ++++++ Test/410.vert | 9 ++++++ Test/baseResults/400.vert.out | 34 ++++++++++++++++++++++ Test/baseResults/410.vert.out | 29 ++++++++++++++++++ glslang/MachineIndependent/ParseHelper.cpp | 4 +++ gtests/AST.FromFile.cpp | 2 ++ 6 files changed, 87 insertions(+) create mode 100644 Test/400.vert create mode 100644 Test/410.vert create mode 100755 Test/baseResults/400.vert.out create mode 100755 Test/baseResults/410.vert.out diff --git a/Test/400.vert b/Test/400.vert new file mode 100644 index 00000000..2c3dd042 --- /dev/null +++ b/Test/400.vert @@ -0,0 +1,9 @@ +#version 400 core + +in double d; // ERROR, no doubles +in dvec3 d3; // ERROR, no doubles +in dmat4 dm4; // ERROR, no doubles + +void main() +{ +} diff --git a/Test/410.vert b/Test/410.vert new file mode 100644 index 00000000..0ecf4768 --- /dev/null +++ b/Test/410.vert @@ -0,0 +1,9 @@ +#version 410 core + +in double d; +in dvec3 d3; +in dmat4 dm4; + +void main() +{ +} diff --git a/Test/baseResults/400.vert.out b/Test/baseResults/400.vert.out new file mode 100755 index 00000000..946f21d5 --- /dev/null +++ b/Test/baseResults/400.vert.out @@ -0,0 +1,34 @@ +400.vert +Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:3: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 0:4: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 0:5: 'vertex-shader `double` type input' : not supported for this version or the enabled extensions +ERROR: 3 compilation errors. No code generated. + + +Shader version: 400 +ERROR: node is still EOpNull! +0:7 Function Definition: main( (global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'd' (in double) +0:? 'd3' (in 3-component vector of double) +0:? 'dm4' (in 4X4 matrix of double) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 400 +ERROR: node is still EOpNull! +0:7 Function Definition: main( (global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'd' (in double) +0:? 'd3' (in 3-component vector of double) +0:? 'dm4' (in 4X4 matrix of double) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + diff --git a/Test/baseResults/410.vert.out b/Test/baseResults/410.vert.out new file mode 100755 index 00000000..eb4f43a2 --- /dev/null +++ b/Test/baseResults/410.vert.out @@ -0,0 +1,29 @@ +410.vert +Warning, version 410 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 410 +0:? Sequence +0:7 Function Definition: main( (global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'd' (in double) +0:? 'd3' (in 3-component vector of double) +0:? 'dm4' (in 4X4 matrix of double) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + + +Linked vertex stage: + + +Shader version: 410 +0:? Sequence +0:7 Function Definition: main( (global void) +0:7 Function Parameters: +0:? Linker Objects +0:? 'd' (in double) +0:? 'd3' (in 3-component vector of double) +0:? 'dm4' (in 4X4 matrix of double) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 959d6900..eb9100bd 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -2661,6 +2661,8 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali requireProfile(loc, ~EEsProfile, "vertex input arrays"); profileRequires(loc, ENoProfile, 150, nullptr, "vertex input arrays"); } + if (publicType.basicType == EbtDouble) + profileRequires(loc, ~EEsProfile, 410, nullptr, "vertex-shader `double` type input"); if (qualifier.isAuxiliary() || qualifier.isInterpolation() || qualifier.isMemory() || qualifier.invariant) error(loc, "vertex input cannot be further qualified", "", ""); break; @@ -2735,6 +2737,8 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali error(loc, "can't use auxiliary qualifier on a fragment output", "centroid/sample/patch", ""); if (qualifier.isInterpolation()) error(loc, "can't use interpolation qualifier on a fragment output", "flat/smooth/noperspective", ""); + if (publicType.basicType == EbtDouble) + error(loc, "cannot contain a double", GetStorageQualifierString(qualifier.storage), ""); break; case EShLangCompute: diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp index 08ec919b..38d6d0ae 100644 --- a/gtests/AST.FromFile.cpp +++ b/gtests/AST.FromFile.cpp @@ -113,6 +113,8 @@ INSTANTIATE_TEST_CASE_P( "110scope.vert", "300scope.vert", "400.frag", + "400.vert", + "410.vert", "420.comp", "420.frag", "420.vert", From 880bf36cacee1cfce7d5d94991eb18c9e2d59d39 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 7 Jun 2016 16:23:44 -0700 Subject: [PATCH 24/48] Fix Ubuntu 16.10 build --- glslang/MachineIndependent/intermOut.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index d3d90c58..c37b3118 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -39,6 +39,8 @@ #ifdef _MSC_VER #include +#elif defined __ANDROID__ || defined __linux__ || __MINGW32__ || __MINGW64__ +#include #else #include #endif From a901ffed40f219c87757c1ff6dbcda3082c116bd Mon Sep 17 00:00:00 2001 From: David Neto Date: Wed, 8 Jun 2016 14:11:40 +0100 Subject: [PATCH 25/48] Defer capability decl for ClipDistance, CullDistance, PointSize until actual use The compiler will mark struct members with those builtins, but won't declare the capability until that member is accessed by some executable instruction. Test changes: - spv.430.vert: was missing ClipDistance capability. - spv.precise.tese: remove TessellationPointSize capability. --- SPIRV/GlslangToSpv.cpp | 96 ++++++++++++++++----------- Test/baseResults/spv.430.vert.out | 1 + Test/baseResults/spv.precise.tese.out | 1 - 3 files changed, 60 insertions(+), 38 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index cfbee00f..e08bff65 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -109,7 +109,7 @@ public: protected: spv::Decoration TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier); - spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool member); + spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool memberDeclaration); spv::ImageFormat TranslateImageFormat(const glslang::TType& type); spv::Id createSpvVariable(const glslang::TIntermSymbol*); spv::Id getSampledType(const glslang::TSampler&); @@ -122,7 +122,7 @@ protected: int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix); int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix); void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset, glslang::TLayoutPacking, glslang::TLayoutMatrix); - void declareClipCullCapability(const glslang::TTypeList& members, int member); + void declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember); bool isShaderEntrypoint(const glslang::TIntermAggregate* node); void makeFunctions(const glslang::TIntermSequence&); @@ -401,21 +401,28 @@ spv::Decoration TranslateNoContractionDecoration(const glslang::TQualifier& qual return (spv::Decoration)spv::BadValue; } -// Translate glslang built-in variable to SPIR-V built in decoration. -spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltInVariable builtIn, bool member) +// Translate a glslang built-in variable to a SPIR-V built in decoration. Also generate +// associated capabilities when required. For some built-in variables, a capability +// is generated only when using the variable in an executable instruction, but not when +// just declaring a struct member variable with it. This is true for PointSize, +// ClipDistance, and CullDistance. +spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltInVariable builtIn, bool memberDeclaration) { switch (builtIn) { case glslang::EbvPointSize: - switch (glslangIntermediate->getStage()) { - case EShLangGeometry: - builder.addCapability(spv::CapabilityGeometryPointSize); - break; - case EShLangTessControl: - case EShLangTessEvaluation: - builder.addCapability(spv::CapabilityTessellationPointSize); - break; - default: - break; + // Defer adding the capability until the built-in is actually used. + if (!memberDeclaration) { + switch (glslangIntermediate->getStage()) { + case EShLangGeometry: + builder.addCapability(spv::CapabilityGeometryPointSize); + break; + case EShLangTessControl: + case EShLangTessEvaluation: + builder.addCapability(spv::CapabilityTessellationPointSize); + break; + default: + break; + } } return spv::BuiltInPointSize; @@ -426,13 +433,13 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI // use needed is to trigger the capability. // case glslang::EbvClipDistance: - if (! member) - builder.addCapability(spv::CapabilityClipDistance); + if (!memberDeclaration) + builder.addCapability(spv::CapabilityClipDistance); return spv::BuiltInClipDistance; case glslang::EbvCullDistance: - if (! member) - builder.addCapability(spv::CapabilityCullDistance); + if (!memberDeclaration) + builder.addCapability(spv::CapabilityCullDistance); return spv::BuiltInCullDistance; case glslang::EbvViewportIndex: @@ -923,30 +930,34 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T // Add the next element in the chain - int index = node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); - if (node->getLeft()->getBasicType() == glslang::EbtBlock && node->getOp() == glslang::EOpIndexDirectStruct) { - // This may be, e.g., an anonymous block-member selection, which generally need - // index remapping due to hidden members in anonymous blocks. - std::vector& remapper = memberRemapper[node->getLeft()->getType().getStruct()]; - assert(remapper.size() > 0); - index = remapper[index]; - } - + const int glslangIndex = node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst(); if (! node->getLeft()->getType().isArray() && node->getLeft()->getType().isVector() && node->getOp() == glslang::EOpIndexDirect) { // This is essentially a hard-coded vector swizzle of size 1, // so short circuit the access-chain stuff with a swizzle. std::vector swizzle; - swizzle.push_back(node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst()); + swizzle.push_back(glslangIndex); builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType())); } else { - // normal case for indexing array or structure or block - builder.accessChainPush(builder.makeIntConstant(index)); + int spvIndex = glslangIndex; + if (node->getLeft()->getBasicType() == glslang::EbtBlock && + node->getOp() == glslang::EOpIndexDirectStruct) + { + // This may be, e.g., an anonymous block-member selection, which generally need + // index remapping due to hidden members in anonymous blocks. + std::vector& remapper = memberRemapper[node->getLeft()->getType().getStruct()]; + assert(remapper.size() > 0); + spvIndex = remapper[glslangIndex]; + } - // Add capabilities here for accessing clip/cull distance + // normal case for indexing array or structure or block + builder.accessChainPush(builder.makeIntConstant(spvIndex)); + + // Add capabilities here for accessing PointSize and clip/cull distance. + // We have deferred generation of associated capabilities until now. if (node->getLeft()->getType().isStruct() && ! node->getLeft()->getType().isArray()) - declareClipCullCapability(*node->getLeft()->getType().getStruct(), index); + declareUseOfStructMember(*(node->getLeft()->getType().getStruct()), glslangIndex); } } return false; @@ -2203,12 +2214,23 @@ void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structTy nextOffset = currentOffset + memberSize; } -void TGlslangToSpvTraverser::declareClipCullCapability(const glslang::TTypeList& members, int member) +void TGlslangToSpvTraverser::declareUseOfStructMember(const glslang::TTypeList& members, int glslangMember) { - if (members[member].type->getQualifier().builtIn == glslang::EbvClipDistance) - builder.addCapability(spv::CapabilityClipDistance); - if (members[member].type->getQualifier().builtIn == glslang::EbvCullDistance) - builder.addCapability(spv::CapabilityCullDistance); + const glslang::TBuiltInVariable glslangBuiltIn = members[glslangMember].type->getQualifier().builtIn; + switch (glslangBuiltIn) + { + case glslang::EbvClipDistance: + case glslang::EbvCullDistance: + case glslang::EbvPointSize: + // Generate the associated capability. Delegate to TranslateBuiltInDecoration. + // Alternately, we could just call this for any glslang built-in, since the + // capability already guards against duplicates. + TranslateBuiltInDecoration(glslangBuiltIn, false); + break; + default: + // Capabilities were already generated when the struct was declared. + break; + } } bool TGlslangToSpvTraverser::isShaderEntrypoint(const glslang::TIntermAggregate* node) diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out index f84fa556..d5332d25 100755 --- a/Test/baseResults/spv.430.vert.out +++ b/Test/baseResults/spv.430.vert.out @@ -10,6 +10,7 @@ Linked vertex stage: // Id's are bound by 66 Capability Shader + Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62 65 diff --git a/Test/baseResults/spv.precise.tese.out b/Test/baseResults/spv.precise.tese.out index 231ea333..40339812 100644 --- a/Test/baseResults/spv.precise.tese.out +++ b/Test/baseResults/spv.precise.tese.out @@ -10,7 +10,6 @@ Linked tessellation evaluation stage: // Id's are bound by 119 Capability Tessellation - Capability TessellationPointSize 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint TessellationEvaluation 4 "main" 12 21 62 112 From c24cc29d3741065ed66311408afbccea578e9553 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 8 Jun 2016 13:52:36 -0700 Subject: [PATCH 26/48] GlslangToSpv: Properly handle opaque types in TranslateStorageClass --- SPIRV/GlslangToSpv.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index e08bff65..ff96b6d5 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -227,13 +227,15 @@ spv::StorageClass TranslateStorageClass(const glslang::TType& type) return spv::StorageClassInput; else if (type.getQualifier().isPipeOutput()) return spv::StorageClassOutput; + else if (type.getBasicType() == glslang::EbtSampler) + return spv::StorageClassUniformConstant; + else if (type.getBasicType() == glslang::EbtAtomicUint) + return spv::StorageClassAtomicCounter; else if (type.getQualifier().isUniformOrBuffer()) { if (type.getQualifier().layoutPushConstant) return spv::StorageClassPushConstant; if (type.getBasicType() == glslang::EbtBlock) return spv::StorageClassUniform; - else if (type.getBasicType() == glslang::EbtAtomicUint) - return spv::StorageClassAtomicCounter; else return spv::StorageClassUniformConstant; // TODO: how are we distuingishing between default and non-default non-writable uniforms? Do default uniforms even exist? From 228546a8af51758caa9ee3c5c018780d33d6a757 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 8 Jun 2016 17:10:37 -0700 Subject: [PATCH 27/48] Types: Add an isOpaque() helper --- glslang/Include/Types.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index c4933e07..aa368340 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -1255,6 +1255,8 @@ public: virtual bool isStruct() const { return structure != nullptr; } virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble; } + virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint; } + // "Image" is a superset of "Subpass" virtual bool isImage() const { return basicType == EbtSampler && getSampler().isImage(); } virtual bool isSubpass() const { return basicType == EbtSampler && getSampler().isSubpass(); } @@ -1315,7 +1317,7 @@ public: virtual bool containsOpaque() const { - if (basicType == EbtSampler || basicType == EbtAtomicUint) + if (isOpaque()) return true; if (! structure) return false; From ed15ef1a5b82162b60be5ffd43e3d00d2eff4041 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 8 Jun 2016 13:54:48 -0700 Subject: [PATCH 28/48] GlslangToSpv: Pass the pointer directly into the client function for opaque types For opaque types such as samplers, images, and atomic counters, we want to reference the actual object in the child function. For a long time, we used a shadow variable and made a copy of the image/sampler. In 76d0ac1a, this was changed to not shadow samplers. However, this didn't cover all opaque types and it also didn't get the pointer storage classes right. This commit fixes both of these issues. Fixes #324 --- SPIRV/GlslangToSpv.cpp | 10 ++-- Test/baseResults/spv.subpass.frag.out | 77 +++++++++++++-------------- 2 files changed, 44 insertions(+), 43 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index ff96b6d5..c7febc4a 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -2272,7 +2272,9 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF for (int p = 0; p < (int)parameters.size(); ++p) { const glslang::TType& paramType = parameters[p]->getAsTyped()->getType(); spv::Id typeId = convertGlslangToSpvType(paramType); - if (paramType.getQualifier().storage != glslang::EvqConstReadOnly) + if (paramType.isOpaque()) + typeId = builder.makePointer(TranslateStorageClass(paramType), typeId); + else if (paramType.getQualifier().storage != glslang::EvqConstReadOnly) typeId = builder.makePointer(spv::StorageClassFunction, typeId); else constReadOnlyParameters.insert(parameters[p]->getAsSymbolNode()->getId()); @@ -2688,8 +2690,8 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg builder.clearAccessChain(); glslangArgs[a]->traverse(this); argTypes.push_back(¶mType); - // keep outputs as and samplers l-values, evaluate input-only as r-values - if (qualifiers[a] != glslang::EvqConstReadOnly || paramType.getBasicType() == glslang::EbtSampler) { + // keep outputs as and opaque objects l-values, evaluate input-only as r-values + if (qualifiers[a] != glslang::EvqConstReadOnly || paramType.isOpaque()) { // save l-value lValues.push_back(builder.getAccessChain()); } else { @@ -2708,7 +2710,7 @@ spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAgg for (int a = 0; a < (int)glslangArgs.size(); ++a) { const glslang::TType& paramType = glslangArgs[a]->getAsTyped()->getType(); spv::Id arg; - if (paramType.getBasicType() == glslang::EbtSampler) { + if (paramType.isOpaque()) { builder.setAccessChain(lValues[lValueCount]); arg = builder.accessChainGetLValue(); ++lValueCount; diff --git a/Test/baseResults/spv.subpass.frag.out b/Test/baseResults/spv.subpass.frag.out index 4b972aca..93d680c7 100644 --- a/Test/baseResults/spv.subpass.frag.out +++ b/Test/baseResults/spv.subpass.frag.out @@ -7,13 +7,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 68 +// Id's are bound by 67 Capability Shader Capability InputAttachment 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 27 54 + EntryPoint Fragment 4 "main" 15 27 53 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" @@ -24,27 +24,27 @@ Linked fragment stage: Name 30 "sub" Name 35 "subMS" Name 42 "isub" - Name 46 "isubMS" - Name 54 "ucolor" - Name 57 "usub" - Name 62 "usubMS" + Name 45 "isubMS" + Name 53 "ucolor" + Name 56 "usub" + Name 61 "usubMS" Decorate 30(sub) DescriptorSet 0 Decorate 30(sub) InputAttachmentIndex 1 Decorate 35(subMS) DescriptorSet 0 Decorate 35(subMS) InputAttachmentIndex 2 Decorate 42(isub) DescriptorSet 0 Decorate 42(isub) InputAttachmentIndex 3 - Decorate 46(isubMS) DescriptorSet 0 - Decorate 46(isubMS) InputAttachmentIndex 4 - Decorate 57(usub) DescriptorSet 0 - Decorate 57(usub) InputAttachmentIndex 5 - Decorate 62(usubMS) DescriptorSet 0 - Decorate 62(usubMS) InputAttachmentIndex 6 + Decorate 45(isubMS) DescriptorSet 0 + Decorate 45(isubMS) InputAttachmentIndex 4 + Decorate 56(usub) DescriptorSet 0 + Decorate 56(usub) InputAttachmentIndex 5 + Decorate 61(usubMS) DescriptorSet 0 + Decorate 61(usubMS) InputAttachmentIndex 6 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown - 8: TypePointer Function 7 + 8: TypePointer UniformConstant 7 9: TypeFunction 2 8(ptr) 13: TypeVector 6(int) 4 14: TypePointer Output 13(ivec4) @@ -66,18 +66,17 @@ Linked fragment stage: 40: TypeImage 6(int) SubpassData nonsampled format:Unknown 41: TypePointer UniformConstant 40 42(isub): 41(ptr) Variable UniformConstant - 45: TypePointer UniformConstant 7 - 46(isubMS): 45(ptr) Variable UniformConstant - 51: TypeInt 32 0 - 52: TypeVector 51(int) 4 - 53: TypePointer Output 52(ivec4) - 54(ucolor): 53(ptr) Variable Output - 55: TypeImage 51(int) SubpassData nonsampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(usub): 56(ptr) Variable UniformConstant - 60: TypeImage 51(int) SubpassData multi-sampled nonsampled format:Unknown - 61: TypePointer UniformConstant 60 - 62(usubMS): 61(ptr) Variable UniformConstant + 45(isubMS): 8(ptr) Variable UniformConstant + 50: TypeInt 32 0 + 51: TypeVector 50(int) 4 + 52: TypePointer Output 51(ivec4) + 53(ucolor): 52(ptr) Variable Output + 54: TypeImage 50(int) SubpassData nonsampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(usub): 55(ptr) Variable UniformConstant + 59: TypeImage 50(int) SubpassData multi-sampled nonsampled format:Unknown + 60: TypePointer UniformConstant 59 + 61(usubMS): 60(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 31: 28 Load 30(sub) @@ -91,20 +90,20 @@ Linked fragment stage: 43: 40 Load 42(isub) 44: 13(ivec4) ImageRead 43 20 Store 15(icolor) 44 - 47: 7 Load 46(isubMS) - 48: 13(ivec4) ImageRead 47 20 Sample 17 - 49: 13(ivec4) Load 15(icolor) - 50: 13(ivec4) IAdd 49 48 - Store 15(icolor) 50 - 58: 55 Load 57(usub) - 59: 52(ivec4) ImageRead 58 20 - Store 54(ucolor) 59 - 63: 60 Load 62(usubMS) - 64: 52(ivec4) ImageRead 63 20 Sample 17 - 65: 52(ivec4) Load 54(ucolor) - 66: 52(ivec4) IAdd 65 64 - Store 54(ucolor) 66 - 67: 2 FunctionCall 11(foo(iIPM1;) 46(isubMS) + 46: 7 Load 45(isubMS) + 47: 13(ivec4) ImageRead 46 20 Sample 17 + 48: 13(ivec4) Load 15(icolor) + 49: 13(ivec4) IAdd 48 47 + Store 15(icolor) 49 + 57: 54 Load 56(usub) + 58: 51(ivec4) ImageRead 57 20 + Store 53(ucolor) 58 + 62: 59 Load 61(usubMS) + 63: 51(ivec4) ImageRead 62 20 Sample 17 + 64: 51(ivec4) Load 53(ucolor) + 65: 51(ivec4) IAdd 64 63 + Store 53(ucolor) 65 + 66: 2 FunctionCall 11(foo(iIPM1;) 45(isubMS) Return FunctionEnd 11(foo(iIPM1;): 2 Function None 9 From 71351de8792f933383d7ff1fabb67c9efa27d4f6 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 8 Jun 2016 12:50:56 -0600 Subject: [PATCH 29/48] HLSL: Add all int/float/bool/uint matrix types, void for functions, and a few others. --- .../hlsl.intrinsics.negative.frag.out | 8 +- .../hlsl.intrinsics.negative.vert.out | 8 +- Test/baseResults/hlsl.void.frag.out | 64 +++++++ Test/hlsl.void.frag | 8 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 176 ++++++++++++++++-- hlsl/hlslScanContext.cpp | 32 ++++ hlsl/hlslTokens.h | 32 ++++ 8 files changed, 307 insertions(+), 22 deletions(-) create mode 100755 Test/baseResults/hlsl.void.frag.out create mode 100644 Test/hlsl.void.frag diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 9ac39851..d1f9b429 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -144,12 +144,12 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float) +0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' (temp 1-component vector of float) 0:36 'inF1' (temp 1-component vector of float) 0:36 'inF2' (temp 1-component vector of float) -0:36 'inI0' (temp int) +0:36 'inI0' (temp 1-component vector of int) 0:? Sequence 0:39 Constant: 0:39 0.000000 @@ -448,12 +448,12 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float) +0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' (temp 1-component vector of float) 0:36 'inF1' (temp 1-component vector of float) 0:36 'inF2' (temp 1-component vector of float) -0:36 'inI0' (temp int) +0:36 'inI0' (temp 1-component vector of int) 0:? Sequence 0:39 Constant: 0:39 0.000000 diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index 6fc87bf3..de711e9b 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -236,12 +236,12 @@ ERROR: node is still EOpNull! 0:46 Branch: Return with expression 0:46 Constant: 0:46 0.000000 -0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float) +0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:50 Function Parameters: 0:50 'inF0' (temp 1-component vector of float) 0:50 'inF1' (temp 1-component vector of float) 0:50 'inF2' (temp 1-component vector of float) -0:50 'inI0' (temp int) +0:50 'inI0' (temp 1-component vector of int) 0:? Sequence 0:53 Constant: 0:53 0.000000 @@ -681,12 +681,12 @@ ERROR: node is still EOpNull! 0:46 Branch: Return with expression 0:46 Constant: 0:46 0.000000 -0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;i1; (temp 1-component vector of float) +0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:50 Function Parameters: 0:50 'inF0' (temp 1-component vector of float) 0:50 'inF1' (temp 1-component vector of float) 0:50 'inF2' (temp 1-component vector of float) -0:50 'inI0' (temp int) +0:50 'inI0' (temp 1-component vector of int) 0:? Sequence 0:53 Constant: 0:53 0.000000 diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out new file mode 100755 index 00000000..a6e92317 --- /dev/null +++ b/Test/baseResults/hlsl.void.frag.out @@ -0,0 +1,64 @@ +hlsl.void.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo1( (temp void) +0:1 Function Parameters: +0:4 Function Definition: foo2( (temp void) +0:2 Function Parameters: +0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:5 Function Parameters: +0:5 'input' (temp 4-component vector of float) +0:? Sequence +0:6 Function Call: foo1( (temp void) +0:7 Function Call: foo2( (temp void) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo1( (temp void) +0:1 Function Parameters: +0:4 Function Definition: foo2( (temp void) +0:2 Function Parameters: +0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:5 Function Parameters: +0:5 'input' (temp 4-component vector of float) +0:? Sequence +0:6 Function Call: foo1( (temp void) +0:7 Function Call: foo2( (temp void) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 12 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 6 "foo1(" + Name 8 "foo2(" + 2: TypeVoid + 3: TypeFunction 2 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 10: 2 FunctionCall 6(foo1() + 11: 2 FunctionCall 8(foo2() + Return + FunctionEnd + 6(foo1(): 2 Function None 3 + 7: Label + Return + FunctionEnd + 8(foo2(): 2 Function None 3 + 9: Label + Return + FunctionEnd diff --git a/Test/hlsl.void.frag b/Test/hlsl.void.frag new file mode 100644 index 00000000..9bf06b72 --- /dev/null +++ b/Test/hlsl.void.frag @@ -0,0 +1,8 @@ +void foo1() {} +void foo2(void) {} + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + foo1(); + foo2(); +} \ No newline at end of file diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 3b61dc00..4a127c1f 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -90,6 +90,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.precedence2.frag", "PixelShaderFunction"}, {"hlsl.sin.frag", "PixelShaderFunction"}, {"hlsl.whileLoop.frag", "PixelShaderFunction"}, + {"hlsl.void.frag", "PixelShaderFunction"}, }), FileNameAsCustomTestSuffix ); diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index c1600e4d..b7cb8423 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -213,20 +213,17 @@ bool HlslGrammar::acceptType(TType& type) return false; switch (peek()) { - case EHTokInt: - case EHTokInt1: - case EHTokDword: - new(&type) TType(EbtInt); + case EHTokVoid: + new(&type) TType(EbtVoid); break; + case EHTokFloat: new(&type) TType(EbtFloat); break; - case EHTokFloat1: new(&type) TType(EbtFloat); type.makeVector(); break; - case EHTokFloat2: new(&type) TType(EbtFloat, EvqTemporary, 2); break; @@ -237,6 +234,31 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtFloat, EvqTemporary, 4); break; + case EHTokDouble: + new(&type) TType(EbtDouble); + break; + case EHTokDouble1: + new(&type) TType(EbtDouble); + type.makeVector(); + break; + case EHTokDouble2: + new(&type) TType(EbtDouble, EvqTemporary, 2); + break; + case EHTokDouble3: + new(&type) TType(EbtDouble, EvqTemporary, 3); + break; + case EHTokDouble4: + new(&type) TType(EbtDouble, EvqTemporary, 4); + break; + + case EHTokInt: + case EHTokDword: + new(&type) TType(EbtInt); + break; + case EHTokInt1: + new(&type) TType(EbtInt); + type.makeVector(); + break; case EHTokInt2: new(&type) TType(EbtInt, EvqTemporary, 2); break; @@ -247,6 +269,30 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtInt, EvqTemporary, 4); break; + case EHTokUint: + new(&type) TType(EbtUint); + break; + case EHTokUint1: + new(&type) TType(EbtUint); + type.makeVector(); + break; + case EHTokUint2: + new(&type) TType(EbtUint, EvqTemporary, 2); + break; + case EHTokUint3: + new(&type) TType(EbtUint, EvqTemporary, 3); + break; + case EHTokUint4: + new(&type) TType(EbtUint, EvqTemporary, 4); + break; + + case EHTokBool: + new(&type) TType(EbtBool); + break; + case EHTokBool1: + new(&type) TType(EbtBool); + type.makeVector(); + break; case EHTokBool2: new(&type) TType(EbtBool, EvqTemporary, 2); break; @@ -306,6 +352,104 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtInt, EvqTemporary, 0, 4, 4); break; + case EHTokUint1x1: + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 1); + break; + case EHTokUint1x2: + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 1); + break; + case EHTokUint1x3: + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 1); + break; + case EHTokUint1x4: + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 1); + break; + case EHTokUint2x1: + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 2); + break; + case EHTokUint2x2: + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 2); + break; + case EHTokUint2x3: + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 2); + break; + case EHTokUint2x4: + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 2); + break; + case EHTokUint3x1: + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 3); + break; + case EHTokUint3x2: + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 3); + break; + case EHTokUint3x3: + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 3); + break; + case EHTokUint3x4: + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 3); + break; + case EHTokUint4x1: + new(&type) TType(EbtUint, EvqTemporary, 0, 1, 4); + break; + case EHTokUint4x2: + new(&type) TType(EbtUint, EvqTemporary, 0, 2, 4); + break; + case EHTokUint4x3: + new(&type) TType(EbtUint, EvqTemporary, 0, 3, 4); + break; + case EHTokUint4x4: + new(&type) TType(EbtUint, EvqTemporary, 0, 4, 4); + break; + + case EHTokBool1x1: + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 1); + break; + case EHTokBool1x2: + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 1); + break; + case EHTokBool1x3: + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 1); + break; + case EHTokBool1x4: + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 1); + break; + case EHTokBool2x1: + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 2); + break; + case EHTokBool2x2: + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 2); + break; + case EHTokBool2x3: + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 2); + break; + case EHTokBool2x4: + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 2); + break; + case EHTokBool3x1: + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 3); + break; + case EHTokBool3x2: + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 3); + break; + case EHTokBool3x3: + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 3); + break; + case EHTokBool3x4: + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 3); + break; + case EHTokBool4x1: + new(&type) TType(EbtBool, EvqTemporary, 0, 1, 4); + break; + case EHTokBool4x2: + new(&type) TType(EbtBool, EvqTemporary, 0, 2, 4); + break; + case EHTokBool4x3: + new(&type) TType(EbtBool, EvqTemporary, 0, 3, 4); + break; + case EHTokBool4x4: + new(&type) TType(EbtBool, EvqTemporary, 0, 4, 4); + break; + case EHTokFloat1x1: new(&type) TType(EbtFloat, EvqTemporary, 0, 1, 1); break; @@ -415,6 +559,7 @@ bool HlslGrammar::acceptType(TType& type) // function_parameters // : LEFT_PAREN parameter_declaration COMMA parameter_declaration ... RIGHT_PAREN +// | LEFT_PAREN VOID RIGHT_PAREN // bool HlslGrammar::acceptFunctionParameters(TFunction& function) { @@ -422,15 +567,18 @@ bool HlslGrammar::acceptFunctionParameters(TFunction& function) if (! acceptTokenClass(EHTokLeftParen)) return false; - do { - // parameter_declaration - if (! acceptParameterDeclaration(function)) - break; + // VOID RIGHT_PAREN + if (! acceptTokenClass(EHTokVoid)) { + do { + // parameter_declaration + if (! acceptParameterDeclaration(function)) + break; - // COMMA - if (! acceptTokenClass(EHTokComma)) - break; - } while (true); + // COMMA + if (! acceptTokenClass(EHTokComma)) + break; + } while (true); + } // RIGHT_PAREN if (! acceptTokenClass(EHTokRightParen)) { diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index ab96bad6..38e765ab 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -168,6 +168,38 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["int4x2"] = EHTokInt4x2; (*KeywordMap)["int4x3"] = EHTokInt4x3; (*KeywordMap)["int4x4"] = EHTokInt4x4; + (*KeywordMap)["uint1x1"] = EHTokUint1x1; + (*KeywordMap)["uint1x2"] = EHTokUint1x2; + (*KeywordMap)["uint1x3"] = EHTokUint1x3; + (*KeywordMap)["uint1x4"] = EHTokUint1x4; + (*KeywordMap)["uint2x1"] = EHTokUint2x1; + (*KeywordMap)["uint2x2"] = EHTokUint2x2; + (*KeywordMap)["uint2x3"] = EHTokUint2x3; + (*KeywordMap)["uint2x4"] = EHTokUint2x4; + (*KeywordMap)["uint3x1"] = EHTokUint3x1; + (*KeywordMap)["uint3x2"] = EHTokUint3x2; + (*KeywordMap)["uint3x3"] = EHTokUint3x3; + (*KeywordMap)["uint3x4"] = EHTokUint3x4; + (*KeywordMap)["uint4x1"] = EHTokUint4x1; + (*KeywordMap)["uint4x2"] = EHTokUint4x2; + (*KeywordMap)["uint4x3"] = EHTokUint4x3; + (*KeywordMap)["uint4x4"] = EHTokUint4x4; + (*KeywordMap)["bool1x1"] = EHTokBool1x1; + (*KeywordMap)["bool1x2"] = EHTokBool1x2; + (*KeywordMap)["bool1x3"] = EHTokBool1x3; + (*KeywordMap)["bool1x4"] = EHTokBool1x4; + (*KeywordMap)["bool2x1"] = EHTokBool2x1; + (*KeywordMap)["bool2x2"] = EHTokBool2x2; + (*KeywordMap)["bool2x3"] = EHTokBool2x3; + (*KeywordMap)["bool2x4"] = EHTokBool2x4; + (*KeywordMap)["bool3x1"] = EHTokBool3x1; + (*KeywordMap)["bool3x2"] = EHTokBool3x2; + (*KeywordMap)["bool3x3"] = EHTokBool3x3; + (*KeywordMap)["bool3x4"] = EHTokBool3x4; + (*KeywordMap)["bool4x1"] = EHTokBool4x1; + (*KeywordMap)["bool4x2"] = EHTokBool4x2; + (*KeywordMap)["bool4x3"] = EHTokBool4x3; + (*KeywordMap)["bool4x4"] = EHTokBool4x4; (*KeywordMap)["float1x1"] = EHTokFloat1x1; (*KeywordMap)["float1x2"] = EHTokFloat1x2; (*KeywordMap)["float1x3"] = EHTokFloat1x3; diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index bc472fec..9e6795b9 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -119,6 +119,38 @@ enum EHlslTokenClass { EHTokInt4x2, EHTokInt4x3, EHTokInt4x4, + EHTokUint1x1, + EHTokUint1x2, + EHTokUint1x3, + EHTokUint1x4, + EHTokUint2x1, + EHTokUint2x2, + EHTokUint2x3, + EHTokUint2x4, + EHTokUint3x1, + EHTokUint3x2, + EHTokUint3x3, + EHTokUint3x4, + EHTokUint4x1, + EHTokUint4x2, + EHTokUint4x3, + EHTokUint4x4, + EHTokBool1x1, + EHTokBool1x2, + EHTokBool1x3, + EHTokBool1x4, + EHTokBool2x1, + EHTokBool2x2, + EHTokBool2x3, + EHTokBool2x4, + EHTokBool3x1, + EHTokBool3x2, + EHTokBool3x3, + EHTokBool3x4, + EHTokBool4x1, + EHTokBool4x2, + EHTokBool4x3, + EHTokBool4x4, EHTokFloat1x1, EHTokFloat1x2, EHTokFloat1x3, From 077e052a8fc6b053e97b99b8d6d1d644c59694db Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 9 Jun 2016 02:02:17 -0600 Subject: [PATCH 30/48] HLSL: Implement proper nesting of symbol-table scopes and identifier searching. --- Test/baseResults/hlsl.scope.frag.out | 150 +++++++++++++++++++++++++++ Test/hlsl.scope.frag | 30 ++++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 21 ++-- hlsl/hlslGrammar.h | 1 + hlsl/hlslParseHelper.cpp | 8 +- hlsl/hlslParseHelper.h | 5 +- hlsl/hlslScanContext.cpp | 31 ++---- hlsl/hlslScanContext.h | 8 +- 9 files changed, 204 insertions(+), 51 deletions(-) create mode 100755 Test/baseResults/hlsl.scope.frag.out create mode 100644 Test/hlsl.scope.frag diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out new file mode 100755 index 00000000..274477a4 --- /dev/null +++ b/Test/baseResults/hlsl.scope.frag.out @@ -0,0 +1,150 @@ +hlsl.scope.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:4 'x' (temp int) +0:? Sequence +0:7 'x' (temp float) +0:? Sequence +0:10 'x' (temp bool) +0:? Sequence +0:13 'x' (temp 3-component vector of float) +0:15 'x' (temp bool) +0:17 'x' (temp float) +0:19 'x' (temp int) +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Compare Greater Than (temp bool) +0:21 'x' (temp int) +0:21 Constant: +0:21 0 (const int) +0:21 true case is null +0:24 Loop with condition tested first +0:24 Loop Condition +0:24 Compare Greater Than (temp bool) +0:24 'x' (temp int) +0:24 Constant: +0:24 0 (const int) +0:24 No loop body +0:27 Loop with condition not tested first +0:27 Loop Condition +0:29 Compare Greater Than (temp bool) +0:29 'x' (temp int) +0:29 Constant: +0:29 0 (const int) +0:27 No loop body +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (temp 4-component vector of float) +0:? Sequence +0:4 'x' (temp int) +0:? Sequence +0:7 'x' (temp float) +0:? Sequence +0:10 'x' (temp bool) +0:? Sequence +0:13 'x' (temp 3-component vector of float) +0:15 'x' (temp bool) +0:17 'x' (temp float) +0:19 'x' (temp int) +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Compare Greater Than (temp bool) +0:21 'x' (temp int) +0:21 Constant: +0:21 0 (const int) +0:21 true case is null +0:24 Loop with condition tested first +0:24 Loop Condition +0:24 Compare Greater Than (temp bool) +0:24 'x' (temp int) +0:24 Constant: +0:24 0 (const int) +0:24 No loop body +0:27 Loop with condition not tested first +0:27 Loop Condition +0:29 Compare Greater Than (temp bool) +0:29 'x' (temp int) +0:29 Constant: +0:29 0 (const int) +0:27 No loop body +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 36 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 8 "x" + Name 11 "x" + Name 14 "x" + Name 17 "x" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypePointer Function 9(float) + 12: TypeBool + 13: TypePointer Function 12(bool) + 15: TypeVector 9(float) 3 + 16: TypePointer Function 15(fvec3) + 19: 6(int) Constant 0 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 8(x): 7(ptr) Variable Function + 11(x): 10(ptr) Variable Function + 14(x): 13(ptr) Variable Function + 17(x): 16(ptr) Variable Function + 18: 6(int) Load 8(x) + 20: 12(bool) SGreaterThan 18 19 + SelectionMerge 22 None + BranchConditional 20 21 22 + 21: Label + Branch 22 + 22: Label + Branch 23 + 23: Label + LoopMerge 25 26 None + Branch 27 + 27: Label + 28: 6(int) Load 8(x) + 29: 12(bool) SGreaterThan 28 19 + BranchConditional 29 24 25 + 24: Label + Branch 26 + 26: Label + Branch 23 + 25: Label + Branch 30 + 30: Label + LoopMerge 32 33 None + Branch 31 + 31: Label + Branch 33 + 33: Label + 34: 6(int) Load 8(x) + 35: 12(bool) SGreaterThan 34 19 + BranchConditional 35 30 32 + 32: Label + Return + FunctionEnd diff --git a/Test/hlsl.scope.frag b/Test/hlsl.scope.frag new file mode 100644 index 00000000..0d8cc1ad --- /dev/null +++ b/Test/hlsl.scope.frag @@ -0,0 +1,30 @@ +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + int x; + x; + { + float x; + x; + { + bool x; + x; + { + float3 x; + x; + } + x; + } + x; + } + x; + + if (x > 0) + bool x; + + while (x > 0) + bool x; + + do { + bool x; + } while (x > 0); +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 4a127c1f..fa3442cd 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -88,6 +88,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.max.frag", "PixelShaderFunction"}, {"hlsl.precedence.frag", "PixelShaderFunction"}, {"hlsl.precedence2.frag", "PixelShaderFunction"}, + {"hlsl.scope.frag", "PixelShaderFunction"}, {"hlsl.sin.frag", "PixelShaderFunction"}, {"hlsl.whileLoop.frag", "PixelShaderFunction"}, {"hlsl.void.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index b7cb8423..9ea14dae 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -209,9 +209,6 @@ void HlslGrammar::acceptQualifier(TQualifier& qualifier) // Otherwise, return false, and don't advance bool HlslGrammar::acceptType(TType& type) { - if (! token.isType) - return false; - switch (peek()) { case EHTokVoid: new(&type) TType(EbtVoid); @@ -616,7 +613,7 @@ bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& no { TFunction* functionDeclarator = parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */); - // This does a symbol table push + // This does a pushScope() node = parseContext.handleFunctionDefinition(token.loc, *functionDeclarator); // compound_statement @@ -625,7 +622,7 @@ bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& no node = intermediate.growAggregate(node, functionBody); intermediate.setAggregateOperator(node, EOpFunction, functionDeclarator->getType(), token.loc); node->getAsAggregate()->setName(functionDeclarator->getMangledName().c_str()); - parseContext.symbolTable.pop(nullptr); + parseContext.popScope(); return true; } @@ -882,7 +879,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) } else if (acceptIdentifier(idToken)) { // identifier or function_call name if (! peekTokenClass(EHTokLeftParen)) { - node = parseContext.handleVariable(idToken.loc, idToken.symbol, token.string); + node = parseContext.handleVariable(idToken.loc, token.string); } else if (acceptFunctionCall(idToken, node)) { // function_call (nothing else to do yet) } else { @@ -1072,17 +1069,17 @@ bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) bool HlslGrammar::acceptScopedStatement(TIntermNode*& statement) { parseContext.pushScope(); - bool result = acceptNestedStatement(statement); + bool result = acceptStatement(statement); parseContext.popScope(); return result; } -bool HlslGrammar::acceptNestedStatement(TIntermNode*& statement) +bool HlslGrammar::acceptScopedCompoundStatement(TIntermNode*& statement) { - parseContext.nestStatement(); - bool result = acceptStatement(statement); - parseContext.unnestStatement(); + parseContext.pushScope(); + bool result = acceptCompoundStatement(statement); + parseContext.popScope(); return result; } @@ -1111,7 +1108,7 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) // attributed_statement switch (peek()) { case EHTokLeftBrace: - return acceptCompoundStatement(statement); + return acceptScopedCompoundStatement(statement); case EHTokIf: return acceptSelectionStatement(statement); diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 69535f30..ba92c922 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -77,6 +77,7 @@ namespace glslang { bool acceptCompoundStatement(TIntermNode*&); bool acceptStatement(TIntermNode*&); bool acceptScopedStatement(TIntermNode*&); + bool acceptScopedCompoundStatement(TIntermNode*&); bool acceptNestedStatement(TIntermNode*&); void acceptAttributes(); bool acceptSelectionStatement(TIntermNode*&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 2cdaf0c0..e5c15648 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -51,7 +51,7 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int int version, EProfile profile, int spv, int vulkan, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : TParseContextBase(symbolTable, interm, version, profile, spv, vulkan, language, infoSink, forwardCompatible, messages), - contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), statementNestingLevel(0), + contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), postMainReturn(false), limits(resources.limits), afterEOF(false) @@ -282,8 +282,9 @@ void C_DECL HlslParseContext::ppWarn(const TSourceLoc& loc, const char* szReason // // Handle seeing a variable identifier in the grammar. // -TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symbol, const TString* string) +TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, const TString* string) { + TSymbol* symbol = symbolTable.find(*string); TIntermTyped* node = nullptr; // Error check for requiring specific extensions present. @@ -714,7 +715,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l // // New symbol table scope for body of function plus its arguments // - symbolTable.push(); + pushScope(); // // Insert parameters into the symbol table. @@ -747,7 +748,6 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l } intermediate.setAggregateOperator(paramNodes, EOpParameters, TType(EbtVoid), loc); loopNestingLevel = 0; - statementNestingLevel = 0; controlFlowNestingLevel = 0; postMainReturn = false; diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 6f920d8c..e1fbbf85 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -65,7 +65,7 @@ public: bool builtInName(const TString&); void handlePragma(const TSourceLoc&, const TVector&); - TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol, const TString* string); + TIntermTyped* handleVariable(const TSourceLoc&, const TString* string); TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); void checkIndex(const TSourceLoc&, const TType&, int& index); @@ -139,8 +139,6 @@ public: void updateImplicitArraySize(const TSourceLoc&, TIntermNode*, int index); - void nestStatement() { ++statementNestingLevel; } - void unnestStatement() { --statementNestingLevel; } void nestLooping() { ++loopNestingLevel; } void unnestLooping() { --loopNestingLevel; } void pushScope() { symbolTable.push(); } @@ -163,7 +161,6 @@ protected: int loopNestingLevel; // 0 if outside all loops int structNestingLevel; // 0 if outside blocks and structures int controlFlowNestingLevel; // 0 if outside all flow control - int statementNestingLevel; // 0 if outside all flow control or compound statements TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting TList switchLevel; // the statementNestingLevel the current switch statement is at, which must match the level of its case statements bool inEntrypoint; // if inside a function, true if the function is the entry point diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index 38e765ab..dc470ffe 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -314,11 +314,8 @@ void HlslScanContext::deleteKeywordMap() // Wrapper for tokenizeClass()"] = to get everything inside the token. void HlslScanContext::tokenize(HlslToken& token) { - token.isType = false; EHlslTokenClass tokenClass = tokenizeClass(token); token.tokenClass = tokenClass; - if (token.isType) - afterType = true; } // @@ -338,13 +335,13 @@ EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) loc = ppToken.loc; parserToken->loc = loc; switch (ppToken.token) { - case ';': afterType = false; return EHTokSemicolon; - case ',': afterType = false; return EHTokComma; + case ';': return EHTokSemicolon; + case ',': return EHTokComma; case ':': return EHTokColon; - case '=': afterType = false; return EHTokAssign; - case '(': afterType = false; return EHTokLeftParen; - case ')': afterType = false; return EHTokRightParen; - case '.': field = true; return EHTokDot; + case '=': return EHTokAssign; + case '(': return EHTokLeftParen; + case ')': return EHTokRightParen; + case '.': return EHTokDot; case '!': return EHTokBang; case '-': return EHTokDash; case '~': return EHTokTilde; @@ -400,7 +397,6 @@ EHlslTokenClass HlslScanContext::tokenizeClass(HlslToken& token) case PpAtomIdentifier: { EHlslTokenClass token = tokenizeIdentifier(); - field = false; return token; } @@ -542,7 +538,6 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokDouble4x2: case EHTokDouble4x3: case EHTokDouble4x4: - parserToken->isType = true; return keyword; // texturing types @@ -560,7 +555,6 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokTexture2darray: case EHTokTexture3d: case EHTokTextureCube: - parserToken->isType = true; return keyword; // variable, user type, ... @@ -598,19 +592,6 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() EHlslTokenClass HlslScanContext::identifierOrType() { parserToken->string = NewPoolTString(tokenText); - if (field) - return EHTokIdentifier; - - parserToken->symbol = parseContext.symbolTable.find(*parserToken->string); - if (afterType == false && parserToken->symbol) { - if (const TVariable* variable = parserToken->symbol->getAsVariable()) { - if (variable->isUserType()) { - afterType = true; - - return EHTokTypeName; - } - } - } return EHTokIdentifier; } diff --git a/hlsl/hlslScanContext.h b/hlsl/hlslScanContext.h index d761e3a8..75c01a9d 100755 --- a/hlsl/hlslScanContext.h +++ b/hlsl/hlslScanContext.h @@ -54,10 +54,9 @@ class TPpToken; // Everything needed to fully describe a token. // struct HlslToken { - HlslToken() : isType(false), string(nullptr), symbol(nullptr) { loc.init(); } + HlslToken() : string(nullptr) { loc.init(); } TSourceLoc loc; // location of token in the source EHlslTokenClass tokenClass; // what kind of token it is - bool isType; // true if the token represents a type union { // what data the token holds glslang::TString *string; // for identifiers int i; // for literals @@ -65,7 +64,6 @@ struct HlslToken { bool b; double d; }; - glslang::TSymbol* symbol; // if a symbol table lookup was done already, this is the result }; // @@ -76,7 +74,7 @@ struct HlslToken { class HlslScanContext { public: HlslScanContext(TParseContextBase& parseContext, TPpContext& ppContext) - : parseContext(parseContext), ppContext(ppContext), afterType(false), field(false) { } + : parseContext(parseContext), ppContext(ppContext) { } virtual ~HlslScanContext() { } static void fillInKeywordMap(); @@ -97,8 +95,6 @@ protected: TParseContextBase& parseContext; TPpContext& ppContext; - bool afterType; // true if we've recognized a type, so can only be looking for an identifier - bool field; // true if we're on a field, right after a '.' TSourceLoc loc; TPpToken* ppToken; HlslToken* parserToken; From 592860cae535123d4452002524859b9eb8cf7d4e Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Thu, 9 Jun 2016 08:57:35 -0600 Subject: [PATCH 31/48] Add decompositions for some HLSL intrinsics. --- SPIRV/GlslangToSpv.cpp | 8 +- Test/baseResults/hlsl.intrinsics.frag.out | 4554 +++++++++++++-------- Test/baseResults/hlsl.intrinsics.vert.out | 3868 ++++++++++------- Test/hlsl.intrinsics.frag | 64 +- Test/hlsl.intrinsics.vert | 49 + glslang/Include/Types.h | 12 +- glslang/Include/intermediate.h | 15 +- glslang/MachineIndependent/intermOut.cpp | 11 +- hlsl/hlslParseHelper.cpp | 181 + hlsl/hlslParseHelper.h | 2 + hlsl/hlslParseables.cpp | 27 +- 11 files changed, 5546 insertions(+), 3245 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index c7febc4a..0324468c 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -1,5 +1,5 @@ // -//Copyright (C) 2014-2015 LunarG, Inc. +//Copyright (C) 2014-2016 LunarG, Inc. //Copyright (C) 2015-2016 Google, Inc. // //All rights reserved. @@ -3032,7 +3032,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec return builder.setPrecision(result, precision); } - // Handle component-wise +, -, *, and / for all combinations of type. + // Handle component-wise +, -, *, %, and / for all combinations of type. // The result type of all of them is the same type as the (a) matrix operand. // The algorithm is to: // - break the matrix(es) into vectors @@ -3043,6 +3043,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Dec case spv::OpFAdd: case spv::OpFSub: case spv::OpFDiv: + case spv::OpFMod: case spv::OpFMul: { // one time set up... @@ -3209,6 +3210,9 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpIsInf: unaryOp = spv::OpIsInf; break; + case glslang::EOpIsFinite: + unaryOp = spv::OpIsFinite; + break; case glslang::EOpFloatBitsToInt: case glslang::EOpFloatBitsToUint: diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index ec057844..e27b11a3 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float) +0:66 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (temp float) 0:2 'inF1' (temp float) @@ -29,802 +29,1028 @@ gl_FragCoord origin is upper left 0:11 'inF0' (temp float) 0:11 'inF1' (temp float) 0:11 'inF2' (temp float) -0:12 cosine (global float) -0:12 'inF0' (temp float) -0:13 hyp. cosine (global float) +0:12 Test condition and select (temp void) +0:12 Condition +0:12 Compare Less Than (temp bool) +0:12 'inF0' (temp float) +0:12 Constant: +0:12 0.000000 +0:12 true case +0:12 Branch: Kill +0:13 cosine (global float) 0:13 'inF0' (temp float) -0:14 bitCount (global uint) -0:14 Constant: -0:14 7 (const uint) -0:15 dPdx (global float) -0:15 'inF0' (temp float) -0:16 dPdxCoarse (global float) +0:14 hyp. cosine (global float) +0:14 'inF0' (temp float) +0:15 bitCount (global uint) +0:15 Constant: +0:15 7 (const uint) +0:16 dPdx (global float) 0:16 'inF0' (temp float) -0:17 dPdxFine (global float) +0:17 dPdxCoarse (global float) 0:17 'inF0' (temp float) -0:18 dPdy (global float) +0:18 dPdxFine (global float) 0:18 'inF0' (temp float) -0:19 dPdyCoarse (global float) +0:19 dPdy (global float) 0:19 'inF0' (temp float) -0:20 dPdyFine (global float) +0:20 dPdyCoarse (global float) 0:20 'inF0' (temp float) -0:21 degrees (global float) +0:21 dPdyFine (global float) 0:21 'inF0' (temp float) -0:25 exp (global float) -0:25 'inF0' (temp float) -0:26 exp2 (global float) +0:22 degrees (global float) +0:22 'inF0' (temp float) +0:26 exp (global float) 0:26 'inF0' (temp float) -0:27 findMSB (global int) -0:27 Constant: -0:27 7 (const int) -0:28 findLSB (global int) +0:27 exp2 (global float) +0:27 'inF0' (temp float) +0:28 findMSB (global int) 0:28 Constant: 0:28 7 (const int) -0:29 Floor (global float) -0:29 'inF0' (temp float) -0:31 Function Call: fmod(f1;f1; (global float) -0:31 'inF0' (temp float) -0:31 'inF1' (temp float) -0:32 Fraction (global float) +0:29 findLSB (global int) +0:29 Constant: +0:29 7 (const int) +0:30 Floor (global float) +0:30 'inF0' (temp float) +0:32 mod (global float) 0:32 'inF0' (temp float) -0:33 frexp (global float) +0:32 'inF1' (temp float) +0:33 Fraction (global float) 0:33 'inF0' (temp float) -0:33 'inF1' (temp float) -0:34 fwidth (global float) +0:34 frexp (global float) 0:34 'inF0' (temp float) -0:35 isinf (global bool) +0:34 'inF1' (temp float) +0:35 fwidth (global float) 0:35 'inF0' (temp float) -0:36 isnan (global bool) +0:36 isinf (global bool) 0:36 'inF0' (temp float) -0:37 ldexp (global float) +0:37 isnan (global bool) 0:37 'inF0' (temp float) -0:37 'inF1' (temp float) -0:38 log (global float) +0:38 ldexp (global float) 0:38 'inF0' (temp float) -0:39 log2 (global float) +0:38 'inF1' (temp float) +0:39 log (global float) 0:39 'inF0' (temp float) -0:40 max (global float) -0:40 'inF0' (temp float) -0:40 'inF1' (temp float) -0:41 min (global float) +0:40 component-wise multiply (temp float) +0:40 log2 (temp float) +0:40 'inF0' (temp float) +0:40 Constant: +0:40 0.301030 +0:41 log2 (global float) 0:41 'inF0' (temp float) -0:41 'inF1' (temp float) -0:43 pow (global float) +0:42 max (global float) +0:42 'inF0' (temp float) +0:42 'inF1' (temp float) +0:43 min (global float) 0:43 'inF0' (temp float) 0:43 'inF1' (temp float) -0:44 radians (global float) +0:44 pow (global float) 0:44 'inF0' (temp float) -0:45 bitFieldReverse (global uint) -0:45 Constant: -0:45 2 (const uint) -0:46 roundEven (global float) +0:44 'inF1' (temp float) +0:45 radians (global float) +0:45 'inF0' (temp float) +0:46 divide (temp float) +0:46 Constant: +0:46 1.000000 0:46 'inF0' (temp float) -0:47 inverse sqrt (global float) -0:47 'inF0' (temp float) -0:48 Sign (global float) +0:47 bitFieldReverse (global uint) +0:47 Constant: +0:47 2 (const uint) +0:48 roundEven (global float) 0:48 'inF0' (temp float) -0:49 sine (global float) +0:49 inverse sqrt (global float) 0:49 'inF0' (temp float) -0:50 hyp. sine (global float) +0:50 clamp (global float) 0:50 'inF0' (temp float) -0:51 smoothstep (global float) +0:50 Constant: +0:50 0.000000 +0:50 Constant: +0:50 1.000000 +0:51 Sign (global float) 0:51 'inF0' (temp float) -0:51 'inF1' (temp float) -0:51 'inF2' (temp float) -0:52 sqrt (global float) +0:52 sine (global float) 0:52 'inF0' (temp float) -0:53 step (global float) -0:53 'inF0' (temp float) -0:53 'inF1' (temp float) -0:54 tangent (global float) +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'inF1' (temp float) +0:53 sine (temp float) +0:53 'inF0' (temp float) +0:53 move second child to first child (temp float) +0:53 'inF2' (temp float) +0:53 cosine (temp float) +0:53 'inF0' (temp float) +0:54 hyp. sine (global float) 0:54 'inF0' (temp float) -0:55 hyp. tangent (global float) +0:55 smoothstep (global float) 0:55 'inF0' (temp float) -0:57 trunc (global float) +0:55 'inF1' (temp float) +0:55 'inF2' (temp float) +0:56 sqrt (global float) +0:56 'inF0' (temp float) +0:57 step (global float) 0:57 'inF0' (temp float) -0:59 Branch: Return with expression -0:59 Constant: -0:59 0.000000 -0:68 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:63 Function Parameters: -0:63 'inF0' (temp 1-component vector of float) -0:63 'inF1' (temp 1-component vector of float) -0:63 'inF2' (temp 1-component vector of float) +0:57 'inF1' (temp float) +0:58 tangent (global float) +0:58 'inF0' (temp float) +0:59 hyp. tangent (global float) +0:59 'inF0' (temp float) +0:61 trunc (global float) +0:61 'inF0' (temp float) +0:63 Branch: Return with expression +0:63 Constant: +0:63 0.000000 +0:72 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:67 Function Parameters: +0:67 'inF0' (temp 1-component vector of float) +0:67 'inF1' (temp 1-component vector of float) +0:67 'inF2' (temp 1-component vector of float) 0:? Sequence -0:65 Branch: Return with expression -0:65 Constant: -0:65 0.000000 -0:137 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) -0:69 Function Parameters: -0:69 'inF0' (temp 2-component vector of float) -0:69 'inF1' (temp 2-component vector of float) -0:69 'inF2' (temp 2-component vector of float) +0:69 Branch: Return with expression +0:69 Constant: +0:69 0.000000 +0:145 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) +0:73 Function Parameters: +0:73 'inF0' (temp 2-component vector of float) +0:73 'inF1' (temp 2-component vector of float) +0:73 'inF2' (temp 2-component vector of float) 0:? Sequence -0:70 all (global bool) -0:70 'inF0' (temp 2-component vector of float) -0:71 Absolute value (global 2-component vector of float) -0:71 'inF0' (temp 2-component vector of float) -0:72 arc cosine (global 2-component vector of float) -0:72 'inF0' (temp 2-component vector of float) -0:73 any (global bool) -0:73 'inF0' (temp 2-component vector of float) -0:74 arc sine (global 2-component vector of float) +0:74 all (global bool) 0:74 'inF0' (temp 2-component vector of float) -0:75 arc tangent (global 2-component vector of float) +0:75 Absolute value (global 2-component vector of float) 0:75 'inF0' (temp 2-component vector of float) -0:76 arc tangent (global 2-component vector of float) +0:76 arc cosine (global 2-component vector of float) 0:76 'inF0' (temp 2-component vector of float) -0:76 'inF1' (temp 2-component vector of float) -0:77 Ceiling (global 2-component vector of float) +0:77 any (global bool) 0:77 'inF0' (temp 2-component vector of float) -0:78 clamp (global 2-component vector of float) +0:78 arc sine (global 2-component vector of float) 0:78 'inF0' (temp 2-component vector of float) -0:78 'inF1' (temp 2-component vector of float) -0:78 'inF2' (temp 2-component vector of float) -0:79 cosine (global 2-component vector of float) +0:79 arc tangent (global 2-component vector of float) 0:79 'inF0' (temp 2-component vector of float) -0:80 hyp. cosine (global 2-component vector of float) +0:80 arc tangent (global 2-component vector of float) 0:80 'inF0' (temp 2-component vector of float) +0:80 'inF1' (temp 2-component vector of float) +0:81 Ceiling (global 2-component vector of float) +0:81 'inF0' (temp 2-component vector of float) +0:82 clamp (global 2-component vector of float) +0:82 'inF0' (temp 2-component vector of float) +0:82 'inF1' (temp 2-component vector of float) +0:82 'inF2' (temp 2-component vector of float) +0:83 Test condition and select (temp void) +0:83 Condition +0:83 any (temp bool) +0:83 Compare Less Than (temp 2-component vector of bool) +0:83 'inF0' (temp 2-component vector of float) +0:83 Constant: +0:83 0.000000 +0:83 0.000000 +0:83 true case +0:83 Branch: Kill +0:84 cosine (global 2-component vector of float) +0:84 'inF0' (temp 2-component vector of float) +0:85 hyp. cosine (global 2-component vector of float) +0:85 'inF0' (temp 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:82 dPdx (global 2-component vector of float) -0:82 'inF0' (temp 2-component vector of float) -0:83 dPdxCoarse (global 2-component vector of float) -0:83 'inF0' (temp 2-component vector of float) -0:84 dPdxFine (global 2-component vector of float) -0:84 'inF0' (temp 2-component vector of float) -0:85 dPdy (global 2-component vector of float) -0:85 'inF0' (temp 2-component vector of float) -0:86 dPdyCoarse (global 2-component vector of float) -0:86 'inF0' (temp 2-component vector of float) -0:87 dPdyFine (global 2-component vector of float) +0:87 dPdx (global 2-component vector of float) 0:87 'inF0' (temp 2-component vector of float) -0:88 degrees (global 2-component vector of float) +0:88 dPdxCoarse (global 2-component vector of float) 0:88 'inF0' (temp 2-component vector of float) -0:89 distance (global float) +0:89 dPdxFine (global 2-component vector of float) 0:89 'inF0' (temp 2-component vector of float) -0:89 'inF1' (temp 2-component vector of float) -0:90 dot-product (global float) +0:90 dPdy (global 2-component vector of float) 0:90 'inF0' (temp 2-component vector of float) -0:90 'inF1' (temp 2-component vector of float) -0:94 exp (global 2-component vector of float) +0:91 dPdyCoarse (global 2-component vector of float) +0:91 'inF0' (temp 2-component vector of float) +0:92 dPdyFine (global 2-component vector of float) +0:92 'inF0' (temp 2-component vector of float) +0:93 degrees (global 2-component vector of float) +0:93 'inF0' (temp 2-component vector of float) +0:94 distance (global float) 0:94 'inF0' (temp 2-component vector of float) -0:95 exp2 (global 2-component vector of float) +0:94 'inF1' (temp 2-component vector of float) +0:95 dot-product (global float) 0:95 'inF0' (temp 2-component vector of float) -0:96 face-forward (global 2-component vector of float) -0:96 'inF0' (temp 2-component vector of float) -0:96 'inF1' (temp 2-component vector of float) -0:96 'inF2' (temp 2-component vector of float) -0:97 findMSB (global int) -0:97 Constant: -0:97 7 (const int) -0:98 findLSB (global int) -0:98 Constant: -0:98 7 (const int) -0:99 Floor (global 2-component vector of float) +0:95 'inF1' (temp 2-component vector of float) +0:99 exp (global 2-component vector of float) 0:99 'inF0' (temp 2-component vector of float) -0:101 Function Call: fmod(vf2;vf2; (global 2-component vector of float) +0:100 exp2 (global 2-component vector of float) +0:100 'inF0' (temp 2-component vector of float) +0:101 face-forward (global 2-component vector of float) 0:101 'inF0' (temp 2-component vector of float) 0:101 'inF1' (temp 2-component vector of float) -0:102 Fraction (global 2-component vector of float) -0:102 'inF0' (temp 2-component vector of float) -0:103 frexp (global 2-component vector of float) -0:103 'inF0' (temp 2-component vector of float) -0:103 'inF1' (temp 2-component vector of float) -0:104 fwidth (global 2-component vector of float) +0:101 'inF2' (temp 2-component vector of float) +0:102 findMSB (global int) +0:102 Constant: +0:102 7 (const int) +0:103 findLSB (global int) +0:103 Constant: +0:103 7 (const int) +0:104 Floor (global 2-component vector of float) 0:104 'inF0' (temp 2-component vector of float) -0:105 isinf (global 2-component vector of bool) -0:105 'inF0' (temp 2-component vector of float) -0:106 isnan (global 2-component vector of bool) +0:106 mod (global 2-component vector of float) 0:106 'inF0' (temp 2-component vector of float) -0:107 ldexp (global 2-component vector of float) +0:106 'inF1' (temp 2-component vector of float) +0:107 Fraction (global 2-component vector of float) 0:107 'inF0' (temp 2-component vector of float) -0:107 'inF1' (temp 2-component vector of float) -0:108 length (global float) +0:108 frexp (global 2-component vector of float) 0:108 'inF0' (temp 2-component vector of float) -0:109 log (global 2-component vector of float) +0:108 'inF1' (temp 2-component vector of float) +0:109 fwidth (global 2-component vector of float) 0:109 'inF0' (temp 2-component vector of float) -0:110 log2 (global 2-component vector of float) +0:110 isinf (global 2-component vector of bool) 0:110 'inF0' (temp 2-component vector of float) -0:111 max (global 2-component vector of float) +0:111 isnan (global 2-component vector of bool) 0:111 'inF0' (temp 2-component vector of float) -0:111 'inF1' (temp 2-component vector of float) -0:112 min (global 2-component vector of float) +0:112 ldexp (global 2-component vector of float) 0:112 'inF0' (temp 2-component vector of float) 0:112 'inF1' (temp 2-component vector of float) -0:114 normalize (global 2-component vector of float) +0:113 length (global float) +0:113 'inF0' (temp 2-component vector of float) +0:114 log (global 2-component vector of float) 0:114 'inF0' (temp 2-component vector of float) -0:115 pow (global 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) -0:115 'inF1' (temp 2-component vector of float) -0:116 radians (global 2-component vector of float) +0:115 vector-scale (temp 2-component vector of float) +0:115 log2 (temp 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:115 Constant: +0:115 0.301030 +0:116 log2 (global 2-component vector of float) 0:116 'inF0' (temp 2-component vector of float) -0:117 reflect (global 2-component vector of float) +0:117 max (global 2-component vector of float) 0:117 'inF0' (temp 2-component vector of float) 0:117 'inF1' (temp 2-component vector of float) -0:118 refract (global 2-component vector of float) +0:118 min (global 2-component vector of float) 0:118 'inF0' (temp 2-component vector of float) 0:118 'inF1' (temp 2-component vector of float) -0:118 Constant: -0:118 2.000000 +0:119 normalize (global 2-component vector of float) +0:119 'inF0' (temp 2-component vector of float) +0:120 pow (global 2-component vector of float) +0:120 'inF0' (temp 2-component vector of float) +0:120 'inF1' (temp 2-component vector of float) +0:121 radians (global 2-component vector of float) +0:121 'inF0' (temp 2-component vector of float) +0:122 divide (temp 2-component vector of float) +0:122 Constant: +0:122 1.000000 +0:122 'inF0' (temp 2-component vector of float) +0:123 reflect (global 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:123 'inF1' (temp 2-component vector of float) +0:124 refract (global 2-component vector of float) +0:124 'inF0' (temp 2-component vector of float) +0:124 'inF1' (temp 2-component vector of float) +0:124 Constant: +0:124 2.000000 0:? bitFieldReverse (global 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:120 roundEven (global 2-component vector of float) -0:120 'inF0' (temp 2-component vector of float) -0:121 inverse sqrt (global 2-component vector of float) -0:121 'inF0' (temp 2-component vector of float) -0:122 Sign (global 2-component vector of float) -0:122 'inF0' (temp 2-component vector of float) -0:123 sine (global 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) -0:124 hyp. sine (global 2-component vector of float) -0:124 'inF0' (temp 2-component vector of float) -0:125 smoothstep (global 2-component vector of float) -0:125 'inF0' (temp 2-component vector of float) -0:125 'inF1' (temp 2-component vector of float) -0:125 'inF2' (temp 2-component vector of float) -0:126 sqrt (global 2-component vector of float) +0:126 roundEven (global 2-component vector of float) 0:126 'inF0' (temp 2-component vector of float) -0:127 step (global 2-component vector of float) +0:127 inverse sqrt (global 2-component vector of float) 0:127 'inF0' (temp 2-component vector of float) -0:127 'inF1' (temp 2-component vector of float) -0:128 tangent (global 2-component vector of float) +0:128 clamp (global 2-component vector of float) 0:128 'inF0' (temp 2-component vector of float) -0:129 hyp. tangent (global 2-component vector of float) +0:128 Constant: +0:128 0.000000 +0:128 Constant: +0:128 1.000000 +0:129 Sign (global 2-component vector of float) 0:129 'inF0' (temp 2-component vector of float) -0:131 trunc (global 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) -0:134 Branch: Return with expression +0:130 sine (global 2-component vector of float) +0:130 'inF0' (temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp 2-component vector of float) +0:131 'inF1' (temp 2-component vector of float) +0:131 sine (temp 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:131 move second child to first child (temp 2-component vector of float) +0:131 'inF2' (temp 2-component vector of float) +0:131 cosine (temp 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:132 hyp. sine (global 2-component vector of float) +0:132 'inF0' (temp 2-component vector of float) +0:133 smoothstep (global 2-component vector of float) +0:133 'inF0' (temp 2-component vector of float) +0:133 'inF1' (temp 2-component vector of float) +0:133 'inF2' (temp 2-component vector of float) +0:134 sqrt (global 2-component vector of float) +0:134 'inF0' (temp 2-component vector of float) +0:135 step (global 2-component vector of float) +0:135 'inF0' (temp 2-component vector of float) +0:135 'inF1' (temp 2-component vector of float) +0:136 tangent (global 2-component vector of float) +0:136 'inF0' (temp 2-component vector of float) +0:137 hyp. tangent (global 2-component vector of float) +0:137 'inF0' (temp 2-component vector of float) +0:139 trunc (global 2-component vector of float) +0:139 'inF0' (temp 2-component vector of float) +0:142 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:207 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) -0:138 Function Parameters: -0:138 'inF0' (temp 3-component vector of float) -0:138 'inF1' (temp 3-component vector of float) -0:138 'inF2' (temp 3-component vector of float) +0:219 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) +0:146 Function Parameters: +0:146 'inF0' (temp 3-component vector of float) +0:146 'inF1' (temp 3-component vector of float) +0:146 'inF2' (temp 3-component vector of float) 0:? Sequence -0:139 all (global bool) -0:139 'inF0' (temp 3-component vector of float) -0:140 Absolute value (global 3-component vector of float) -0:140 'inF0' (temp 3-component vector of float) -0:141 arc cosine (global 3-component vector of float) -0:141 'inF0' (temp 3-component vector of float) -0:142 any (global bool) -0:142 'inF0' (temp 3-component vector of float) -0:143 arc sine (global 3-component vector of float) -0:143 'inF0' (temp 3-component vector of float) -0:144 arc tangent (global 3-component vector of float) -0:144 'inF0' (temp 3-component vector of float) -0:145 arc tangent (global 3-component vector of float) -0:145 'inF0' (temp 3-component vector of float) -0:145 'inF1' (temp 3-component vector of float) -0:146 Ceiling (global 3-component vector of float) -0:146 'inF0' (temp 3-component vector of float) -0:147 clamp (global 3-component vector of float) +0:147 all (global bool) 0:147 'inF0' (temp 3-component vector of float) -0:147 'inF1' (temp 3-component vector of float) -0:147 'inF2' (temp 3-component vector of float) -0:148 cosine (global 3-component vector of float) +0:148 Absolute value (global 3-component vector of float) 0:148 'inF0' (temp 3-component vector of float) -0:149 hyp. cosine (global 3-component vector of float) +0:149 arc cosine (global 3-component vector of float) 0:149 'inF0' (temp 3-component vector of float) +0:150 any (global bool) +0:150 'inF0' (temp 3-component vector of float) +0:151 arc sine (global 3-component vector of float) +0:151 'inF0' (temp 3-component vector of float) +0:152 arc tangent (global 3-component vector of float) +0:152 'inF0' (temp 3-component vector of float) +0:153 arc tangent (global 3-component vector of float) +0:153 'inF0' (temp 3-component vector of float) +0:153 'inF1' (temp 3-component vector of float) +0:154 Ceiling (global 3-component vector of float) +0:154 'inF0' (temp 3-component vector of float) +0:155 clamp (global 3-component vector of float) +0:155 'inF0' (temp 3-component vector of float) +0:155 'inF1' (temp 3-component vector of float) +0:155 'inF2' (temp 3-component vector of float) +0:156 Test condition and select (temp void) +0:156 Condition +0:156 any (temp bool) +0:156 Compare Less Than (temp 3-component vector of bool) +0:156 'inF0' (temp 3-component vector of float) +0:156 Constant: +0:156 0.000000 +0:156 0.000000 +0:156 0.000000 +0:156 true case +0:156 Branch: Kill +0:157 cosine (global 3-component vector of float) +0:157 'inF0' (temp 3-component vector of float) +0:158 hyp. cosine (global 3-component vector of float) +0:158 'inF0' (temp 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:151 cross-product (global 3-component vector of float) -0:151 'inF0' (temp 3-component vector of float) -0:151 'inF1' (temp 3-component vector of float) -0:152 dPdx (global 3-component vector of float) -0:152 'inF0' (temp 3-component vector of float) -0:153 dPdxCoarse (global 3-component vector of float) -0:153 'inF0' (temp 3-component vector of float) -0:154 dPdxFine (global 3-component vector of float) -0:154 'inF0' (temp 3-component vector of float) -0:155 dPdy (global 3-component vector of float) -0:155 'inF0' (temp 3-component vector of float) -0:156 dPdyCoarse (global 3-component vector of float) -0:156 'inF0' (temp 3-component vector of float) -0:157 dPdyFine (global 3-component vector of float) -0:157 'inF0' (temp 3-component vector of float) -0:158 degrees (global 3-component vector of float) -0:158 'inF0' (temp 3-component vector of float) -0:159 distance (global float) -0:159 'inF0' (temp 3-component vector of float) -0:159 'inF1' (temp 3-component vector of float) -0:160 dot-product (global float) +0:160 cross-product (global 3-component vector of float) 0:160 'inF0' (temp 3-component vector of float) 0:160 'inF1' (temp 3-component vector of float) -0:164 exp (global 3-component vector of float) +0:161 dPdx (global 3-component vector of float) +0:161 'inF0' (temp 3-component vector of float) +0:162 dPdxCoarse (global 3-component vector of float) +0:162 'inF0' (temp 3-component vector of float) +0:163 dPdxFine (global 3-component vector of float) +0:163 'inF0' (temp 3-component vector of float) +0:164 dPdy (global 3-component vector of float) 0:164 'inF0' (temp 3-component vector of float) -0:165 exp2 (global 3-component vector of float) +0:165 dPdyCoarse (global 3-component vector of float) 0:165 'inF0' (temp 3-component vector of float) -0:166 face-forward (global 3-component vector of float) +0:166 dPdyFine (global 3-component vector of float) 0:166 'inF0' (temp 3-component vector of float) -0:166 'inF1' (temp 3-component vector of float) -0:166 'inF2' (temp 3-component vector of float) -0:167 findMSB (global int) -0:167 Constant: -0:167 7 (const int) -0:168 findLSB (global int) -0:168 Constant: -0:168 7 (const int) -0:169 Floor (global 3-component vector of float) +0:167 degrees (global 3-component vector of float) +0:167 'inF0' (temp 3-component vector of float) +0:168 distance (global float) +0:168 'inF0' (temp 3-component vector of float) +0:168 'inF1' (temp 3-component vector of float) +0:169 dot-product (global float) 0:169 'inF0' (temp 3-component vector of float) -0:171 Function Call: fmod(vf3;vf3; (global 3-component vector of float) -0:171 'inF0' (temp 3-component vector of float) -0:171 'inF1' (temp 3-component vector of float) -0:172 Fraction (global 3-component vector of float) -0:172 'inF0' (temp 3-component vector of float) -0:173 frexp (global 3-component vector of float) +0:169 'inF1' (temp 3-component vector of float) +0:173 exp (global 3-component vector of float) 0:173 'inF0' (temp 3-component vector of float) -0:173 'inF1' (temp 3-component vector of float) -0:174 fwidth (global 3-component vector of float) +0:174 exp2 (global 3-component vector of float) 0:174 'inF0' (temp 3-component vector of float) -0:175 isinf (global 3-component vector of bool) +0:175 face-forward (global 3-component vector of float) 0:175 'inF0' (temp 3-component vector of float) -0:176 isnan (global 3-component vector of bool) -0:176 'inF0' (temp 3-component vector of float) -0:177 ldexp (global 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) -0:177 'inF1' (temp 3-component vector of float) -0:178 length (global float) +0:175 'inF1' (temp 3-component vector of float) +0:175 'inF2' (temp 3-component vector of float) +0:176 findMSB (global int) +0:176 Constant: +0:176 7 (const int) +0:177 findLSB (global int) +0:177 Constant: +0:177 7 (const int) +0:178 Floor (global 3-component vector of float) 0:178 'inF0' (temp 3-component vector of float) -0:179 log (global 3-component vector of float) -0:179 'inF0' (temp 3-component vector of float) -0:180 log2 (global 3-component vector of float) +0:180 mod (global 3-component vector of float) 0:180 'inF0' (temp 3-component vector of float) -0:181 max (global 3-component vector of float) +0:180 'inF1' (temp 3-component vector of float) +0:181 Fraction (global 3-component vector of float) 0:181 'inF0' (temp 3-component vector of float) -0:181 'inF1' (temp 3-component vector of float) -0:182 min (global 3-component vector of float) +0:182 frexp (global 3-component vector of float) 0:182 'inF0' (temp 3-component vector of float) 0:182 'inF1' (temp 3-component vector of float) -0:184 normalize (global 3-component vector of float) +0:183 fwidth (global 3-component vector of float) +0:183 'inF0' (temp 3-component vector of float) +0:184 isinf (global 3-component vector of bool) 0:184 'inF0' (temp 3-component vector of float) -0:185 pow (global 3-component vector of float) +0:185 isnan (global 3-component vector of bool) 0:185 'inF0' (temp 3-component vector of float) -0:185 'inF1' (temp 3-component vector of float) -0:186 radians (global 3-component vector of float) +0:186 ldexp (global 3-component vector of float) 0:186 'inF0' (temp 3-component vector of float) -0:187 reflect (global 3-component vector of float) +0:186 'inF1' (temp 3-component vector of float) +0:187 length (global float) 0:187 'inF0' (temp 3-component vector of float) -0:187 'inF1' (temp 3-component vector of float) -0:188 refract (global 3-component vector of float) +0:188 log (global 3-component vector of float) 0:188 'inF0' (temp 3-component vector of float) -0:188 'inF1' (temp 3-component vector of float) -0:188 Constant: -0:188 2.000000 +0:189 vector-scale (temp 3-component vector of float) +0:189 log2 (temp 3-component vector of float) +0:189 'inF0' (temp 3-component vector of float) +0:189 Constant: +0:189 0.301030 +0:190 log2 (global 3-component vector of float) +0:190 'inF0' (temp 3-component vector of float) +0:191 max (global 3-component vector of float) +0:191 'inF0' (temp 3-component vector of float) +0:191 'inF1' (temp 3-component vector of float) +0:192 min (global 3-component vector of float) +0:192 'inF0' (temp 3-component vector of float) +0:192 'inF1' (temp 3-component vector of float) +0:193 normalize (global 3-component vector of float) +0:193 'inF0' (temp 3-component vector of float) +0:194 pow (global 3-component vector of float) +0:194 'inF0' (temp 3-component vector of float) +0:194 'inF1' (temp 3-component vector of float) +0:195 radians (global 3-component vector of float) +0:195 'inF0' (temp 3-component vector of float) +0:196 divide (temp 3-component vector of float) +0:196 Constant: +0:196 1.000000 +0:196 'inF0' (temp 3-component vector of float) +0:197 reflect (global 3-component vector of float) +0:197 'inF0' (temp 3-component vector of float) +0:197 'inF1' (temp 3-component vector of float) +0:198 refract (global 3-component vector of float) +0:198 'inF0' (temp 3-component vector of float) +0:198 'inF1' (temp 3-component vector of float) +0:198 Constant: +0:198 2.000000 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:190 roundEven (global 3-component vector of float) -0:190 'inF0' (temp 3-component vector of float) -0:191 inverse sqrt (global 3-component vector of float) -0:191 'inF0' (temp 3-component vector of float) -0:192 Sign (global 3-component vector of float) -0:192 'inF0' (temp 3-component vector of float) -0:193 sine (global 3-component vector of float) -0:193 'inF0' (temp 3-component vector of float) -0:194 hyp. sine (global 3-component vector of float) -0:194 'inF0' (temp 3-component vector of float) -0:195 smoothstep (global 3-component vector of float) -0:195 'inF0' (temp 3-component vector of float) -0:195 'inF1' (temp 3-component vector of float) -0:195 'inF2' (temp 3-component vector of float) -0:196 sqrt (global 3-component vector of float) -0:196 'inF0' (temp 3-component vector of float) -0:197 step (global 3-component vector of float) -0:197 'inF0' (temp 3-component vector of float) -0:197 'inF1' (temp 3-component vector of float) -0:198 tangent (global 3-component vector of float) -0:198 'inF0' (temp 3-component vector of float) -0:199 hyp. tangent (global 3-component vector of float) -0:199 'inF0' (temp 3-component vector of float) -0:201 trunc (global 3-component vector of float) +0:200 roundEven (global 3-component vector of float) +0:200 'inF0' (temp 3-component vector of float) +0:201 inverse sqrt (global 3-component vector of float) 0:201 'inF0' (temp 3-component vector of float) -0:204 Branch: Return with expression +0:202 clamp (global 3-component vector of float) +0:202 'inF0' (temp 3-component vector of float) +0:202 Constant: +0:202 0.000000 +0:202 Constant: +0:202 1.000000 +0:203 Sign (global 3-component vector of float) +0:203 'inF0' (temp 3-component vector of float) +0:204 sine (global 3-component vector of float) +0:204 'inF0' (temp 3-component vector of float) +0:205 Sequence +0:205 move second child to first child (temp 3-component vector of float) +0:205 'inF1' (temp 3-component vector of float) +0:205 sine (temp 3-component vector of float) +0:205 'inF0' (temp 3-component vector of float) +0:205 move second child to first child (temp 3-component vector of float) +0:205 'inF2' (temp 3-component vector of float) +0:205 cosine (temp 3-component vector of float) +0:205 'inF0' (temp 3-component vector of float) +0:206 hyp. sine (global 3-component vector of float) +0:206 'inF0' (temp 3-component vector of float) +0:207 smoothstep (global 3-component vector of float) +0:207 'inF0' (temp 3-component vector of float) +0:207 'inF1' (temp 3-component vector of float) +0:207 'inF2' (temp 3-component vector of float) +0:208 sqrt (global 3-component vector of float) +0:208 'inF0' (temp 3-component vector of float) +0:209 step (global 3-component vector of float) +0:209 'inF0' (temp 3-component vector of float) +0:209 'inF1' (temp 3-component vector of float) +0:210 tangent (global 3-component vector of float) +0:210 'inF0' (temp 3-component vector of float) +0:211 hyp. tangent (global 3-component vector of float) +0:211 'inF0' (temp 3-component vector of float) +0:213 trunc (global 3-component vector of float) +0:213 'inF0' (temp 3-component vector of float) +0:216 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:328 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) -0:208 Function Parameters: -0:208 'inF0' (temp 4-component vector of float) -0:208 'inF1' (temp 4-component vector of float) -0:208 'inF2' (temp 4-component vector of float) +0:349 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) +0:220 Function Parameters: +0:220 'inF0' (temp 4-component vector of float) +0:220 'inF1' (temp 4-component vector of float) +0:220 'inF2' (temp 4-component vector of float) 0:? Sequence -0:209 all (global bool) -0:209 'inF0' (temp 4-component vector of float) -0:210 Absolute value (global 4-component vector of float) -0:210 'inF0' (temp 4-component vector of float) -0:211 arc cosine (global 4-component vector of float) -0:211 'inF0' (temp 4-component vector of float) -0:212 any (global bool) -0:212 'inF0' (temp 4-component vector of float) -0:213 arc sine (global 4-component vector of float) -0:213 'inF0' (temp 4-component vector of float) -0:214 arc tangent (global 4-component vector of float) -0:214 'inF0' (temp 4-component vector of float) -0:215 arc tangent (global 4-component vector of float) -0:215 'inF0' (temp 4-component vector of float) -0:215 'inF1' (temp 4-component vector of float) -0:216 Ceiling (global 4-component vector of float) -0:216 'inF0' (temp 4-component vector of float) -0:217 clamp (global 4-component vector of float) -0:217 'inF0' (temp 4-component vector of float) -0:217 'inF1' (temp 4-component vector of float) -0:217 'inF2' (temp 4-component vector of float) -0:218 cosine (global 4-component vector of float) -0:218 'inF0' (temp 4-component vector of float) -0:219 hyp. cosine (global 4-component vector of float) -0:219 'inF0' (temp 4-component vector of float) +0:221 all (global bool) +0:221 'inF0' (temp 4-component vector of float) +0:222 Absolute value (global 4-component vector of float) +0:222 'inF0' (temp 4-component vector of float) +0:223 arc cosine (global 4-component vector of float) +0:223 'inF0' (temp 4-component vector of float) +0:224 any (global bool) +0:224 'inF0' (temp 4-component vector of float) +0:225 arc sine (global 4-component vector of float) +0:225 'inF0' (temp 4-component vector of float) +0:226 arc tangent (global 4-component vector of float) +0:226 'inF0' (temp 4-component vector of float) +0:227 arc tangent (global 4-component vector of float) +0:227 'inF0' (temp 4-component vector of float) +0:227 'inF1' (temp 4-component vector of float) +0:228 Ceiling (global 4-component vector of float) +0:228 'inF0' (temp 4-component vector of float) +0:229 clamp (global 4-component vector of float) +0:229 'inF0' (temp 4-component vector of float) +0:229 'inF1' (temp 4-component vector of float) +0:229 'inF2' (temp 4-component vector of float) +0:230 Test condition and select (temp void) +0:230 Condition +0:230 any (temp bool) +0:230 Compare Less Than (temp 4-component vector of bool) +0:230 'inF0' (temp 4-component vector of float) +0:230 Constant: +0:230 0.000000 +0:230 0.000000 +0:230 0.000000 +0:230 0.000000 +0:230 true case +0:230 Branch: Kill +0:231 cosine (global 4-component vector of float) +0:231 'inF0' (temp 4-component vector of float) +0:232 hyp. cosine (global 4-component vector of float) +0:232 'inF0' (temp 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:221 dPdx (global 4-component vector of float) -0:221 'inF0' (temp 4-component vector of float) -0:222 dPdxCoarse (global 4-component vector of float) -0:222 'inF0' (temp 4-component vector of float) -0:223 dPdxFine (global 4-component vector of float) -0:223 'inF0' (temp 4-component vector of float) -0:224 dPdy (global 4-component vector of float) -0:224 'inF0' (temp 4-component vector of float) -0:225 dPdyCoarse (global 4-component vector of float) -0:225 'inF0' (temp 4-component vector of float) -0:226 dPdyFine (global 4-component vector of float) -0:226 'inF0' (temp 4-component vector of float) -0:227 degrees (global 4-component vector of float) -0:227 'inF0' (temp 4-component vector of float) -0:228 distance (global float) -0:228 'inF0' (temp 4-component vector of float) -0:228 'inF1' (temp 4-component vector of float) -0:229 dot-product (global float) -0:229 'inF0' (temp 4-component vector of float) -0:229 'inF1' (temp 4-component vector of float) -0:233 exp (global 4-component vector of float) -0:233 'inF0' (temp 4-component vector of float) -0:234 exp2 (global 4-component vector of float) +0:234 dPdx (global 4-component vector of float) 0:234 'inF0' (temp 4-component vector of float) -0:235 face-forward (global 4-component vector of float) +0:235 dPdxCoarse (global 4-component vector of float) 0:235 'inF0' (temp 4-component vector of float) -0:235 'inF1' (temp 4-component vector of float) -0:235 'inF2' (temp 4-component vector of float) -0:236 findMSB (global int) -0:236 Constant: -0:236 7 (const int) -0:237 findLSB (global int) -0:237 Constant: -0:237 7 (const int) -0:238 Floor (global 4-component vector of float) +0:236 dPdxFine (global 4-component vector of float) +0:236 'inF0' (temp 4-component vector of float) +0:237 dPdy (global 4-component vector of float) +0:237 'inF0' (temp 4-component vector of float) +0:238 dPdyCoarse (global 4-component vector of float) 0:238 'inF0' (temp 4-component vector of float) -0:240 Function Call: fmod(vf4;vf4; (global 4-component vector of float) +0:239 dPdyFine (global 4-component vector of float) +0:239 'inF0' (temp 4-component vector of float) +0:240 degrees (global 4-component vector of float) 0:240 'inF0' (temp 4-component vector of float) -0:240 'inF1' (temp 4-component vector of float) -0:241 Fraction (global 4-component vector of float) +0:241 distance (global float) 0:241 'inF0' (temp 4-component vector of float) -0:242 frexp (global 4-component vector of float) +0:241 'inF1' (temp 4-component vector of float) +0:242 dot-product (global float) 0:242 'inF0' (temp 4-component vector of float) 0:242 'inF1' (temp 4-component vector of float) -0:243 fwidth (global 4-component vector of float) -0:243 'inF0' (temp 4-component vector of float) -0:244 isinf (global 4-component vector of bool) -0:244 'inF0' (temp 4-component vector of float) -0:245 isnan (global 4-component vector of bool) -0:245 'inF0' (temp 4-component vector of float) -0:246 ldexp (global 4-component vector of float) -0:246 'inF0' (temp 4-component vector of float) -0:246 'inF1' (temp 4-component vector of float) -0:247 length (global float) +0:243 Construct vec4 (temp float) +0:243 Constant: +0:243 1.000000 +0:243 component-wise multiply (temp float) +0:243 direct index (temp float) +0:243 'inF0' (temp 4-component vector of float) +0:243 Constant: +0:243 1 (const int) +0:243 direct index (temp float) +0:243 'inF1' (temp 4-component vector of float) +0:243 Constant: +0:243 1 (const int) +0:243 direct index (temp float) +0:243 'inF0' (temp 4-component vector of float) +0:243 Constant: +0:243 2 (const int) +0:243 direct index (temp float) +0:243 'inF1' (temp 4-component vector of float) +0:243 Constant: +0:243 3 (const int) +0:247 exp (global 4-component vector of float) 0:247 'inF0' (temp 4-component vector of float) -0:248 log (global 4-component vector of float) +0:248 exp2 (global 4-component vector of float) 0:248 'inF0' (temp 4-component vector of float) -0:249 log2 (global 4-component vector of float) +0:249 face-forward (global 4-component vector of float) 0:249 'inF0' (temp 4-component vector of float) -0:250 max (global 4-component vector of float) -0:250 'inF0' (temp 4-component vector of float) -0:250 'inF1' (temp 4-component vector of float) -0:251 min (global 4-component vector of float) -0:251 'inF0' (temp 4-component vector of float) -0:251 'inF1' (temp 4-component vector of float) -0:253 normalize (global 4-component vector of float) -0:253 'inF0' (temp 4-component vector of float) -0:254 pow (global 4-component vector of float) +0:249 'inF1' (temp 4-component vector of float) +0:249 'inF2' (temp 4-component vector of float) +0:250 findMSB (global int) +0:250 Constant: +0:250 7 (const int) +0:251 findLSB (global int) +0:251 Constant: +0:251 7 (const int) +0:252 Floor (global 4-component vector of float) +0:252 'inF0' (temp 4-component vector of float) +0:254 mod (global 4-component vector of float) 0:254 'inF0' (temp 4-component vector of float) 0:254 'inF1' (temp 4-component vector of float) -0:255 radians (global 4-component vector of float) +0:255 Fraction (global 4-component vector of float) 0:255 'inF0' (temp 4-component vector of float) -0:256 reflect (global 4-component vector of float) +0:256 frexp (global 4-component vector of float) 0:256 'inF0' (temp 4-component vector of float) 0:256 'inF1' (temp 4-component vector of float) -0:257 refract (global 4-component vector of float) +0:257 fwidth (global 4-component vector of float) 0:257 'inF0' (temp 4-component vector of float) -0:257 'inF1' (temp 4-component vector of float) -0:257 Constant: -0:257 2.000000 +0:258 isinf (global 4-component vector of bool) +0:258 'inF0' (temp 4-component vector of float) +0:259 isnan (global 4-component vector of bool) +0:259 'inF0' (temp 4-component vector of float) +0:260 ldexp (global 4-component vector of float) +0:260 'inF0' (temp 4-component vector of float) +0:260 'inF1' (temp 4-component vector of float) +0:261 length (global float) +0:261 'inF0' (temp 4-component vector of float) +0:262 log (global 4-component vector of float) +0:262 'inF0' (temp 4-component vector of float) +0:263 vector-scale (temp 4-component vector of float) +0:263 log2 (temp 4-component vector of float) +0:263 'inF0' (temp 4-component vector of float) +0:263 Constant: +0:263 0.301030 +0:264 log2 (global 4-component vector of float) +0:264 'inF0' (temp 4-component vector of float) +0:265 max (global 4-component vector of float) +0:265 'inF0' (temp 4-component vector of float) +0:265 'inF1' (temp 4-component vector of float) +0:266 min (global 4-component vector of float) +0:266 'inF0' (temp 4-component vector of float) +0:266 'inF1' (temp 4-component vector of float) +0:267 normalize (global 4-component vector of float) +0:267 'inF0' (temp 4-component vector of float) +0:268 pow (global 4-component vector of float) +0:268 'inF0' (temp 4-component vector of float) +0:268 'inF1' (temp 4-component vector of float) +0:269 radians (global 4-component vector of float) +0:269 'inF0' (temp 4-component vector of float) +0:270 divide (temp 4-component vector of float) +0:270 Constant: +0:270 1.000000 +0:270 'inF0' (temp 4-component vector of float) +0:271 reflect (global 4-component vector of float) +0:271 'inF0' (temp 4-component vector of float) +0:271 'inF1' (temp 4-component vector of float) +0:272 refract (global 4-component vector of float) +0:272 'inF0' (temp 4-component vector of float) +0:272 'inF1' (temp 4-component vector of float) +0:272 Constant: +0:272 2.000000 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:259 roundEven (global 4-component vector of float) -0:259 'inF0' (temp 4-component vector of float) -0:260 inverse sqrt (global 4-component vector of float) -0:260 'inF0' (temp 4-component vector of float) -0:261 Sign (global 4-component vector of float) -0:261 'inF0' (temp 4-component vector of float) -0:262 sine (global 4-component vector of float) -0:262 'inF0' (temp 4-component vector of float) -0:263 hyp. sine (global 4-component vector of float) -0:263 'inF0' (temp 4-component vector of float) -0:264 smoothstep (global 4-component vector of float) -0:264 'inF0' (temp 4-component vector of float) -0:264 'inF1' (temp 4-component vector of float) -0:264 'inF2' (temp 4-component vector of float) -0:265 sqrt (global 4-component vector of float) -0:265 'inF0' (temp 4-component vector of float) -0:266 step (global 4-component vector of float) -0:266 'inF0' (temp 4-component vector of float) -0:266 'inF1' (temp 4-component vector of float) -0:267 tangent (global 4-component vector of float) -0:267 'inF0' (temp 4-component vector of float) -0:268 hyp. tangent (global 4-component vector of float) -0:268 'inF0' (temp 4-component vector of float) -0:270 trunc (global 4-component vector of float) -0:270 'inF0' (temp 4-component vector of float) -0:273 Branch: Return with expression +0:274 roundEven (global 4-component vector of float) +0:274 'inF0' (temp 4-component vector of float) +0:275 inverse sqrt (global 4-component vector of float) +0:275 'inF0' (temp 4-component vector of float) +0:276 clamp (global 4-component vector of float) +0:276 'inF0' (temp 4-component vector of float) +0:276 Constant: +0:276 0.000000 +0:276 Constant: +0:276 1.000000 +0:277 Sign (global 4-component vector of float) +0:277 'inF0' (temp 4-component vector of float) +0:278 sine (global 4-component vector of float) +0:278 'inF0' (temp 4-component vector of float) +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of float) +0:279 'inF1' (temp 4-component vector of float) +0:279 sine (temp 4-component vector of float) +0:279 'inF0' (temp 4-component vector of float) +0:279 move second child to first child (temp 4-component vector of float) +0:279 'inF2' (temp 4-component vector of float) +0:279 cosine (temp 4-component vector of float) +0:279 'inF0' (temp 4-component vector of float) +0:280 hyp. sine (global 4-component vector of float) +0:280 'inF0' (temp 4-component vector of float) +0:281 smoothstep (global 4-component vector of float) +0:281 'inF0' (temp 4-component vector of float) +0:281 'inF1' (temp 4-component vector of float) +0:281 'inF2' (temp 4-component vector of float) +0:282 sqrt (global 4-component vector of float) +0:282 'inF0' (temp 4-component vector of float) +0:283 step (global 4-component vector of float) +0:283 'inF0' (temp 4-component vector of float) +0:283 'inF1' (temp 4-component vector of float) +0:284 tangent (global 4-component vector of float) +0:284 'inF0' (temp 4-component vector of float) +0:285 hyp. tangent (global 4-component vector of float) +0:285 'inF0' (temp 4-component vector of float) +0:287 trunc (global 4-component vector of float) +0:287 'inF0' (temp 4-component vector of float) +0:290 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:337 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:329 Function Parameters: -0:329 'inF0' (temp 2X2 matrix of float) -0:329 'inF1' (temp 2X2 matrix of float) -0:329 'inF2' (temp 2X2 matrix of float) +0:358 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:350 Function Parameters: +0:350 'inF0' (temp 2X2 matrix of float) +0:350 'inF1' (temp 2X2 matrix of float) +0:350 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:331 all (global bool) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 Absolute value (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 arc cosine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 any (global bool) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 arc sine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 arc tangent (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 arc tangent (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 Ceiling (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 clamp (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 'inF2' (temp 2X2 matrix of float) -0:331 cosine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 hyp. cosine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdx (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdxCoarse (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdxFine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdy (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdyCoarse (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdyFine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 degrees (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 determinant (global float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 exp (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 exp2 (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 findMSB (global int) -0:331 Constant: -0:331 7 (const int) -0:331 findLSB (global int) -0:331 Constant: -0:331 7 (const int) -0:331 Floor (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 Function Call: fmod(mf22;mf22; (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 Fraction (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 frexp (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 fwidth (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 ldexp (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 log (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 log2 (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 max (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 min (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 pow (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 radians (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 roundEven (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 inverse sqrt (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 Sign (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 sine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 hyp. sine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 smoothstep (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 'inF2' (temp 2X2 matrix of float) -0:331 sqrt (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 step (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 tangent (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 hyp. tangent (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 transpose (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 trunc (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:334 Branch: Return with expression +0:352 all (global bool) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Absolute value (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 arc cosine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 any (global bool) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 arc sine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 arc tangent (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 arc tangent (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 Ceiling (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Test condition and select (temp void) +0:352 Condition +0:352 any (temp bool) +0:352 Compare Less Than (temp 2X2 matrix of bool) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Constant: +0:352 0.000000 +0:352 0.000000 +0:352 0.000000 +0:352 0.000000 +0:352 true case +0:352 Branch: Kill +0:352 clamp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 'inF2' (temp 2X2 matrix of float) +0:352 cosine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 hyp. cosine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdx (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdxCoarse (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdxFine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdy (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdyCoarse (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdyFine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 degrees (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 determinant (global float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 exp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 exp2 (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 findMSB (global int) +0:352 Constant: +0:352 7 (const int) +0:352 findLSB (global int) +0:352 Constant: +0:352 7 (const int) +0:352 Floor (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 mod (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 Fraction (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 frexp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 fwidth (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 ldexp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 log (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 matrix-scale (temp 2X2 matrix of float) +0:352 log2 (temp 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Constant: +0:352 0.301030 +0:352 log2 (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 max (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 min (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 pow (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 radians (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 roundEven (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 inverse sqrt (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 clamp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Constant: +0:352 0.000000 +0:352 Constant: +0:352 1.000000 +0:352 Sign (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 sine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Sequence +0:352 move second child to first child (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 sine (temp 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 move second child to first child (temp 2X2 matrix of float) +0:352 'inF2' (temp 2X2 matrix of float) +0:352 cosine (temp 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 hyp. sine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 smoothstep (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 'inF2' (temp 2X2 matrix of float) +0:352 sqrt (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 step (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 tangent (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 hyp. tangent (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 transpose (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 trunc (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:355 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:346 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:338 Function Parameters: -0:338 'inF0' (temp 3X3 matrix of float) -0:338 'inF1' (temp 3X3 matrix of float) -0:338 'inF2' (temp 3X3 matrix of float) +0:367 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:359 Function Parameters: +0:359 'inF0' (temp 3X3 matrix of float) +0:359 'inF1' (temp 3X3 matrix of float) +0:359 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:340 all (global bool) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 Absolute value (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 arc cosine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 any (global bool) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 arc sine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 arc tangent (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 arc tangent (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 Ceiling (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 clamp (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 'inF2' (temp 3X3 matrix of float) -0:340 cosine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 hyp. cosine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdx (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdxCoarse (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdxFine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdy (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdyCoarse (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdyFine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 degrees (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 determinant (global float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 exp (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 exp2 (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 findMSB (global int) -0:340 Constant: -0:340 7 (const int) -0:340 findLSB (global int) -0:340 Constant: -0:340 7 (const int) -0:340 Floor (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 Function Call: fmod(mf33;mf33; (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 Fraction (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 frexp (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 fwidth (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 ldexp (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 log (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 log2 (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 max (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 min (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 pow (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 radians (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 roundEven (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 inverse sqrt (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 Sign (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 sine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 hyp. sine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 smoothstep (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 'inF2' (temp 3X3 matrix of float) -0:340 sqrt (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 step (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 tangent (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 hyp. tangent (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 transpose (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 trunc (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:343 Branch: Return with expression +0:361 all (global bool) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Absolute value (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 arc cosine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 any (global bool) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 arc sine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 arc tangent (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 arc tangent (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 Ceiling (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Test condition and select (temp void) +0:361 Condition +0:361 any (temp bool) +0:361 Compare Less Than (temp 3X3 matrix of bool) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Constant: +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 true case +0:361 Branch: Kill +0:361 clamp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 'inF2' (temp 3X3 matrix of float) +0:361 cosine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 hyp. cosine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdx (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdxCoarse (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdxFine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdy (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdyCoarse (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdyFine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 degrees (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 determinant (global float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 exp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 exp2 (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 findMSB (global int) +0:361 Constant: +0:361 7 (const int) +0:361 findLSB (global int) +0:361 Constant: +0:361 7 (const int) +0:361 Floor (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 mod (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 Fraction (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 frexp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 fwidth (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 ldexp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 log (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 matrix-scale (temp 3X3 matrix of float) +0:361 log2 (temp 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Constant: +0:361 0.301030 +0:361 log2 (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 max (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 min (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 pow (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 radians (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 roundEven (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 inverse sqrt (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 clamp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Constant: +0:361 0.000000 +0:361 Constant: +0:361 1.000000 +0:361 Sign (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 sine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Sequence +0:361 move second child to first child (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 sine (temp 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 move second child to first child (temp 3X3 matrix of float) +0:361 'inF2' (temp 3X3 matrix of float) +0:361 cosine (temp 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 hyp. sine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 smoothstep (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 'inF2' (temp 3X3 matrix of float) +0:361 sqrt (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 step (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 tangent (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 hyp. tangent (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 transpose (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 trunc (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:364 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -835,121 +1061,165 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:354 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:347 Function Parameters: -0:347 'inF0' (temp 4X4 matrix of float) -0:347 'inF1' (temp 4X4 matrix of float) -0:347 'inF2' (temp 4X4 matrix of float) +0:388 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:368 Function Parameters: +0:368 'inF0' (temp 4X4 matrix of float) +0:368 'inF1' (temp 4X4 matrix of float) +0:368 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:349 all (global bool) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 Absolute value (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 arc cosine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 any (global bool) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 arc sine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 arc tangent (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 arc tangent (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 Ceiling (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 clamp (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 'inF2' (temp 4X4 matrix of float) -0:349 cosine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 hyp. cosine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdx (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdxCoarse (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdxFine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdy (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdyCoarse (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdyFine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 degrees (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 determinant (global float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 exp (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 exp2 (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 findMSB (global int) -0:349 Constant: -0:349 7 (const int) -0:349 findLSB (global int) -0:349 Constant: -0:349 7 (const int) -0:349 Floor (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 Function Call: fmod(mf44;mf44; (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 Fraction (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 frexp (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 fwidth (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 ldexp (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 log (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 log2 (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 max (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 min (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 pow (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 radians (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 roundEven (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 inverse sqrt (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 Sign (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 sine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 hyp. sine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 smoothstep (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 'inF2' (temp 4X4 matrix of float) -0:349 sqrt (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 step (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 tangent (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 hyp. tangent (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 transpose (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 trunc (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:352 Branch: Return with expression +0:370 all (global bool) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Absolute value (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 arc cosine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 any (global bool) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 arc sine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 arc tangent (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 arc tangent (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 Ceiling (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Test condition and select (temp void) +0:370 Condition +0:370 any (temp bool) +0:370 Compare Less Than (temp 4X4 matrix of bool) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Constant: +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 true case +0:370 Branch: Kill +0:370 clamp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 'inF2' (temp 4X4 matrix of float) +0:370 cosine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 hyp. cosine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdx (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdxCoarse (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdxFine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdy (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdyCoarse (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdyFine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 degrees (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 determinant (global float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 exp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 exp2 (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 findMSB (global int) +0:370 Constant: +0:370 7 (const int) +0:370 findLSB (global int) +0:370 Constant: +0:370 7 (const int) +0:370 Floor (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 mod (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 Fraction (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 frexp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 fwidth (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 ldexp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 log (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 matrix-scale (temp 4X4 matrix of float) +0:370 log2 (temp 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Constant: +0:370 0.301030 +0:370 log2 (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 max (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 min (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 pow (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 radians (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 roundEven (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 inverse sqrt (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 clamp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Constant: +0:370 0.000000 +0:370 Constant: +0:370 1.000000 +0:370 Sign (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 sine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Sequence +0:370 move second child to first child (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 sine (temp 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 move second child to first child (temp 4X4 matrix of float) +0:370 'inF2' (temp 4X4 matrix of float) +0:370 cosine (temp 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 hyp. sine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 smoothstep (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 'inF2' (temp 4X4 matrix of float) +0:370 sqrt (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 step (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 tangent (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 hyp. tangent (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 transpose (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 trunc (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:373 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -967,6 +1237,168 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 +0:395 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:391 Function Parameters: +0:391 'inF0' (temp float) +0:391 'inF1' (temp float) +0:391 'inFV0' (temp 2-component vector of float) +0:391 'inFV1' (temp 2-component vector of float) +0:391 'inFM0' (temp 2X2 matrix of float) +0:391 'inFM1' (temp 2X2 matrix of float) +0:? Sequence +0:392 move second child to first child (temp float) +0:392 'r0' (temp float) +0:392 component-wise multiply (temp float) +0:392 'inF0' (temp float) +0:392 'inF1' (temp float) +0:392 move second child to first child (temp 2-component vector of float) +0:392 'r1' (temp 2-component vector of float) +0:392 vector-scale (temp 2-component vector of float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 'inF0' (temp float) +0:392 move second child to first child (temp 2-component vector of float) +0:392 'r2' (temp 2-component vector of float) +0:392 vector-scale (temp 2-component vector of float) +0:392 'inF0' (temp float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 move second child to first child (temp float) +0:392 'r3' (temp float) +0:392 dot-product (global float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 'inFV1' (temp 2-component vector of float) +0:392 move second child to first child (temp 2-component vector of float) +0:392 'r4' (temp 2-component vector of float) +0:392 matrix-times-vector (temp 2-component vector of float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 move second child to first child (temp 2-component vector of float) +0:392 'r5' (temp 2-component vector of float) +0:392 vector-times-matrix (temp 2-component vector of float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 move second child to first child (temp 2X2 matrix of float) +0:392 'r6' (temp 2X2 matrix of float) +0:392 matrix-scale (temp 2X2 matrix of float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 'inF0' (temp float) +0:392 move second child to first child (temp 2X2 matrix of float) +0:392 'r7' (temp 2X2 matrix of float) +0:392 matrix-scale (temp 2X2 matrix of float) +0:392 'inF0' (temp float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 move second child to first child (temp 2X2 matrix of float) +0:392 'r8' (temp 2X2 matrix of float) +0:392 matrix-multiply (temp 2X2 matrix of float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 'inFM1' (temp 2X2 matrix of float) +0:402 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:398 Function Parameters: +0:398 'inF0' (temp float) +0:398 'inF1' (temp float) +0:398 'inFV0' (temp 3-component vector of float) +0:398 'inFV1' (temp 3-component vector of float) +0:398 'inFM0' (temp 3X3 matrix of float) +0:398 'inFM1' (temp 3X3 matrix of float) +0:? Sequence +0:399 move second child to first child (temp float) +0:399 'r0' (temp float) +0:399 component-wise multiply (temp float) +0:399 'inF0' (temp float) +0:399 'inF1' (temp float) +0:399 move second child to first child (temp 3-component vector of float) +0:399 'r1' (temp 3-component vector of float) +0:399 vector-scale (temp 3-component vector of float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 'inF0' (temp float) +0:399 move second child to first child (temp 3-component vector of float) +0:399 'r2' (temp 3-component vector of float) +0:399 vector-scale (temp 3-component vector of float) +0:399 'inF0' (temp float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 move second child to first child (temp float) +0:399 'r3' (temp float) +0:399 dot-product (global float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 'inFV1' (temp 3-component vector of float) +0:399 move second child to first child (temp 3-component vector of float) +0:399 'r4' (temp 3-component vector of float) +0:399 matrix-times-vector (temp 3-component vector of float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 move second child to first child (temp 3-component vector of float) +0:399 'r5' (temp 3-component vector of float) +0:399 vector-times-matrix (temp 3-component vector of float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 move second child to first child (temp 3X3 matrix of float) +0:399 'r6' (temp 3X3 matrix of float) +0:399 matrix-scale (temp 3X3 matrix of float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 'inF0' (temp float) +0:399 move second child to first child (temp 3X3 matrix of float) +0:399 'r7' (temp 3X3 matrix of float) +0:399 matrix-scale (temp 3X3 matrix of float) +0:399 'inF0' (temp float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 move second child to first child (temp 3X3 matrix of float) +0:399 'r8' (temp 3X3 matrix of float) +0:399 matrix-multiply (temp 3X3 matrix of float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 'inFM1' (temp 3X3 matrix of float) +0:408 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:405 Function Parameters: +0:405 'inF0' (temp float) +0:405 'inF1' (temp float) +0:405 'inFV0' (temp 4-component vector of float) +0:405 'inFV1' (temp 4-component vector of float) +0:405 'inFM0' (temp 4X4 matrix of float) +0:405 'inFM1' (temp 4X4 matrix of float) +0:? Sequence +0:406 move second child to first child (temp float) +0:406 'r0' (temp float) +0:406 component-wise multiply (temp float) +0:406 'inF0' (temp float) +0:406 'inF1' (temp float) +0:406 move second child to first child (temp 4-component vector of float) +0:406 'r1' (temp 4-component vector of float) +0:406 vector-scale (temp 4-component vector of float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 'inF0' (temp float) +0:406 move second child to first child (temp 4-component vector of float) +0:406 'r2' (temp 4-component vector of float) +0:406 vector-scale (temp 4-component vector of float) +0:406 'inF0' (temp float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 move second child to first child (temp float) +0:406 'r3' (temp float) +0:406 dot-product (global float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 'inFV1' (temp 4-component vector of float) +0:406 move second child to first child (temp 4-component vector of float) +0:406 'r4' (temp 4-component vector of float) +0:406 matrix-times-vector (temp 4-component vector of float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 move second child to first child (temp 4-component vector of float) +0:406 'r5' (temp 4-component vector of float) +0:406 vector-times-matrix (temp 4-component vector of float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 move second child to first child (temp 4X4 matrix of float) +0:406 'r6' (temp 4X4 matrix of float) +0:406 matrix-scale (temp 4X4 matrix of float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 'inF0' (temp float) +0:406 move second child to first child (temp 4X4 matrix of float) +0:406 'r7' (temp 4X4 matrix of float) +0:406 matrix-scale (temp 4X4 matrix of float) +0:406 'inF0' (temp float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 move second child to first child (temp 4X4 matrix of float) +0:406 'r8' (temp 4X4 matrix of float) +0:406 matrix-multiply (temp 4X4 matrix of float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 'inFM1' (temp 4X4 matrix of float) 0:? Linker Objects @@ -976,7 +1408,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:62 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float) +0:66 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (temp float) 0:2 'inF1' (temp float) @@ -1003,802 +1435,1028 @@ gl_FragCoord origin is upper left 0:11 'inF0' (temp float) 0:11 'inF1' (temp float) 0:11 'inF2' (temp float) -0:12 cosine (global float) -0:12 'inF0' (temp float) -0:13 hyp. cosine (global float) +0:12 Test condition and select (temp void) +0:12 Condition +0:12 Compare Less Than (temp bool) +0:12 'inF0' (temp float) +0:12 Constant: +0:12 0.000000 +0:12 true case +0:12 Branch: Kill +0:13 cosine (global float) 0:13 'inF0' (temp float) -0:14 bitCount (global uint) -0:14 Constant: -0:14 7 (const uint) -0:15 dPdx (global float) -0:15 'inF0' (temp float) -0:16 dPdxCoarse (global float) +0:14 hyp. cosine (global float) +0:14 'inF0' (temp float) +0:15 bitCount (global uint) +0:15 Constant: +0:15 7 (const uint) +0:16 dPdx (global float) 0:16 'inF0' (temp float) -0:17 dPdxFine (global float) +0:17 dPdxCoarse (global float) 0:17 'inF0' (temp float) -0:18 dPdy (global float) +0:18 dPdxFine (global float) 0:18 'inF0' (temp float) -0:19 dPdyCoarse (global float) +0:19 dPdy (global float) 0:19 'inF0' (temp float) -0:20 dPdyFine (global float) +0:20 dPdyCoarse (global float) 0:20 'inF0' (temp float) -0:21 degrees (global float) +0:21 dPdyFine (global float) 0:21 'inF0' (temp float) -0:25 exp (global float) -0:25 'inF0' (temp float) -0:26 exp2 (global float) +0:22 degrees (global float) +0:22 'inF0' (temp float) +0:26 exp (global float) 0:26 'inF0' (temp float) -0:27 findMSB (global int) -0:27 Constant: -0:27 7 (const int) -0:28 findLSB (global int) +0:27 exp2 (global float) +0:27 'inF0' (temp float) +0:28 findMSB (global int) 0:28 Constant: 0:28 7 (const int) -0:29 Floor (global float) -0:29 'inF0' (temp float) -0:31 Function Call: fmod(f1;f1; (global float) -0:31 'inF0' (temp float) -0:31 'inF1' (temp float) -0:32 Fraction (global float) +0:29 findLSB (global int) +0:29 Constant: +0:29 7 (const int) +0:30 Floor (global float) +0:30 'inF0' (temp float) +0:32 mod (global float) 0:32 'inF0' (temp float) -0:33 frexp (global float) +0:32 'inF1' (temp float) +0:33 Fraction (global float) 0:33 'inF0' (temp float) -0:33 'inF1' (temp float) -0:34 fwidth (global float) +0:34 frexp (global float) 0:34 'inF0' (temp float) -0:35 isinf (global bool) +0:34 'inF1' (temp float) +0:35 fwidth (global float) 0:35 'inF0' (temp float) -0:36 isnan (global bool) +0:36 isinf (global bool) 0:36 'inF0' (temp float) -0:37 ldexp (global float) +0:37 isnan (global bool) 0:37 'inF0' (temp float) -0:37 'inF1' (temp float) -0:38 log (global float) +0:38 ldexp (global float) 0:38 'inF0' (temp float) -0:39 log2 (global float) +0:38 'inF1' (temp float) +0:39 log (global float) 0:39 'inF0' (temp float) -0:40 max (global float) -0:40 'inF0' (temp float) -0:40 'inF1' (temp float) -0:41 min (global float) +0:40 component-wise multiply (temp float) +0:40 log2 (temp float) +0:40 'inF0' (temp float) +0:40 Constant: +0:40 0.301030 +0:41 log2 (global float) 0:41 'inF0' (temp float) -0:41 'inF1' (temp float) -0:43 pow (global float) +0:42 max (global float) +0:42 'inF0' (temp float) +0:42 'inF1' (temp float) +0:43 min (global float) 0:43 'inF0' (temp float) 0:43 'inF1' (temp float) -0:44 radians (global float) +0:44 pow (global float) 0:44 'inF0' (temp float) -0:45 bitFieldReverse (global uint) -0:45 Constant: -0:45 2 (const uint) -0:46 roundEven (global float) +0:44 'inF1' (temp float) +0:45 radians (global float) +0:45 'inF0' (temp float) +0:46 divide (temp float) +0:46 Constant: +0:46 1.000000 0:46 'inF0' (temp float) -0:47 inverse sqrt (global float) -0:47 'inF0' (temp float) -0:48 Sign (global float) +0:47 bitFieldReverse (global uint) +0:47 Constant: +0:47 2 (const uint) +0:48 roundEven (global float) 0:48 'inF0' (temp float) -0:49 sine (global float) +0:49 inverse sqrt (global float) 0:49 'inF0' (temp float) -0:50 hyp. sine (global float) +0:50 clamp (global float) 0:50 'inF0' (temp float) -0:51 smoothstep (global float) +0:50 Constant: +0:50 0.000000 +0:50 Constant: +0:50 1.000000 +0:51 Sign (global float) 0:51 'inF0' (temp float) -0:51 'inF1' (temp float) -0:51 'inF2' (temp float) -0:52 sqrt (global float) +0:52 sine (global float) 0:52 'inF0' (temp float) -0:53 step (global float) -0:53 'inF0' (temp float) -0:53 'inF1' (temp float) -0:54 tangent (global float) +0:53 Sequence +0:53 move second child to first child (temp float) +0:53 'inF1' (temp float) +0:53 sine (temp float) +0:53 'inF0' (temp float) +0:53 move second child to first child (temp float) +0:53 'inF2' (temp float) +0:53 cosine (temp float) +0:53 'inF0' (temp float) +0:54 hyp. sine (global float) 0:54 'inF0' (temp float) -0:55 hyp. tangent (global float) +0:55 smoothstep (global float) 0:55 'inF0' (temp float) -0:57 trunc (global float) +0:55 'inF1' (temp float) +0:55 'inF2' (temp float) +0:56 sqrt (global float) +0:56 'inF0' (temp float) +0:57 step (global float) 0:57 'inF0' (temp float) -0:59 Branch: Return with expression -0:59 Constant: -0:59 0.000000 -0:68 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:63 Function Parameters: -0:63 'inF0' (temp 1-component vector of float) -0:63 'inF1' (temp 1-component vector of float) -0:63 'inF2' (temp 1-component vector of float) +0:57 'inF1' (temp float) +0:58 tangent (global float) +0:58 'inF0' (temp float) +0:59 hyp. tangent (global float) +0:59 'inF0' (temp float) +0:61 trunc (global float) +0:61 'inF0' (temp float) +0:63 Branch: Return with expression +0:63 Constant: +0:63 0.000000 +0:72 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:67 Function Parameters: +0:67 'inF0' (temp 1-component vector of float) +0:67 'inF1' (temp 1-component vector of float) +0:67 'inF2' (temp 1-component vector of float) 0:? Sequence -0:65 Branch: Return with expression -0:65 Constant: -0:65 0.000000 -0:137 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) -0:69 Function Parameters: -0:69 'inF0' (temp 2-component vector of float) -0:69 'inF1' (temp 2-component vector of float) -0:69 'inF2' (temp 2-component vector of float) +0:69 Branch: Return with expression +0:69 Constant: +0:69 0.000000 +0:145 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) +0:73 Function Parameters: +0:73 'inF0' (temp 2-component vector of float) +0:73 'inF1' (temp 2-component vector of float) +0:73 'inF2' (temp 2-component vector of float) 0:? Sequence -0:70 all (global bool) -0:70 'inF0' (temp 2-component vector of float) -0:71 Absolute value (global 2-component vector of float) -0:71 'inF0' (temp 2-component vector of float) -0:72 arc cosine (global 2-component vector of float) -0:72 'inF0' (temp 2-component vector of float) -0:73 any (global bool) -0:73 'inF0' (temp 2-component vector of float) -0:74 arc sine (global 2-component vector of float) +0:74 all (global bool) 0:74 'inF0' (temp 2-component vector of float) -0:75 arc tangent (global 2-component vector of float) +0:75 Absolute value (global 2-component vector of float) 0:75 'inF0' (temp 2-component vector of float) -0:76 arc tangent (global 2-component vector of float) +0:76 arc cosine (global 2-component vector of float) 0:76 'inF0' (temp 2-component vector of float) -0:76 'inF1' (temp 2-component vector of float) -0:77 Ceiling (global 2-component vector of float) +0:77 any (global bool) 0:77 'inF0' (temp 2-component vector of float) -0:78 clamp (global 2-component vector of float) +0:78 arc sine (global 2-component vector of float) 0:78 'inF0' (temp 2-component vector of float) -0:78 'inF1' (temp 2-component vector of float) -0:78 'inF2' (temp 2-component vector of float) -0:79 cosine (global 2-component vector of float) +0:79 arc tangent (global 2-component vector of float) 0:79 'inF0' (temp 2-component vector of float) -0:80 hyp. cosine (global 2-component vector of float) +0:80 arc tangent (global 2-component vector of float) 0:80 'inF0' (temp 2-component vector of float) +0:80 'inF1' (temp 2-component vector of float) +0:81 Ceiling (global 2-component vector of float) +0:81 'inF0' (temp 2-component vector of float) +0:82 clamp (global 2-component vector of float) +0:82 'inF0' (temp 2-component vector of float) +0:82 'inF1' (temp 2-component vector of float) +0:82 'inF2' (temp 2-component vector of float) +0:83 Test condition and select (temp void) +0:83 Condition +0:83 any (temp bool) +0:83 Compare Less Than (temp 2-component vector of bool) +0:83 'inF0' (temp 2-component vector of float) +0:83 Constant: +0:83 0.000000 +0:83 0.000000 +0:83 true case +0:83 Branch: Kill +0:84 cosine (global 2-component vector of float) +0:84 'inF0' (temp 2-component vector of float) +0:85 hyp. cosine (global 2-component vector of float) +0:85 'inF0' (temp 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:82 dPdx (global 2-component vector of float) -0:82 'inF0' (temp 2-component vector of float) -0:83 dPdxCoarse (global 2-component vector of float) -0:83 'inF0' (temp 2-component vector of float) -0:84 dPdxFine (global 2-component vector of float) -0:84 'inF0' (temp 2-component vector of float) -0:85 dPdy (global 2-component vector of float) -0:85 'inF0' (temp 2-component vector of float) -0:86 dPdyCoarse (global 2-component vector of float) -0:86 'inF0' (temp 2-component vector of float) -0:87 dPdyFine (global 2-component vector of float) +0:87 dPdx (global 2-component vector of float) 0:87 'inF0' (temp 2-component vector of float) -0:88 degrees (global 2-component vector of float) +0:88 dPdxCoarse (global 2-component vector of float) 0:88 'inF0' (temp 2-component vector of float) -0:89 distance (global float) +0:89 dPdxFine (global 2-component vector of float) 0:89 'inF0' (temp 2-component vector of float) -0:89 'inF1' (temp 2-component vector of float) -0:90 dot-product (global float) +0:90 dPdy (global 2-component vector of float) 0:90 'inF0' (temp 2-component vector of float) -0:90 'inF1' (temp 2-component vector of float) -0:94 exp (global 2-component vector of float) +0:91 dPdyCoarse (global 2-component vector of float) +0:91 'inF0' (temp 2-component vector of float) +0:92 dPdyFine (global 2-component vector of float) +0:92 'inF0' (temp 2-component vector of float) +0:93 degrees (global 2-component vector of float) +0:93 'inF0' (temp 2-component vector of float) +0:94 distance (global float) 0:94 'inF0' (temp 2-component vector of float) -0:95 exp2 (global 2-component vector of float) +0:94 'inF1' (temp 2-component vector of float) +0:95 dot-product (global float) 0:95 'inF0' (temp 2-component vector of float) -0:96 face-forward (global 2-component vector of float) -0:96 'inF0' (temp 2-component vector of float) -0:96 'inF1' (temp 2-component vector of float) -0:96 'inF2' (temp 2-component vector of float) -0:97 findMSB (global int) -0:97 Constant: -0:97 7 (const int) -0:98 findLSB (global int) -0:98 Constant: -0:98 7 (const int) -0:99 Floor (global 2-component vector of float) +0:95 'inF1' (temp 2-component vector of float) +0:99 exp (global 2-component vector of float) 0:99 'inF0' (temp 2-component vector of float) -0:101 Function Call: fmod(vf2;vf2; (global 2-component vector of float) +0:100 exp2 (global 2-component vector of float) +0:100 'inF0' (temp 2-component vector of float) +0:101 face-forward (global 2-component vector of float) 0:101 'inF0' (temp 2-component vector of float) 0:101 'inF1' (temp 2-component vector of float) -0:102 Fraction (global 2-component vector of float) -0:102 'inF0' (temp 2-component vector of float) -0:103 frexp (global 2-component vector of float) -0:103 'inF0' (temp 2-component vector of float) -0:103 'inF1' (temp 2-component vector of float) -0:104 fwidth (global 2-component vector of float) +0:101 'inF2' (temp 2-component vector of float) +0:102 findMSB (global int) +0:102 Constant: +0:102 7 (const int) +0:103 findLSB (global int) +0:103 Constant: +0:103 7 (const int) +0:104 Floor (global 2-component vector of float) 0:104 'inF0' (temp 2-component vector of float) -0:105 isinf (global 2-component vector of bool) -0:105 'inF0' (temp 2-component vector of float) -0:106 isnan (global 2-component vector of bool) +0:106 mod (global 2-component vector of float) 0:106 'inF0' (temp 2-component vector of float) -0:107 ldexp (global 2-component vector of float) +0:106 'inF1' (temp 2-component vector of float) +0:107 Fraction (global 2-component vector of float) 0:107 'inF0' (temp 2-component vector of float) -0:107 'inF1' (temp 2-component vector of float) -0:108 length (global float) +0:108 frexp (global 2-component vector of float) 0:108 'inF0' (temp 2-component vector of float) -0:109 log (global 2-component vector of float) +0:108 'inF1' (temp 2-component vector of float) +0:109 fwidth (global 2-component vector of float) 0:109 'inF0' (temp 2-component vector of float) -0:110 log2 (global 2-component vector of float) +0:110 isinf (global 2-component vector of bool) 0:110 'inF0' (temp 2-component vector of float) -0:111 max (global 2-component vector of float) +0:111 isnan (global 2-component vector of bool) 0:111 'inF0' (temp 2-component vector of float) -0:111 'inF1' (temp 2-component vector of float) -0:112 min (global 2-component vector of float) +0:112 ldexp (global 2-component vector of float) 0:112 'inF0' (temp 2-component vector of float) 0:112 'inF1' (temp 2-component vector of float) -0:114 normalize (global 2-component vector of float) +0:113 length (global float) +0:113 'inF0' (temp 2-component vector of float) +0:114 log (global 2-component vector of float) 0:114 'inF0' (temp 2-component vector of float) -0:115 pow (global 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) -0:115 'inF1' (temp 2-component vector of float) -0:116 radians (global 2-component vector of float) +0:115 vector-scale (temp 2-component vector of float) +0:115 log2 (temp 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:115 Constant: +0:115 0.301030 +0:116 log2 (global 2-component vector of float) 0:116 'inF0' (temp 2-component vector of float) -0:117 reflect (global 2-component vector of float) +0:117 max (global 2-component vector of float) 0:117 'inF0' (temp 2-component vector of float) 0:117 'inF1' (temp 2-component vector of float) -0:118 refract (global 2-component vector of float) +0:118 min (global 2-component vector of float) 0:118 'inF0' (temp 2-component vector of float) 0:118 'inF1' (temp 2-component vector of float) -0:118 Constant: -0:118 2.000000 +0:119 normalize (global 2-component vector of float) +0:119 'inF0' (temp 2-component vector of float) +0:120 pow (global 2-component vector of float) +0:120 'inF0' (temp 2-component vector of float) +0:120 'inF1' (temp 2-component vector of float) +0:121 radians (global 2-component vector of float) +0:121 'inF0' (temp 2-component vector of float) +0:122 divide (temp 2-component vector of float) +0:122 Constant: +0:122 1.000000 +0:122 'inF0' (temp 2-component vector of float) +0:123 reflect (global 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:123 'inF1' (temp 2-component vector of float) +0:124 refract (global 2-component vector of float) +0:124 'inF0' (temp 2-component vector of float) +0:124 'inF1' (temp 2-component vector of float) +0:124 Constant: +0:124 2.000000 0:? bitFieldReverse (global 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:120 roundEven (global 2-component vector of float) -0:120 'inF0' (temp 2-component vector of float) -0:121 inverse sqrt (global 2-component vector of float) -0:121 'inF0' (temp 2-component vector of float) -0:122 Sign (global 2-component vector of float) -0:122 'inF0' (temp 2-component vector of float) -0:123 sine (global 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) -0:124 hyp. sine (global 2-component vector of float) -0:124 'inF0' (temp 2-component vector of float) -0:125 smoothstep (global 2-component vector of float) -0:125 'inF0' (temp 2-component vector of float) -0:125 'inF1' (temp 2-component vector of float) -0:125 'inF2' (temp 2-component vector of float) -0:126 sqrt (global 2-component vector of float) +0:126 roundEven (global 2-component vector of float) 0:126 'inF0' (temp 2-component vector of float) -0:127 step (global 2-component vector of float) +0:127 inverse sqrt (global 2-component vector of float) 0:127 'inF0' (temp 2-component vector of float) -0:127 'inF1' (temp 2-component vector of float) -0:128 tangent (global 2-component vector of float) +0:128 clamp (global 2-component vector of float) 0:128 'inF0' (temp 2-component vector of float) -0:129 hyp. tangent (global 2-component vector of float) +0:128 Constant: +0:128 0.000000 +0:128 Constant: +0:128 1.000000 +0:129 Sign (global 2-component vector of float) 0:129 'inF0' (temp 2-component vector of float) -0:131 trunc (global 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) -0:134 Branch: Return with expression +0:130 sine (global 2-component vector of float) +0:130 'inF0' (temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp 2-component vector of float) +0:131 'inF1' (temp 2-component vector of float) +0:131 sine (temp 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:131 move second child to first child (temp 2-component vector of float) +0:131 'inF2' (temp 2-component vector of float) +0:131 cosine (temp 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:132 hyp. sine (global 2-component vector of float) +0:132 'inF0' (temp 2-component vector of float) +0:133 smoothstep (global 2-component vector of float) +0:133 'inF0' (temp 2-component vector of float) +0:133 'inF1' (temp 2-component vector of float) +0:133 'inF2' (temp 2-component vector of float) +0:134 sqrt (global 2-component vector of float) +0:134 'inF0' (temp 2-component vector of float) +0:135 step (global 2-component vector of float) +0:135 'inF0' (temp 2-component vector of float) +0:135 'inF1' (temp 2-component vector of float) +0:136 tangent (global 2-component vector of float) +0:136 'inF0' (temp 2-component vector of float) +0:137 hyp. tangent (global 2-component vector of float) +0:137 'inF0' (temp 2-component vector of float) +0:139 trunc (global 2-component vector of float) +0:139 'inF0' (temp 2-component vector of float) +0:142 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:207 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) -0:138 Function Parameters: -0:138 'inF0' (temp 3-component vector of float) -0:138 'inF1' (temp 3-component vector of float) -0:138 'inF2' (temp 3-component vector of float) +0:219 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) +0:146 Function Parameters: +0:146 'inF0' (temp 3-component vector of float) +0:146 'inF1' (temp 3-component vector of float) +0:146 'inF2' (temp 3-component vector of float) 0:? Sequence -0:139 all (global bool) -0:139 'inF0' (temp 3-component vector of float) -0:140 Absolute value (global 3-component vector of float) -0:140 'inF0' (temp 3-component vector of float) -0:141 arc cosine (global 3-component vector of float) -0:141 'inF0' (temp 3-component vector of float) -0:142 any (global bool) -0:142 'inF0' (temp 3-component vector of float) -0:143 arc sine (global 3-component vector of float) -0:143 'inF0' (temp 3-component vector of float) -0:144 arc tangent (global 3-component vector of float) -0:144 'inF0' (temp 3-component vector of float) -0:145 arc tangent (global 3-component vector of float) -0:145 'inF0' (temp 3-component vector of float) -0:145 'inF1' (temp 3-component vector of float) -0:146 Ceiling (global 3-component vector of float) -0:146 'inF0' (temp 3-component vector of float) -0:147 clamp (global 3-component vector of float) +0:147 all (global bool) 0:147 'inF0' (temp 3-component vector of float) -0:147 'inF1' (temp 3-component vector of float) -0:147 'inF2' (temp 3-component vector of float) -0:148 cosine (global 3-component vector of float) +0:148 Absolute value (global 3-component vector of float) 0:148 'inF0' (temp 3-component vector of float) -0:149 hyp. cosine (global 3-component vector of float) +0:149 arc cosine (global 3-component vector of float) 0:149 'inF0' (temp 3-component vector of float) +0:150 any (global bool) +0:150 'inF0' (temp 3-component vector of float) +0:151 arc sine (global 3-component vector of float) +0:151 'inF0' (temp 3-component vector of float) +0:152 arc tangent (global 3-component vector of float) +0:152 'inF0' (temp 3-component vector of float) +0:153 arc tangent (global 3-component vector of float) +0:153 'inF0' (temp 3-component vector of float) +0:153 'inF1' (temp 3-component vector of float) +0:154 Ceiling (global 3-component vector of float) +0:154 'inF0' (temp 3-component vector of float) +0:155 clamp (global 3-component vector of float) +0:155 'inF0' (temp 3-component vector of float) +0:155 'inF1' (temp 3-component vector of float) +0:155 'inF2' (temp 3-component vector of float) +0:156 Test condition and select (temp void) +0:156 Condition +0:156 any (temp bool) +0:156 Compare Less Than (temp 3-component vector of bool) +0:156 'inF0' (temp 3-component vector of float) +0:156 Constant: +0:156 0.000000 +0:156 0.000000 +0:156 0.000000 +0:156 true case +0:156 Branch: Kill +0:157 cosine (global 3-component vector of float) +0:157 'inF0' (temp 3-component vector of float) +0:158 hyp. cosine (global 3-component vector of float) +0:158 'inF0' (temp 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:151 cross-product (global 3-component vector of float) -0:151 'inF0' (temp 3-component vector of float) -0:151 'inF1' (temp 3-component vector of float) -0:152 dPdx (global 3-component vector of float) -0:152 'inF0' (temp 3-component vector of float) -0:153 dPdxCoarse (global 3-component vector of float) -0:153 'inF0' (temp 3-component vector of float) -0:154 dPdxFine (global 3-component vector of float) -0:154 'inF0' (temp 3-component vector of float) -0:155 dPdy (global 3-component vector of float) -0:155 'inF0' (temp 3-component vector of float) -0:156 dPdyCoarse (global 3-component vector of float) -0:156 'inF0' (temp 3-component vector of float) -0:157 dPdyFine (global 3-component vector of float) -0:157 'inF0' (temp 3-component vector of float) -0:158 degrees (global 3-component vector of float) -0:158 'inF0' (temp 3-component vector of float) -0:159 distance (global float) -0:159 'inF0' (temp 3-component vector of float) -0:159 'inF1' (temp 3-component vector of float) -0:160 dot-product (global float) +0:160 cross-product (global 3-component vector of float) 0:160 'inF0' (temp 3-component vector of float) 0:160 'inF1' (temp 3-component vector of float) -0:164 exp (global 3-component vector of float) +0:161 dPdx (global 3-component vector of float) +0:161 'inF0' (temp 3-component vector of float) +0:162 dPdxCoarse (global 3-component vector of float) +0:162 'inF0' (temp 3-component vector of float) +0:163 dPdxFine (global 3-component vector of float) +0:163 'inF0' (temp 3-component vector of float) +0:164 dPdy (global 3-component vector of float) 0:164 'inF0' (temp 3-component vector of float) -0:165 exp2 (global 3-component vector of float) +0:165 dPdyCoarse (global 3-component vector of float) 0:165 'inF0' (temp 3-component vector of float) -0:166 face-forward (global 3-component vector of float) +0:166 dPdyFine (global 3-component vector of float) 0:166 'inF0' (temp 3-component vector of float) -0:166 'inF1' (temp 3-component vector of float) -0:166 'inF2' (temp 3-component vector of float) -0:167 findMSB (global int) -0:167 Constant: -0:167 7 (const int) -0:168 findLSB (global int) -0:168 Constant: -0:168 7 (const int) -0:169 Floor (global 3-component vector of float) +0:167 degrees (global 3-component vector of float) +0:167 'inF0' (temp 3-component vector of float) +0:168 distance (global float) +0:168 'inF0' (temp 3-component vector of float) +0:168 'inF1' (temp 3-component vector of float) +0:169 dot-product (global float) 0:169 'inF0' (temp 3-component vector of float) -0:171 Function Call: fmod(vf3;vf3; (global 3-component vector of float) -0:171 'inF0' (temp 3-component vector of float) -0:171 'inF1' (temp 3-component vector of float) -0:172 Fraction (global 3-component vector of float) -0:172 'inF0' (temp 3-component vector of float) -0:173 frexp (global 3-component vector of float) +0:169 'inF1' (temp 3-component vector of float) +0:173 exp (global 3-component vector of float) 0:173 'inF0' (temp 3-component vector of float) -0:173 'inF1' (temp 3-component vector of float) -0:174 fwidth (global 3-component vector of float) +0:174 exp2 (global 3-component vector of float) 0:174 'inF0' (temp 3-component vector of float) -0:175 isinf (global 3-component vector of bool) +0:175 face-forward (global 3-component vector of float) 0:175 'inF0' (temp 3-component vector of float) -0:176 isnan (global 3-component vector of bool) -0:176 'inF0' (temp 3-component vector of float) -0:177 ldexp (global 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) -0:177 'inF1' (temp 3-component vector of float) -0:178 length (global float) +0:175 'inF1' (temp 3-component vector of float) +0:175 'inF2' (temp 3-component vector of float) +0:176 findMSB (global int) +0:176 Constant: +0:176 7 (const int) +0:177 findLSB (global int) +0:177 Constant: +0:177 7 (const int) +0:178 Floor (global 3-component vector of float) 0:178 'inF0' (temp 3-component vector of float) -0:179 log (global 3-component vector of float) -0:179 'inF0' (temp 3-component vector of float) -0:180 log2 (global 3-component vector of float) +0:180 mod (global 3-component vector of float) 0:180 'inF0' (temp 3-component vector of float) -0:181 max (global 3-component vector of float) +0:180 'inF1' (temp 3-component vector of float) +0:181 Fraction (global 3-component vector of float) 0:181 'inF0' (temp 3-component vector of float) -0:181 'inF1' (temp 3-component vector of float) -0:182 min (global 3-component vector of float) +0:182 frexp (global 3-component vector of float) 0:182 'inF0' (temp 3-component vector of float) 0:182 'inF1' (temp 3-component vector of float) -0:184 normalize (global 3-component vector of float) +0:183 fwidth (global 3-component vector of float) +0:183 'inF0' (temp 3-component vector of float) +0:184 isinf (global 3-component vector of bool) 0:184 'inF0' (temp 3-component vector of float) -0:185 pow (global 3-component vector of float) +0:185 isnan (global 3-component vector of bool) 0:185 'inF0' (temp 3-component vector of float) -0:185 'inF1' (temp 3-component vector of float) -0:186 radians (global 3-component vector of float) +0:186 ldexp (global 3-component vector of float) 0:186 'inF0' (temp 3-component vector of float) -0:187 reflect (global 3-component vector of float) +0:186 'inF1' (temp 3-component vector of float) +0:187 length (global float) 0:187 'inF0' (temp 3-component vector of float) -0:187 'inF1' (temp 3-component vector of float) -0:188 refract (global 3-component vector of float) +0:188 log (global 3-component vector of float) 0:188 'inF0' (temp 3-component vector of float) -0:188 'inF1' (temp 3-component vector of float) -0:188 Constant: -0:188 2.000000 +0:189 vector-scale (temp 3-component vector of float) +0:189 log2 (temp 3-component vector of float) +0:189 'inF0' (temp 3-component vector of float) +0:189 Constant: +0:189 0.301030 +0:190 log2 (global 3-component vector of float) +0:190 'inF0' (temp 3-component vector of float) +0:191 max (global 3-component vector of float) +0:191 'inF0' (temp 3-component vector of float) +0:191 'inF1' (temp 3-component vector of float) +0:192 min (global 3-component vector of float) +0:192 'inF0' (temp 3-component vector of float) +0:192 'inF1' (temp 3-component vector of float) +0:193 normalize (global 3-component vector of float) +0:193 'inF0' (temp 3-component vector of float) +0:194 pow (global 3-component vector of float) +0:194 'inF0' (temp 3-component vector of float) +0:194 'inF1' (temp 3-component vector of float) +0:195 radians (global 3-component vector of float) +0:195 'inF0' (temp 3-component vector of float) +0:196 divide (temp 3-component vector of float) +0:196 Constant: +0:196 1.000000 +0:196 'inF0' (temp 3-component vector of float) +0:197 reflect (global 3-component vector of float) +0:197 'inF0' (temp 3-component vector of float) +0:197 'inF1' (temp 3-component vector of float) +0:198 refract (global 3-component vector of float) +0:198 'inF0' (temp 3-component vector of float) +0:198 'inF1' (temp 3-component vector of float) +0:198 Constant: +0:198 2.000000 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:190 roundEven (global 3-component vector of float) -0:190 'inF0' (temp 3-component vector of float) -0:191 inverse sqrt (global 3-component vector of float) -0:191 'inF0' (temp 3-component vector of float) -0:192 Sign (global 3-component vector of float) -0:192 'inF0' (temp 3-component vector of float) -0:193 sine (global 3-component vector of float) -0:193 'inF0' (temp 3-component vector of float) -0:194 hyp. sine (global 3-component vector of float) -0:194 'inF0' (temp 3-component vector of float) -0:195 smoothstep (global 3-component vector of float) -0:195 'inF0' (temp 3-component vector of float) -0:195 'inF1' (temp 3-component vector of float) -0:195 'inF2' (temp 3-component vector of float) -0:196 sqrt (global 3-component vector of float) -0:196 'inF0' (temp 3-component vector of float) -0:197 step (global 3-component vector of float) -0:197 'inF0' (temp 3-component vector of float) -0:197 'inF1' (temp 3-component vector of float) -0:198 tangent (global 3-component vector of float) -0:198 'inF0' (temp 3-component vector of float) -0:199 hyp. tangent (global 3-component vector of float) -0:199 'inF0' (temp 3-component vector of float) -0:201 trunc (global 3-component vector of float) +0:200 roundEven (global 3-component vector of float) +0:200 'inF0' (temp 3-component vector of float) +0:201 inverse sqrt (global 3-component vector of float) 0:201 'inF0' (temp 3-component vector of float) -0:204 Branch: Return with expression +0:202 clamp (global 3-component vector of float) +0:202 'inF0' (temp 3-component vector of float) +0:202 Constant: +0:202 0.000000 +0:202 Constant: +0:202 1.000000 +0:203 Sign (global 3-component vector of float) +0:203 'inF0' (temp 3-component vector of float) +0:204 sine (global 3-component vector of float) +0:204 'inF0' (temp 3-component vector of float) +0:205 Sequence +0:205 move second child to first child (temp 3-component vector of float) +0:205 'inF1' (temp 3-component vector of float) +0:205 sine (temp 3-component vector of float) +0:205 'inF0' (temp 3-component vector of float) +0:205 move second child to first child (temp 3-component vector of float) +0:205 'inF2' (temp 3-component vector of float) +0:205 cosine (temp 3-component vector of float) +0:205 'inF0' (temp 3-component vector of float) +0:206 hyp. sine (global 3-component vector of float) +0:206 'inF0' (temp 3-component vector of float) +0:207 smoothstep (global 3-component vector of float) +0:207 'inF0' (temp 3-component vector of float) +0:207 'inF1' (temp 3-component vector of float) +0:207 'inF2' (temp 3-component vector of float) +0:208 sqrt (global 3-component vector of float) +0:208 'inF0' (temp 3-component vector of float) +0:209 step (global 3-component vector of float) +0:209 'inF0' (temp 3-component vector of float) +0:209 'inF1' (temp 3-component vector of float) +0:210 tangent (global 3-component vector of float) +0:210 'inF0' (temp 3-component vector of float) +0:211 hyp. tangent (global 3-component vector of float) +0:211 'inF0' (temp 3-component vector of float) +0:213 trunc (global 3-component vector of float) +0:213 'inF0' (temp 3-component vector of float) +0:216 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:328 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) -0:208 Function Parameters: -0:208 'inF0' (temp 4-component vector of float) -0:208 'inF1' (temp 4-component vector of float) -0:208 'inF2' (temp 4-component vector of float) +0:349 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) +0:220 Function Parameters: +0:220 'inF0' (temp 4-component vector of float) +0:220 'inF1' (temp 4-component vector of float) +0:220 'inF2' (temp 4-component vector of float) 0:? Sequence -0:209 all (global bool) -0:209 'inF0' (temp 4-component vector of float) -0:210 Absolute value (global 4-component vector of float) -0:210 'inF0' (temp 4-component vector of float) -0:211 arc cosine (global 4-component vector of float) -0:211 'inF0' (temp 4-component vector of float) -0:212 any (global bool) -0:212 'inF0' (temp 4-component vector of float) -0:213 arc sine (global 4-component vector of float) -0:213 'inF0' (temp 4-component vector of float) -0:214 arc tangent (global 4-component vector of float) -0:214 'inF0' (temp 4-component vector of float) -0:215 arc tangent (global 4-component vector of float) -0:215 'inF0' (temp 4-component vector of float) -0:215 'inF1' (temp 4-component vector of float) -0:216 Ceiling (global 4-component vector of float) -0:216 'inF0' (temp 4-component vector of float) -0:217 clamp (global 4-component vector of float) -0:217 'inF0' (temp 4-component vector of float) -0:217 'inF1' (temp 4-component vector of float) -0:217 'inF2' (temp 4-component vector of float) -0:218 cosine (global 4-component vector of float) -0:218 'inF0' (temp 4-component vector of float) -0:219 hyp. cosine (global 4-component vector of float) -0:219 'inF0' (temp 4-component vector of float) +0:221 all (global bool) +0:221 'inF0' (temp 4-component vector of float) +0:222 Absolute value (global 4-component vector of float) +0:222 'inF0' (temp 4-component vector of float) +0:223 arc cosine (global 4-component vector of float) +0:223 'inF0' (temp 4-component vector of float) +0:224 any (global bool) +0:224 'inF0' (temp 4-component vector of float) +0:225 arc sine (global 4-component vector of float) +0:225 'inF0' (temp 4-component vector of float) +0:226 arc tangent (global 4-component vector of float) +0:226 'inF0' (temp 4-component vector of float) +0:227 arc tangent (global 4-component vector of float) +0:227 'inF0' (temp 4-component vector of float) +0:227 'inF1' (temp 4-component vector of float) +0:228 Ceiling (global 4-component vector of float) +0:228 'inF0' (temp 4-component vector of float) +0:229 clamp (global 4-component vector of float) +0:229 'inF0' (temp 4-component vector of float) +0:229 'inF1' (temp 4-component vector of float) +0:229 'inF2' (temp 4-component vector of float) +0:230 Test condition and select (temp void) +0:230 Condition +0:230 any (temp bool) +0:230 Compare Less Than (temp 4-component vector of bool) +0:230 'inF0' (temp 4-component vector of float) +0:230 Constant: +0:230 0.000000 +0:230 0.000000 +0:230 0.000000 +0:230 0.000000 +0:230 true case +0:230 Branch: Kill +0:231 cosine (global 4-component vector of float) +0:231 'inF0' (temp 4-component vector of float) +0:232 hyp. cosine (global 4-component vector of float) +0:232 'inF0' (temp 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:221 dPdx (global 4-component vector of float) -0:221 'inF0' (temp 4-component vector of float) -0:222 dPdxCoarse (global 4-component vector of float) -0:222 'inF0' (temp 4-component vector of float) -0:223 dPdxFine (global 4-component vector of float) -0:223 'inF0' (temp 4-component vector of float) -0:224 dPdy (global 4-component vector of float) -0:224 'inF0' (temp 4-component vector of float) -0:225 dPdyCoarse (global 4-component vector of float) -0:225 'inF0' (temp 4-component vector of float) -0:226 dPdyFine (global 4-component vector of float) -0:226 'inF0' (temp 4-component vector of float) -0:227 degrees (global 4-component vector of float) -0:227 'inF0' (temp 4-component vector of float) -0:228 distance (global float) -0:228 'inF0' (temp 4-component vector of float) -0:228 'inF1' (temp 4-component vector of float) -0:229 dot-product (global float) -0:229 'inF0' (temp 4-component vector of float) -0:229 'inF1' (temp 4-component vector of float) -0:233 exp (global 4-component vector of float) -0:233 'inF0' (temp 4-component vector of float) -0:234 exp2 (global 4-component vector of float) +0:234 dPdx (global 4-component vector of float) 0:234 'inF0' (temp 4-component vector of float) -0:235 face-forward (global 4-component vector of float) +0:235 dPdxCoarse (global 4-component vector of float) 0:235 'inF0' (temp 4-component vector of float) -0:235 'inF1' (temp 4-component vector of float) -0:235 'inF2' (temp 4-component vector of float) -0:236 findMSB (global int) -0:236 Constant: -0:236 7 (const int) -0:237 findLSB (global int) -0:237 Constant: -0:237 7 (const int) -0:238 Floor (global 4-component vector of float) +0:236 dPdxFine (global 4-component vector of float) +0:236 'inF0' (temp 4-component vector of float) +0:237 dPdy (global 4-component vector of float) +0:237 'inF0' (temp 4-component vector of float) +0:238 dPdyCoarse (global 4-component vector of float) 0:238 'inF0' (temp 4-component vector of float) -0:240 Function Call: fmod(vf4;vf4; (global 4-component vector of float) +0:239 dPdyFine (global 4-component vector of float) +0:239 'inF0' (temp 4-component vector of float) +0:240 degrees (global 4-component vector of float) 0:240 'inF0' (temp 4-component vector of float) -0:240 'inF1' (temp 4-component vector of float) -0:241 Fraction (global 4-component vector of float) +0:241 distance (global float) 0:241 'inF0' (temp 4-component vector of float) -0:242 frexp (global 4-component vector of float) +0:241 'inF1' (temp 4-component vector of float) +0:242 dot-product (global float) 0:242 'inF0' (temp 4-component vector of float) 0:242 'inF1' (temp 4-component vector of float) -0:243 fwidth (global 4-component vector of float) -0:243 'inF0' (temp 4-component vector of float) -0:244 isinf (global 4-component vector of bool) -0:244 'inF0' (temp 4-component vector of float) -0:245 isnan (global 4-component vector of bool) -0:245 'inF0' (temp 4-component vector of float) -0:246 ldexp (global 4-component vector of float) -0:246 'inF0' (temp 4-component vector of float) -0:246 'inF1' (temp 4-component vector of float) -0:247 length (global float) +0:243 Construct vec4 (temp float) +0:243 Constant: +0:243 1.000000 +0:243 component-wise multiply (temp float) +0:243 direct index (temp float) +0:243 'inF0' (temp 4-component vector of float) +0:243 Constant: +0:243 1 (const int) +0:243 direct index (temp float) +0:243 'inF1' (temp 4-component vector of float) +0:243 Constant: +0:243 1 (const int) +0:243 direct index (temp float) +0:243 'inF0' (temp 4-component vector of float) +0:243 Constant: +0:243 2 (const int) +0:243 direct index (temp float) +0:243 'inF1' (temp 4-component vector of float) +0:243 Constant: +0:243 3 (const int) +0:247 exp (global 4-component vector of float) 0:247 'inF0' (temp 4-component vector of float) -0:248 log (global 4-component vector of float) +0:248 exp2 (global 4-component vector of float) 0:248 'inF0' (temp 4-component vector of float) -0:249 log2 (global 4-component vector of float) +0:249 face-forward (global 4-component vector of float) 0:249 'inF0' (temp 4-component vector of float) -0:250 max (global 4-component vector of float) -0:250 'inF0' (temp 4-component vector of float) -0:250 'inF1' (temp 4-component vector of float) -0:251 min (global 4-component vector of float) -0:251 'inF0' (temp 4-component vector of float) -0:251 'inF1' (temp 4-component vector of float) -0:253 normalize (global 4-component vector of float) -0:253 'inF0' (temp 4-component vector of float) -0:254 pow (global 4-component vector of float) +0:249 'inF1' (temp 4-component vector of float) +0:249 'inF2' (temp 4-component vector of float) +0:250 findMSB (global int) +0:250 Constant: +0:250 7 (const int) +0:251 findLSB (global int) +0:251 Constant: +0:251 7 (const int) +0:252 Floor (global 4-component vector of float) +0:252 'inF0' (temp 4-component vector of float) +0:254 mod (global 4-component vector of float) 0:254 'inF0' (temp 4-component vector of float) 0:254 'inF1' (temp 4-component vector of float) -0:255 radians (global 4-component vector of float) +0:255 Fraction (global 4-component vector of float) 0:255 'inF0' (temp 4-component vector of float) -0:256 reflect (global 4-component vector of float) +0:256 frexp (global 4-component vector of float) 0:256 'inF0' (temp 4-component vector of float) 0:256 'inF1' (temp 4-component vector of float) -0:257 refract (global 4-component vector of float) +0:257 fwidth (global 4-component vector of float) 0:257 'inF0' (temp 4-component vector of float) -0:257 'inF1' (temp 4-component vector of float) -0:257 Constant: -0:257 2.000000 +0:258 isinf (global 4-component vector of bool) +0:258 'inF0' (temp 4-component vector of float) +0:259 isnan (global 4-component vector of bool) +0:259 'inF0' (temp 4-component vector of float) +0:260 ldexp (global 4-component vector of float) +0:260 'inF0' (temp 4-component vector of float) +0:260 'inF1' (temp 4-component vector of float) +0:261 length (global float) +0:261 'inF0' (temp 4-component vector of float) +0:262 log (global 4-component vector of float) +0:262 'inF0' (temp 4-component vector of float) +0:263 vector-scale (temp 4-component vector of float) +0:263 log2 (temp 4-component vector of float) +0:263 'inF0' (temp 4-component vector of float) +0:263 Constant: +0:263 0.301030 +0:264 log2 (global 4-component vector of float) +0:264 'inF0' (temp 4-component vector of float) +0:265 max (global 4-component vector of float) +0:265 'inF0' (temp 4-component vector of float) +0:265 'inF1' (temp 4-component vector of float) +0:266 min (global 4-component vector of float) +0:266 'inF0' (temp 4-component vector of float) +0:266 'inF1' (temp 4-component vector of float) +0:267 normalize (global 4-component vector of float) +0:267 'inF0' (temp 4-component vector of float) +0:268 pow (global 4-component vector of float) +0:268 'inF0' (temp 4-component vector of float) +0:268 'inF1' (temp 4-component vector of float) +0:269 radians (global 4-component vector of float) +0:269 'inF0' (temp 4-component vector of float) +0:270 divide (temp 4-component vector of float) +0:270 Constant: +0:270 1.000000 +0:270 'inF0' (temp 4-component vector of float) +0:271 reflect (global 4-component vector of float) +0:271 'inF0' (temp 4-component vector of float) +0:271 'inF1' (temp 4-component vector of float) +0:272 refract (global 4-component vector of float) +0:272 'inF0' (temp 4-component vector of float) +0:272 'inF1' (temp 4-component vector of float) +0:272 Constant: +0:272 2.000000 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:259 roundEven (global 4-component vector of float) -0:259 'inF0' (temp 4-component vector of float) -0:260 inverse sqrt (global 4-component vector of float) -0:260 'inF0' (temp 4-component vector of float) -0:261 Sign (global 4-component vector of float) -0:261 'inF0' (temp 4-component vector of float) -0:262 sine (global 4-component vector of float) -0:262 'inF0' (temp 4-component vector of float) -0:263 hyp. sine (global 4-component vector of float) -0:263 'inF0' (temp 4-component vector of float) -0:264 smoothstep (global 4-component vector of float) -0:264 'inF0' (temp 4-component vector of float) -0:264 'inF1' (temp 4-component vector of float) -0:264 'inF2' (temp 4-component vector of float) -0:265 sqrt (global 4-component vector of float) -0:265 'inF0' (temp 4-component vector of float) -0:266 step (global 4-component vector of float) -0:266 'inF0' (temp 4-component vector of float) -0:266 'inF1' (temp 4-component vector of float) -0:267 tangent (global 4-component vector of float) -0:267 'inF0' (temp 4-component vector of float) -0:268 hyp. tangent (global 4-component vector of float) -0:268 'inF0' (temp 4-component vector of float) -0:270 trunc (global 4-component vector of float) -0:270 'inF0' (temp 4-component vector of float) -0:273 Branch: Return with expression +0:274 roundEven (global 4-component vector of float) +0:274 'inF0' (temp 4-component vector of float) +0:275 inverse sqrt (global 4-component vector of float) +0:275 'inF0' (temp 4-component vector of float) +0:276 clamp (global 4-component vector of float) +0:276 'inF0' (temp 4-component vector of float) +0:276 Constant: +0:276 0.000000 +0:276 Constant: +0:276 1.000000 +0:277 Sign (global 4-component vector of float) +0:277 'inF0' (temp 4-component vector of float) +0:278 sine (global 4-component vector of float) +0:278 'inF0' (temp 4-component vector of float) +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of float) +0:279 'inF1' (temp 4-component vector of float) +0:279 sine (temp 4-component vector of float) +0:279 'inF0' (temp 4-component vector of float) +0:279 move second child to first child (temp 4-component vector of float) +0:279 'inF2' (temp 4-component vector of float) +0:279 cosine (temp 4-component vector of float) +0:279 'inF0' (temp 4-component vector of float) +0:280 hyp. sine (global 4-component vector of float) +0:280 'inF0' (temp 4-component vector of float) +0:281 smoothstep (global 4-component vector of float) +0:281 'inF0' (temp 4-component vector of float) +0:281 'inF1' (temp 4-component vector of float) +0:281 'inF2' (temp 4-component vector of float) +0:282 sqrt (global 4-component vector of float) +0:282 'inF0' (temp 4-component vector of float) +0:283 step (global 4-component vector of float) +0:283 'inF0' (temp 4-component vector of float) +0:283 'inF1' (temp 4-component vector of float) +0:284 tangent (global 4-component vector of float) +0:284 'inF0' (temp 4-component vector of float) +0:285 hyp. tangent (global 4-component vector of float) +0:285 'inF0' (temp 4-component vector of float) +0:287 trunc (global 4-component vector of float) +0:287 'inF0' (temp 4-component vector of float) +0:290 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:337 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:329 Function Parameters: -0:329 'inF0' (temp 2X2 matrix of float) -0:329 'inF1' (temp 2X2 matrix of float) -0:329 'inF2' (temp 2X2 matrix of float) +0:358 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:350 Function Parameters: +0:350 'inF0' (temp 2X2 matrix of float) +0:350 'inF1' (temp 2X2 matrix of float) +0:350 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:331 all (global bool) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 Absolute value (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 arc cosine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 any (global bool) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 arc sine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 arc tangent (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 arc tangent (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 Ceiling (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 clamp (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 'inF2' (temp 2X2 matrix of float) -0:331 cosine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 hyp. cosine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdx (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdxCoarse (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdxFine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdy (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdyCoarse (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 dPdyFine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 degrees (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 determinant (global float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 exp (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 exp2 (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 findMSB (global int) -0:331 Constant: -0:331 7 (const int) -0:331 findLSB (global int) -0:331 Constant: -0:331 7 (const int) -0:331 Floor (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 Function Call: fmod(mf22;mf22; (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 Fraction (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 frexp (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 fwidth (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 ldexp (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 log (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 log2 (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 max (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 min (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 pow (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 radians (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 roundEven (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 inverse sqrt (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 Sign (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 sine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 hyp. sine (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 smoothstep (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 'inF2' (temp 2X2 matrix of float) -0:331 sqrt (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 step (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 tangent (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 hyp. tangent (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 transpose (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:331 trunc (global 2X2 matrix of float) -0:331 'inF0' (temp 2X2 matrix of float) -0:334 Branch: Return with expression +0:352 all (global bool) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Absolute value (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 arc cosine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 any (global bool) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 arc sine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 arc tangent (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 arc tangent (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 Ceiling (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Test condition and select (temp void) +0:352 Condition +0:352 any (temp bool) +0:352 Compare Less Than (temp 2X2 matrix of bool) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Constant: +0:352 0.000000 +0:352 0.000000 +0:352 0.000000 +0:352 0.000000 +0:352 true case +0:352 Branch: Kill +0:352 clamp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 'inF2' (temp 2X2 matrix of float) +0:352 cosine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 hyp. cosine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdx (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdxCoarse (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdxFine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdy (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdyCoarse (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 dPdyFine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 degrees (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 determinant (global float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 exp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 exp2 (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 findMSB (global int) +0:352 Constant: +0:352 7 (const int) +0:352 findLSB (global int) +0:352 Constant: +0:352 7 (const int) +0:352 Floor (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 mod (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 Fraction (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 frexp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 fwidth (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 ldexp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 log (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 matrix-scale (temp 2X2 matrix of float) +0:352 log2 (temp 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Constant: +0:352 0.301030 +0:352 log2 (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 max (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 min (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 pow (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 radians (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 roundEven (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 inverse sqrt (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 clamp (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Constant: +0:352 0.000000 +0:352 Constant: +0:352 1.000000 +0:352 Sign (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 sine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 Sequence +0:352 move second child to first child (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 sine (temp 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 move second child to first child (temp 2X2 matrix of float) +0:352 'inF2' (temp 2X2 matrix of float) +0:352 cosine (temp 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 hyp. sine (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 smoothstep (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 'inF2' (temp 2X2 matrix of float) +0:352 sqrt (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 step (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 'inF1' (temp 2X2 matrix of float) +0:352 tangent (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 hyp. tangent (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 transpose (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:352 trunc (global 2X2 matrix of float) +0:352 'inF0' (temp 2X2 matrix of float) +0:355 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:346 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:338 Function Parameters: -0:338 'inF0' (temp 3X3 matrix of float) -0:338 'inF1' (temp 3X3 matrix of float) -0:338 'inF2' (temp 3X3 matrix of float) +0:367 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:359 Function Parameters: +0:359 'inF0' (temp 3X3 matrix of float) +0:359 'inF1' (temp 3X3 matrix of float) +0:359 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:340 all (global bool) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 Absolute value (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 arc cosine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 any (global bool) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 arc sine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 arc tangent (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 arc tangent (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 Ceiling (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 clamp (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 'inF2' (temp 3X3 matrix of float) -0:340 cosine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 hyp. cosine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdx (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdxCoarse (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdxFine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdy (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdyCoarse (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 dPdyFine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 degrees (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 determinant (global float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 exp (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 exp2 (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 findMSB (global int) -0:340 Constant: -0:340 7 (const int) -0:340 findLSB (global int) -0:340 Constant: -0:340 7 (const int) -0:340 Floor (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 Function Call: fmod(mf33;mf33; (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 Fraction (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 frexp (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 fwidth (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 ldexp (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 log (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 log2 (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 max (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 min (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 pow (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 radians (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 roundEven (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 inverse sqrt (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 Sign (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 sine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 hyp. sine (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 smoothstep (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 'inF2' (temp 3X3 matrix of float) -0:340 sqrt (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 step (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 tangent (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 hyp. tangent (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 transpose (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:340 trunc (global 3X3 matrix of float) -0:340 'inF0' (temp 3X3 matrix of float) -0:343 Branch: Return with expression +0:361 all (global bool) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Absolute value (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 arc cosine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 any (global bool) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 arc sine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 arc tangent (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 arc tangent (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 Ceiling (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Test condition and select (temp void) +0:361 Condition +0:361 any (temp bool) +0:361 Compare Less Than (temp 3X3 matrix of bool) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Constant: +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 0.000000 +0:361 true case +0:361 Branch: Kill +0:361 clamp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 'inF2' (temp 3X3 matrix of float) +0:361 cosine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 hyp. cosine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdx (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdxCoarse (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdxFine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdy (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdyCoarse (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 dPdyFine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 degrees (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 determinant (global float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 exp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 exp2 (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 findMSB (global int) +0:361 Constant: +0:361 7 (const int) +0:361 findLSB (global int) +0:361 Constant: +0:361 7 (const int) +0:361 Floor (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 mod (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 Fraction (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 frexp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 fwidth (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 ldexp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 log (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 matrix-scale (temp 3X3 matrix of float) +0:361 log2 (temp 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Constant: +0:361 0.301030 +0:361 log2 (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 max (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 min (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 pow (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 radians (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 roundEven (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 inverse sqrt (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 clamp (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Constant: +0:361 0.000000 +0:361 Constant: +0:361 1.000000 +0:361 Sign (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 sine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 Sequence +0:361 move second child to first child (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 sine (temp 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 move second child to first child (temp 3X3 matrix of float) +0:361 'inF2' (temp 3X3 matrix of float) +0:361 cosine (temp 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 hyp. sine (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 smoothstep (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 'inF2' (temp 3X3 matrix of float) +0:361 sqrt (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 step (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 'inF1' (temp 3X3 matrix of float) +0:361 tangent (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 hyp. tangent (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 transpose (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:361 trunc (global 3X3 matrix of float) +0:361 'inF0' (temp 3X3 matrix of float) +0:364 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -1809,121 +2467,165 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:354 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:347 Function Parameters: -0:347 'inF0' (temp 4X4 matrix of float) -0:347 'inF1' (temp 4X4 matrix of float) -0:347 'inF2' (temp 4X4 matrix of float) +0:388 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:368 Function Parameters: +0:368 'inF0' (temp 4X4 matrix of float) +0:368 'inF1' (temp 4X4 matrix of float) +0:368 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:349 all (global bool) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 Absolute value (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 arc cosine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 any (global bool) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 arc sine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 arc tangent (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 arc tangent (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 Ceiling (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 clamp (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 'inF2' (temp 4X4 matrix of float) -0:349 cosine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 hyp. cosine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdx (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdxCoarse (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdxFine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdy (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdyCoarse (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 dPdyFine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 degrees (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 determinant (global float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 exp (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 exp2 (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 findMSB (global int) -0:349 Constant: -0:349 7 (const int) -0:349 findLSB (global int) -0:349 Constant: -0:349 7 (const int) -0:349 Floor (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 Function Call: fmod(mf44;mf44; (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 Fraction (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 frexp (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 fwidth (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 ldexp (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 log (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 log2 (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 max (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 min (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 pow (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 radians (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 roundEven (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 inverse sqrt (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 Sign (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 sine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 hyp. sine (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 smoothstep (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 'inF2' (temp 4X4 matrix of float) -0:349 sqrt (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 step (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 tangent (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 hyp. tangent (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 transpose (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:349 trunc (global 4X4 matrix of float) -0:349 'inF0' (temp 4X4 matrix of float) -0:352 Branch: Return with expression +0:370 all (global bool) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Absolute value (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 arc cosine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 any (global bool) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 arc sine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 arc tangent (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 arc tangent (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 Ceiling (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Test condition and select (temp void) +0:370 Condition +0:370 any (temp bool) +0:370 Compare Less Than (temp 4X4 matrix of bool) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Constant: +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 0.000000 +0:370 true case +0:370 Branch: Kill +0:370 clamp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 'inF2' (temp 4X4 matrix of float) +0:370 cosine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 hyp. cosine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdx (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdxCoarse (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdxFine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdy (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdyCoarse (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 dPdyFine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 degrees (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 determinant (global float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 exp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 exp2 (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 findMSB (global int) +0:370 Constant: +0:370 7 (const int) +0:370 findLSB (global int) +0:370 Constant: +0:370 7 (const int) +0:370 Floor (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 mod (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 Fraction (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 frexp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 fwidth (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 ldexp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 log (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 matrix-scale (temp 4X4 matrix of float) +0:370 log2 (temp 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Constant: +0:370 0.301030 +0:370 log2 (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 max (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 min (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 pow (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 radians (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 roundEven (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 inverse sqrt (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 clamp (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Constant: +0:370 0.000000 +0:370 Constant: +0:370 1.000000 +0:370 Sign (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 sine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 Sequence +0:370 move second child to first child (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 sine (temp 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 move second child to first child (temp 4X4 matrix of float) +0:370 'inF2' (temp 4X4 matrix of float) +0:370 cosine (temp 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 hyp. sine (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 smoothstep (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 'inF2' (temp 4X4 matrix of float) +0:370 sqrt (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 step (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 'inF1' (temp 4X4 matrix of float) +0:370 tangent (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 hyp. tangent (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 transpose (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:370 trunc (global 4X4 matrix of float) +0:370 'inF0' (temp 4X4 matrix of float) +0:373 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1941,12 +2643,173 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 +0:395 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:391 Function Parameters: +0:391 'inF0' (temp float) +0:391 'inF1' (temp float) +0:391 'inFV0' (temp 2-component vector of float) +0:391 'inFV1' (temp 2-component vector of float) +0:391 'inFM0' (temp 2X2 matrix of float) +0:391 'inFM1' (temp 2X2 matrix of float) +0:? Sequence +0:392 move second child to first child (temp float) +0:392 'r0' (temp float) +0:392 component-wise multiply (temp float) +0:392 'inF0' (temp float) +0:392 'inF1' (temp float) +0:392 move second child to first child (temp 2-component vector of float) +0:392 'r1' (temp 2-component vector of float) +0:392 vector-scale (temp 2-component vector of float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 'inF0' (temp float) +0:392 move second child to first child (temp 2-component vector of float) +0:392 'r2' (temp 2-component vector of float) +0:392 vector-scale (temp 2-component vector of float) +0:392 'inF0' (temp float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 move second child to first child (temp float) +0:392 'r3' (temp float) +0:392 dot-product (global float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 'inFV1' (temp 2-component vector of float) +0:392 move second child to first child (temp 2-component vector of float) +0:392 'r4' (temp 2-component vector of float) +0:392 matrix-times-vector (temp 2-component vector of float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 move second child to first child (temp 2-component vector of float) +0:392 'r5' (temp 2-component vector of float) +0:392 vector-times-matrix (temp 2-component vector of float) +0:392 'inFV0' (temp 2-component vector of float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 move second child to first child (temp 2X2 matrix of float) +0:392 'r6' (temp 2X2 matrix of float) +0:392 matrix-scale (temp 2X2 matrix of float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 'inF0' (temp float) +0:392 move second child to first child (temp 2X2 matrix of float) +0:392 'r7' (temp 2X2 matrix of float) +0:392 matrix-scale (temp 2X2 matrix of float) +0:392 'inF0' (temp float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 move second child to first child (temp 2X2 matrix of float) +0:392 'r8' (temp 2X2 matrix of float) +0:392 matrix-multiply (temp 2X2 matrix of float) +0:392 'inFM0' (temp 2X2 matrix of float) +0:392 'inFM1' (temp 2X2 matrix of float) +0:402 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:398 Function Parameters: +0:398 'inF0' (temp float) +0:398 'inF1' (temp float) +0:398 'inFV0' (temp 3-component vector of float) +0:398 'inFV1' (temp 3-component vector of float) +0:398 'inFM0' (temp 3X3 matrix of float) +0:398 'inFM1' (temp 3X3 matrix of float) +0:? Sequence +0:399 move second child to first child (temp float) +0:399 'r0' (temp float) +0:399 component-wise multiply (temp float) +0:399 'inF0' (temp float) +0:399 'inF1' (temp float) +0:399 move second child to first child (temp 3-component vector of float) +0:399 'r1' (temp 3-component vector of float) +0:399 vector-scale (temp 3-component vector of float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 'inF0' (temp float) +0:399 move second child to first child (temp 3-component vector of float) +0:399 'r2' (temp 3-component vector of float) +0:399 vector-scale (temp 3-component vector of float) +0:399 'inF0' (temp float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 move second child to first child (temp float) +0:399 'r3' (temp float) +0:399 dot-product (global float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 'inFV1' (temp 3-component vector of float) +0:399 move second child to first child (temp 3-component vector of float) +0:399 'r4' (temp 3-component vector of float) +0:399 matrix-times-vector (temp 3-component vector of float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 move second child to first child (temp 3-component vector of float) +0:399 'r5' (temp 3-component vector of float) +0:399 vector-times-matrix (temp 3-component vector of float) +0:399 'inFV0' (temp 3-component vector of float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 move second child to first child (temp 3X3 matrix of float) +0:399 'r6' (temp 3X3 matrix of float) +0:399 matrix-scale (temp 3X3 matrix of float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 'inF0' (temp float) +0:399 move second child to first child (temp 3X3 matrix of float) +0:399 'r7' (temp 3X3 matrix of float) +0:399 matrix-scale (temp 3X3 matrix of float) +0:399 'inF0' (temp float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 move second child to first child (temp 3X3 matrix of float) +0:399 'r8' (temp 3X3 matrix of float) +0:399 matrix-multiply (temp 3X3 matrix of float) +0:399 'inFM0' (temp 3X3 matrix of float) +0:399 'inFM1' (temp 3X3 matrix of float) +0:408 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:405 Function Parameters: +0:405 'inF0' (temp float) +0:405 'inF1' (temp float) +0:405 'inFV0' (temp 4-component vector of float) +0:405 'inFV1' (temp 4-component vector of float) +0:405 'inFM0' (temp 4X4 matrix of float) +0:405 'inFM1' (temp 4X4 matrix of float) +0:? Sequence +0:406 move second child to first child (temp float) +0:406 'r0' (temp float) +0:406 component-wise multiply (temp float) +0:406 'inF0' (temp float) +0:406 'inF1' (temp float) +0:406 move second child to first child (temp 4-component vector of float) +0:406 'r1' (temp 4-component vector of float) +0:406 vector-scale (temp 4-component vector of float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 'inF0' (temp float) +0:406 move second child to first child (temp 4-component vector of float) +0:406 'r2' (temp 4-component vector of float) +0:406 vector-scale (temp 4-component vector of float) +0:406 'inF0' (temp float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 move second child to first child (temp float) +0:406 'r3' (temp float) +0:406 dot-product (global float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 'inFV1' (temp 4-component vector of float) +0:406 move second child to first child (temp 4-component vector of float) +0:406 'r4' (temp 4-component vector of float) +0:406 matrix-times-vector (temp 4-component vector of float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 move second child to first child (temp 4-component vector of float) +0:406 'r5' (temp 4-component vector of float) +0:406 vector-times-matrix (temp 4-component vector of float) +0:406 'inFV0' (temp 4-component vector of float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 move second child to first child (temp 4X4 matrix of float) +0:406 'r6' (temp 4X4 matrix of float) +0:406 matrix-scale (temp 4X4 matrix of float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 'inF0' (temp float) +0:406 move second child to first child (temp 4X4 matrix of float) +0:406 'r7' (temp 4X4 matrix of float) +0:406 matrix-scale (temp 4X4 matrix of float) +0:406 'inF0' (temp float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 move second child to first child (temp 4X4 matrix of float) +0:406 'r8' (temp 4X4 matrix of float) +0:406 matrix-multiply (temp 4X4 matrix of float) +0:406 'inFM0' (temp 4X4 matrix of float) +0:406 'inFM1' (temp 4X4 matrix of float) 0:? Linker Objects -Missing functionality: missing user function; linker needs to catch that // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 880 +// Id's are bound by 1209 Capability Shader Capability DerivativeControl @@ -1956,223 +2819,472 @@ Missing functionality: missing user function; linker needs to catch that ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" - Name 8 "inF0" - Name 23 "inF1" - Name 30 "inF2" - Name 67 "ResType" - Name 127 "inF0" - Name 141 "inF1" - Name 148 "inF2" - Name 195 "ResType" - Name 268 "inF0" - Name 282 "inF1" - Name 289 "inF2" - Name 339 "ResType" - Name 410 "inF0" - Name 424 "inF1" - Name 431 "inF2" - Name 477 "ResType" - Name 549 "inF0" - Name 563 "inF1" - Name 570 "inF2" - Name 604 "ResType" - Name 660 "inF0" - Name 674 "inF1" - Name 681 "inF2" - Name 715 "ResType" - Name 771 "inF0" - Name 785 "inF1" - Name 792 "inF2" - Name 826 "ResType" + Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;" + Name 13 "inF0" + Name 14 "inF1" + Name 15 "inFV0" + Name 16 "inFV1" + Name 17 "inFM0" + Name 18 "inFM1" + Name 32 "TestGenMul(f1;f1;vf3;vf3;mf33;mf33;" + Name 26 "inF0" + Name 27 "inF1" + Name 28 "inFV0" + Name 29 "inFV1" + Name 30 "inFM0" + Name 31 "inFM1" + Name 45 "TestGenMul(f1;f1;vf4;vf4;mf44;mf44;" + Name 39 "inF0" + Name 40 "inF1" + Name 41 "inFV0" + Name 42 "inFV1" + Name 43 "inFM0" + Name 44 "inFM1" + Name 47 "inF0" + Name 62 "inF1" + Name 69 "inF2" + Name 115 "ResType" + Name 185 "inF0" + Name 199 "inF1" + Name 206 "inF2" + Name 264 "ResType" + Name 347 "inF0" + Name 361 "inF1" + Name 368 "inF2" + Name 429 "ResType" + Name 511 "inF0" + Name 525 "inF1" + Name 532 "inF2" + Name 598 "ResType" + Name 681 "inF0" + Name 695 "inF1" + Name 710 "inF2" + Name 753 "ResType" + Name 818 "inF0" + Name 832 "inF1" + Name 847 "inF2" + Name 893 "ResType" + Name 958 "inF0" + Name 972 "inF1" + Name 987 "inF2" + Name 1036 "ResType" + Name 1101 "r0" + Name 1105 "r1" + Name 1109 "r2" + Name 1113 "r3" + Name 1117 "r4" + Name 1121 "r5" + Name 1125 "r6" + Name 1129 "r7" + Name 1133 "r8" + Name 1137 "r0" + Name 1141 "r1" + Name 1145 "r2" + Name 1149 "r3" + Name 1153 "r4" + Name 1157 "r5" + Name 1161 "r6" + Name 1165 "r7" + Name 1169 "r8" + Name 1173 "r0" + Name 1177 "r1" + Name 1181 "r2" + Name 1185 "r3" + Name 1189 "r4" + Name 1193 "r5" + Name 1197 "r6" + Name 1201 "r7" + Name 1205 "r8" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) - 10: TypeBool - 37: TypeInt 32 0 - 38: 37(int) Constant 7 - 58: TypeInt 32 1 - 59: 58(int) Constant 7 - 67(ResType): TypeStruct 6(float) 58(int) - 95: 37(int) Constant 2 - 122: 6(float) Constant 0 - 125: TypeVector 6(float) 2 - 126: TypePointer Function 125(fvec2) - 155: TypeVector 37(int) 2 - 156: 37(int) Constant 3 - 157: 155(ivec2) ConstantComposite 38 156 - 194: TypeVector 58(int) 2 - 195(ResType): TypeStruct 125(fvec2) 194(ivec2) - 202: TypeVector 10(bool) 2 - 233: 6(float) Constant 1073741824 - 235: 37(int) Constant 1 - 236: 155(ivec2) ConstantComposite 235 95 - 263: 6(float) Constant 1065353216 - 264: 125(fvec2) ConstantComposite 263 233 - 266: TypeVector 6(float) 3 - 267: TypePointer Function 266(fvec3) - 296: TypeVector 37(int) 3 - 297: 37(int) Constant 5 - 298: 296(ivec3) ConstantComposite 38 156 297 - 338: TypeVector 58(int) 3 - 339(ResType): TypeStruct 266(fvec3) 338(ivec3) - 346: TypeVector 10(bool) 3 - 378: 296(ivec3) ConstantComposite 235 95 156 - 405: 6(float) Constant 1077936128 - 406: 266(fvec3) ConstantComposite 263 233 405 - 408: TypeVector 6(float) 4 - 409: TypePointer Function 408(fvec4) - 438: TypeVector 37(int) 4 - 439: 438(ivec4) ConstantComposite 38 156 297 95 - 476: TypeVector 58(int) 4 - 477(ResType): TypeStruct 408(fvec4) 476(ivec4) - 484: TypeVector 10(bool) 4 - 516: 37(int) Constant 4 - 517: 438(ivec4) ConstantComposite 235 95 156 516 - 544: 6(float) Constant 1082130432 - 545: 408(fvec4) ConstantComposite 263 233 405 544 - 547: TypeMatrix 125(fvec2) 2 - 548: TypePointer Function 547 - 604(ResType): TypeStruct 547 194(ivec2) - 655: 125(fvec2) ConstantComposite 233 233 - 656: 547 ConstantComposite 655 655 - 658: TypeMatrix 266(fvec3) 3 - 659: TypePointer Function 658 - 715(ResType): TypeStruct 658 338(ivec3) - 766: 266(fvec3) ConstantComposite 405 405 405 - 767: 658 ConstantComposite 766 766 766 - 769: TypeMatrix 408(fvec4) 4 - 770: TypePointer Function 769 - 826(ResType): TypeStruct 769 476(ivec4) - 877: 408(fvec4) ConstantComposite 544 544 544 544 - 878: 769 ConstantComposite 877 877 877 877 + 8: TypeVector 6(float) 2 + 9: TypePointer Function 8(fvec2) + 10: TypeMatrix 8(fvec2) 2 + 11: TypePointer Function 10 + 12: TypeFunction 2 7(ptr) 7(ptr) 9(ptr) 9(ptr) 11(ptr) 11(ptr) + 21: TypeVector 6(float) 3 + 22: TypePointer Function 21(fvec3) + 23: TypeMatrix 21(fvec3) 3 + 24: TypePointer Function 23 + 25: TypeFunction 2 7(ptr) 7(ptr) 22(ptr) 22(ptr) 24(ptr) 24(ptr) + 34: TypeVector 6(float) 4 + 35: TypePointer Function 34(fvec4) + 36: TypeMatrix 34(fvec4) 4 + 37: TypePointer Function 36 + 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr) + 49: TypeBool + 73: 6(float) Constant 0 + 82: TypeInt 32 0 + 83: 82(int) Constant 7 + 103: TypeInt 32 1 + 104: 103(int) Constant 7 + 115(ResType): TypeStruct 6(float) 103(int) + 132: 6(float) Constant 1050288283 + 147: 6(float) Constant 1065353216 + 150: 82(int) Constant 2 + 210: 8(fvec2) ConstantComposite 73 73 + 211: TypeVector 49(bool) 2 + 221: TypeVector 82(int) 2 + 222: 82(int) Constant 3 + 223: 221(ivec2) ConstantComposite 83 222 + 263: TypeVector 103(int) 2 + 264(ResType): TypeStruct 8(fvec2) 263(ivec2) + 307: 6(float) Constant 1073741824 + 309: 82(int) Constant 1 + 310: 221(ivec2) ConstantComposite 309 150 + 345: 8(fvec2) ConstantComposite 147 307 + 372: 21(fvec3) ConstantComposite 73 73 73 + 373: TypeVector 49(bool) 3 + 383: TypeVector 82(int) 3 + 384: 82(int) Constant 5 + 385: 383(ivec3) ConstantComposite 83 222 384 + 428: TypeVector 103(int) 3 + 429(ResType): TypeStruct 21(fvec3) 428(ivec3) + 473: 383(ivec3) ConstantComposite 309 150 222 + 508: 6(float) Constant 1077936128 + 509: 21(fvec3) ConstantComposite 147 307 508 + 536: 34(fvec4) ConstantComposite 73 73 73 73 + 537: TypeVector 49(bool) 4 + 547: TypeVector 82(int) 4 + 548: 547(ivec4) ConstantComposite 83 222 384 150 + 597: TypeVector 103(int) 4 + 598(ResType): TypeStruct 34(fvec4) 597(ivec4) + 642: 82(int) Constant 4 + 643: 547(ivec4) ConstantComposite 309 150 222 642 + 678: 6(float) Constant 1082130432 + 679: 34(fvec4) ConstantComposite 147 307 508 678 + 701: 10 ConstantComposite 210 210 + 702: TypeMatrix 211(bvec2) 2 + 753(ResType): TypeStruct 10 263(ivec2) + 815: 8(fvec2) ConstantComposite 307 307 + 816: 10 ConstantComposite 815 815 + 838: 23 ConstantComposite 372 372 372 + 839: TypeMatrix 373(bvec3) 3 + 893(ResType): TypeStruct 23 428(ivec3) + 955: 21(fvec3) ConstantComposite 508 508 508 + 956: 23 ConstantComposite 955 955 955 + 978: 36 ConstantComposite 536 536 536 536 + 979: TypeMatrix 537(bvec4) 4 + 1036(ResType): TypeStruct 36 597(ivec4) + 1098: 34(fvec4) ConstantComposite 678 678 678 678 + 1099: 36 ConstantComposite 1098 1098 1098 1098 4(PixelShaderFunction): 2 Function None 3 5: Label - 8(inF0): 7(ptr) Variable Function - 23(inF1): 7(ptr) Variable Function - 30(inF2): 7(ptr) Variable Function - 127(inF0): 126(ptr) Variable Function - 141(inF1): 126(ptr) Variable Function - 148(inF2): 126(ptr) Variable Function - 268(inF0): 267(ptr) Variable Function - 282(inF1): 267(ptr) Variable Function - 289(inF2): 267(ptr) Variable Function - 410(inF0): 409(ptr) Variable Function - 424(inF1): 409(ptr) Variable Function - 431(inF2): 409(ptr) Variable Function - 549(inF0): 548(ptr) Variable Function - 563(inF1): 548(ptr) Variable Function - 570(inF2): 548(ptr) Variable Function - 660(inF0): 659(ptr) Variable Function - 674(inF1): 659(ptr) Variable Function - 681(inF2): 659(ptr) Variable Function - 771(inF0): 770(ptr) Variable Function - 785(inF1): 770(ptr) Variable Function - 792(inF2): 770(ptr) Variable Function - 9: 6(float) Load 8(inF0) - 11: 10(bool) All 9 - 12: 6(float) Load 8(inF0) - 13: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 12 - 14: 6(float) Load 8(inF0) - 15: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 14 - 16: 6(float) Load 8(inF0) - 17: 10(bool) Any 16 - 18: 6(float) Load 8(inF0) - 19: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 18 - 20: 6(float) Load 8(inF0) - 21: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 20 - 22: 6(float) Load 8(inF0) - 24: 6(float) Load 23(inF1) - 25: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 22 24 - 26: 6(float) Load 8(inF0) - 27: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 26 - 28: 6(float) Load 8(inF0) - 29: 6(float) Load 23(inF1) - 31: 6(float) Load 30(inF2) - 32: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 28 29 31 - 33: 6(float) Load 8(inF0) - 34: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 33 - 35: 6(float) Load 8(inF0) - 36: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 35 - 39: 37(int) BitCount 38 - 40: 6(float) Load 8(inF0) - 41: 6(float) DPdx 40 - 42: 6(float) Load 8(inF0) - 43: 6(float) DPdxCoarse 42 - 44: 6(float) Load 8(inF0) - 45: 6(float) DPdxFine 44 - 46: 6(float) Load 8(inF0) - 47: 6(float) DPdy 46 - 48: 6(float) Load 8(inF0) - 49: 6(float) DPdyCoarse 48 - 50: 6(float) Load 8(inF0) - 51: 6(float) DPdyFine 50 - 52: 6(float) Load 8(inF0) - 53: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 52 - 54: 6(float) Load 8(inF0) - 55: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 54 - 56: 6(float) Load 8(inF0) - 57: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 56 - 60: 58(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 59 - 61: 58(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 59 - 62: 6(float) Load 8(inF0) - 63: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 62 - 64: 6(float) Load 8(inF0) - 65: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 64 - 66: 6(float) Load 8(inF0) - 68: 67(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 66 - 69: 58(int) CompositeExtract 68 1 - Store 23(inF1) 69 - 70: 6(float) CompositeExtract 68 0 - 71: 6(float) Load 8(inF0) - 72: 6(float) Fwidth 71 - 73: 6(float) Load 8(inF0) - 74: 10(bool) IsInf 73 - 75: 6(float) Load 8(inF0) - 76: 10(bool) IsNan 75 - 77: 6(float) Load 8(inF0) - 78: 6(float) Load 23(inF1) - 79: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 77 78 - 80: 6(float) Load 8(inF0) - 81: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 80 - 82: 6(float) Load 8(inF0) - 83: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 82 - 84: 6(float) Load 8(inF0) - 85: 6(float) Load 23(inF1) - 86: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 84 85 - 87: 6(float) Load 8(inF0) - 88: 6(float) Load 23(inF1) - 89: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 87 88 - 90: 6(float) Load 8(inF0) - 91: 6(float) Load 23(inF1) - 92: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 90 91 - 93: 6(float) Load 8(inF0) - 94: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 93 - 96: 37(int) BitReverse 95 - 97: 6(float) Load 8(inF0) - 98: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 97 - 99: 6(float) Load 8(inF0) - 100: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99 - 101: 6(float) Load 8(inF0) - 102: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 101 - 103: 6(float) Load 8(inF0) - 104: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 103 - 105: 6(float) Load 8(inF0) - 106: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 105 - 107: 6(float) Load 8(inF0) - 108: 6(float) Load 23(inF1) - 109: 6(float) Load 30(inF2) - 110: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 107 108 109 - 111: 6(float) Load 8(inF0) - 112: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 111 - 113: 6(float) Load 8(inF0) - 114: 6(float) Load 23(inF1) - 115: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 113 114 - 116: 6(float) Load 8(inF0) - 117: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 116 - 118: 6(float) Load 8(inF0) - 119: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 118 - 120: 6(float) Load 8(inF0) - 121: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 120 - ReturnValue 122 + 47(inF0): 7(ptr) Variable Function + 62(inF1): 7(ptr) Variable Function + 69(inF2): 7(ptr) Variable Function + 185(inF0): 9(ptr) Variable Function + 199(inF1): 9(ptr) Variable Function + 206(inF2): 9(ptr) Variable Function + 347(inF0): 22(ptr) Variable Function + 361(inF1): 22(ptr) Variable Function + 368(inF2): 22(ptr) Variable Function + 511(inF0): 35(ptr) Variable Function + 525(inF1): 35(ptr) Variable Function + 532(inF2): 35(ptr) Variable Function + 681(inF0): 11(ptr) Variable Function + 695(inF1): 11(ptr) Variable Function + 710(inF2): 11(ptr) Variable Function + 818(inF0): 24(ptr) Variable Function + 832(inF1): 24(ptr) Variable Function + 847(inF2): 24(ptr) Variable Function + 958(inF0): 37(ptr) Variable Function + 972(inF1): 37(ptr) Variable Function + 987(inF2): 37(ptr) Variable Function + 48: 6(float) Load 47(inF0) + 50: 49(bool) All 48 + 51: 6(float) Load 47(inF0) + 52: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 51 + 53: 6(float) Load 47(inF0) + 54: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 53 + 55: 6(float) Load 47(inF0) + 56: 49(bool) Any 55 + 57: 6(float) Load 47(inF0) + 58: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 57 + 59: 6(float) Load 47(inF0) + 60: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 59 + 61: 6(float) Load 47(inF0) + 63: 6(float) Load 62(inF1) + 64: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 61 63 + 65: 6(float) Load 47(inF0) + 66: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 65 + 67: 6(float) Load 47(inF0) + 68: 6(float) Load 62(inF1) + 70: 6(float) Load 69(inF2) + 71: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 67 68 70 + 72: 6(float) Load 47(inF0) + 74: 49(bool) FOrdLessThan 72 73 + SelectionMerge 76 None + BranchConditional 74 75 76 + 75: Label + Kill + 76: Label + 78: 6(float) Load 47(inF0) + 79: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 78 + 80: 6(float) Load 47(inF0) + 81: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 80 + 84: 82(int) BitCount 83 + 85: 6(float) Load 47(inF0) + 86: 6(float) DPdx 85 + 87: 6(float) Load 47(inF0) + 88: 6(float) DPdxCoarse 87 + 89: 6(float) Load 47(inF0) + 90: 6(float) DPdxFine 89 + 91: 6(float) Load 47(inF0) + 92: 6(float) DPdy 91 + 93: 6(float) Load 47(inF0) + 94: 6(float) DPdyCoarse 93 + 95: 6(float) Load 47(inF0) + 96: 6(float) DPdyFine 95 + 97: 6(float) Load 47(inF0) + 98: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 97 + 99: 6(float) Load 47(inF0) + 100: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 99 + 101: 6(float) Load 47(inF0) + 102: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 101 + 105: 103(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 104 + 106: 103(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 104 + 107: 6(float) Load 47(inF0) + 108: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 107 + 109: 6(float) Load 47(inF0) + 110: 6(float) Load 62(inF1) + 111: 6(float) FMod 109 110 + 112: 6(float) Load 47(inF0) + 113: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 112 + 114: 6(float) Load 47(inF0) + 116:115(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 114 + 117: 103(int) CompositeExtract 116 1 + Store 62(inF1) 117 + 118: 6(float) CompositeExtract 116 0 + 119: 6(float) Load 47(inF0) + 120: 6(float) Fwidth 119 + 121: 6(float) Load 47(inF0) + 122: 49(bool) IsInf 121 + 123: 6(float) Load 47(inF0) + 124: 49(bool) IsNan 123 + 125: 6(float) Load 47(inF0) + 126: 6(float) Load 62(inF1) + 127: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 125 126 + 128: 6(float) Load 47(inF0) + 129: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 128 + 130: 6(float) Load 47(inF0) + 131: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 130 + 133: 6(float) FMul 131 132 + 134: 6(float) Load 47(inF0) + 135: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 134 + 136: 6(float) Load 47(inF0) + 137: 6(float) Load 62(inF1) + 138: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 136 137 + 139: 6(float) Load 47(inF0) + 140: 6(float) Load 62(inF1) + 141: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 139 140 + 142: 6(float) Load 47(inF0) + 143: 6(float) Load 62(inF1) + 144: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 142 143 + 145: 6(float) Load 47(inF0) + 146: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 145 + 148: 6(float) Load 47(inF0) + 149: 6(float) FDiv 147 148 + 151: 82(int) BitReverse 150 + 152: 6(float) Load 47(inF0) + 153: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 152 + 154: 6(float) Load 47(inF0) + 155: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 154 + 156: 6(float) Load 47(inF0) + 157: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 156 73 147 + 158: 6(float) Load 47(inF0) + 159: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 158 + 160: 6(float) Load 47(inF0) + 161: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 160 + 162: 6(float) Load 47(inF0) + 163: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 162 + Store 62(inF1) 163 + 164: 6(float) Load 47(inF0) + 165: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 164 + Store 69(inF2) 165 + 166: 6(float) Load 47(inF0) + 167: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 166 + 168: 6(float) Load 47(inF0) + 169: 6(float) Load 62(inF1) + 170: 6(float) Load 69(inF2) + 171: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 168 169 170 + 172: 6(float) Load 47(inF0) + 173: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 172 + 174: 6(float) Load 47(inF0) + 175: 6(float) Load 62(inF1) + 176: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 174 175 + 177: 6(float) Load 47(inF0) + 178: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 177 + 179: 6(float) Load 47(inF0) + 180: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 179 + 181: 6(float) Load 47(inF0) + 182: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 181 + ReturnValue 73 + FunctionEnd +19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12 + 13(inF0): 7(ptr) FunctionParameter + 14(inF1): 7(ptr) FunctionParameter + 15(inFV0): 9(ptr) FunctionParameter + 16(inFV1): 9(ptr) FunctionParameter + 17(inFM0): 11(ptr) FunctionParameter + 18(inFM1): 11(ptr) FunctionParameter + 20: Label + 1101(r0): 7(ptr) Variable Function + 1105(r1): 9(ptr) Variable Function + 1109(r2): 9(ptr) Variable Function + 1113(r3): 7(ptr) Variable Function + 1117(r4): 9(ptr) Variable Function + 1121(r5): 9(ptr) Variable Function + 1125(r6): 11(ptr) Variable Function + 1129(r7): 11(ptr) Variable Function + 1133(r8): 11(ptr) Variable Function + 1102: 6(float) Load 13(inF0) + 1103: 6(float) Load 14(inF1) + 1104: 6(float) FMul 1102 1103 + Store 1101(r0) 1104 + 1106: 8(fvec2) Load 15(inFV0) + 1107: 6(float) Load 13(inF0) + 1108: 8(fvec2) VectorTimesScalar 1106 1107 + Store 1105(r1) 1108 + 1110: 6(float) Load 13(inF0) + 1111: 8(fvec2) Load 15(inFV0) + 1112: 8(fvec2) VectorTimesScalar 1111 1110 + Store 1109(r2) 1112 + 1114: 8(fvec2) Load 15(inFV0) + 1115: 8(fvec2) Load 16(inFV1) + 1116: 6(float) Dot 1114 1115 + Store 1113(r3) 1116 + 1118: 10 Load 17(inFM0) + 1119: 8(fvec2) Load 15(inFV0) + 1120: 8(fvec2) MatrixTimesVector 1118 1119 + Store 1117(r4) 1120 + 1122: 8(fvec2) Load 15(inFV0) + 1123: 10 Load 17(inFM0) + 1124: 8(fvec2) VectorTimesMatrix 1122 1123 + Store 1121(r5) 1124 + 1126: 10 Load 17(inFM0) + 1127: 6(float) Load 13(inF0) + 1128: 10 MatrixTimesScalar 1126 1127 + Store 1125(r6) 1128 + 1130: 6(float) Load 13(inF0) + 1131: 10 Load 17(inFM0) + 1132: 10 MatrixTimesScalar 1131 1130 + Store 1129(r7) 1132 + 1134: 10 Load 17(inFM0) + 1135: 10 Load 18(inFM1) + 1136: 10 MatrixTimesMatrix 1134 1135 + Store 1133(r8) 1136 + Return + FunctionEnd +32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 + 26(inF0): 7(ptr) FunctionParameter + 27(inF1): 7(ptr) FunctionParameter + 28(inFV0): 22(ptr) FunctionParameter + 29(inFV1): 22(ptr) FunctionParameter + 30(inFM0): 24(ptr) FunctionParameter + 31(inFM1): 24(ptr) FunctionParameter + 33: Label + 1137(r0): 7(ptr) Variable Function + 1141(r1): 22(ptr) Variable Function + 1145(r2): 22(ptr) Variable Function + 1149(r3): 7(ptr) Variable Function + 1153(r4): 22(ptr) Variable Function + 1157(r5): 22(ptr) Variable Function + 1161(r6): 24(ptr) Variable Function + 1165(r7): 24(ptr) Variable Function + 1169(r8): 24(ptr) Variable Function + 1138: 6(float) Load 26(inF0) + 1139: 6(float) Load 27(inF1) + 1140: 6(float) FMul 1138 1139 + Store 1137(r0) 1140 + 1142: 21(fvec3) Load 28(inFV0) + 1143: 6(float) Load 26(inF0) + 1144: 21(fvec3) VectorTimesScalar 1142 1143 + Store 1141(r1) 1144 + 1146: 6(float) Load 26(inF0) + 1147: 21(fvec3) Load 28(inFV0) + 1148: 21(fvec3) VectorTimesScalar 1147 1146 + Store 1145(r2) 1148 + 1150: 21(fvec3) Load 28(inFV0) + 1151: 21(fvec3) Load 29(inFV1) + 1152: 6(float) Dot 1150 1151 + Store 1149(r3) 1152 + 1154: 23 Load 30(inFM0) + 1155: 21(fvec3) Load 28(inFV0) + 1156: 21(fvec3) MatrixTimesVector 1154 1155 + Store 1153(r4) 1156 + 1158: 21(fvec3) Load 28(inFV0) + 1159: 23 Load 30(inFM0) + 1160: 21(fvec3) VectorTimesMatrix 1158 1159 + Store 1157(r5) 1160 + 1162: 23 Load 30(inFM0) + 1163: 6(float) Load 26(inF0) + 1164: 23 MatrixTimesScalar 1162 1163 + Store 1161(r6) 1164 + 1166: 6(float) Load 26(inF0) + 1167: 23 Load 30(inFM0) + 1168: 23 MatrixTimesScalar 1167 1166 + Store 1165(r7) 1168 + 1170: 23 Load 30(inFM0) + 1171: 23 Load 31(inFM1) + 1172: 23 MatrixTimesMatrix 1170 1171 + Store 1169(r8) 1172 + Return + FunctionEnd +45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 + 39(inF0): 7(ptr) FunctionParameter + 40(inF1): 7(ptr) FunctionParameter + 41(inFV0): 35(ptr) FunctionParameter + 42(inFV1): 35(ptr) FunctionParameter + 43(inFM0): 37(ptr) FunctionParameter + 44(inFM1): 37(ptr) FunctionParameter + 46: Label + 1173(r0): 7(ptr) Variable Function + 1177(r1): 35(ptr) Variable Function + 1181(r2): 35(ptr) Variable Function + 1185(r3): 7(ptr) Variable Function + 1189(r4): 35(ptr) Variable Function + 1193(r5): 35(ptr) Variable Function + 1197(r6): 37(ptr) Variable Function + 1201(r7): 37(ptr) Variable Function + 1205(r8): 37(ptr) Variable Function + 1174: 6(float) Load 39(inF0) + 1175: 6(float) Load 40(inF1) + 1176: 6(float) FMul 1174 1175 + Store 1173(r0) 1176 + 1178: 34(fvec4) Load 41(inFV0) + 1179: 6(float) Load 39(inF0) + 1180: 34(fvec4) VectorTimesScalar 1178 1179 + Store 1177(r1) 1180 + 1182: 6(float) Load 39(inF0) + 1183: 34(fvec4) Load 41(inFV0) + 1184: 34(fvec4) VectorTimesScalar 1183 1182 + Store 1181(r2) 1184 + 1186: 34(fvec4) Load 41(inFV0) + 1187: 34(fvec4) Load 42(inFV1) + 1188: 6(float) Dot 1186 1187 + Store 1185(r3) 1188 + 1190: 36 Load 43(inFM0) + 1191: 34(fvec4) Load 41(inFV0) + 1192: 34(fvec4) MatrixTimesVector 1190 1191 + Store 1189(r4) 1192 + 1194: 34(fvec4) Load 41(inFV0) + 1195: 36 Load 43(inFM0) + 1196: 34(fvec4) VectorTimesMatrix 1194 1195 + Store 1193(r5) 1196 + 1198: 36 Load 43(inFM0) + 1199: 6(float) Load 39(inF0) + 1200: 36 MatrixTimesScalar 1198 1199 + Store 1197(r6) 1200 + 1202: 6(float) Load 39(inF0) + 1203: 36 Load 43(inFM0) + 1204: 36 MatrixTimesScalar 1203 1202 + Store 1201(r7) 1204 + 1206: 36 Load 43(inFM0) + 1207: 36 Load 44(inFM1) + 1208: 36 MatrixTimesMatrix 1206 1207 + Store 1205(r8) 1208 + Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 22b301e0..6f92fc36 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -1,7 +1,7 @@ hlsl.intrinsics.vert Shader version: 450 0:? Sequence -0:56 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float) +0:59 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (temp float) 0:2 'inF1' (temp float) @@ -49,7 +49,7 @@ Shader version: 450 0:22 7 (const int) 0:23 Floor (global float) 0:23 'inF0' (temp float) -0:25 Function Call: fmod(f1;f1; (global float) +0:25 mod (global float) 0:25 'inF0' (temp float) 0:25 'inF1' (temp float) 0:26 Fraction (global float) @@ -68,690 +68,830 @@ Shader version: 450 0:31 'inF1' (temp float) 0:32 log (global float) 0:32 'inF0' (temp float) -0:33 log2 (global float) -0:33 'inF0' (temp float) -0:34 max (global float) +0:33 component-wise multiply (temp float) +0:33 log2 (temp float) +0:33 'inF0' (temp float) +0:33 Constant: +0:33 0.301030 +0:34 log2 (global float) 0:34 'inF0' (temp float) -0:34 'inF1' (temp float) -0:35 min (global float) +0:35 max (global float) 0:35 'inF0' (temp float) 0:35 'inF1' (temp float) -0:37 pow (global float) -0:37 'inF0' (temp float) -0:37 'inF1' (temp float) -0:38 radians (global float) +0:36 min (global float) +0:36 'inF0' (temp float) +0:36 'inF1' (temp float) +0:38 pow (global float) 0:38 'inF0' (temp float) -0:39 bitFieldReverse (global uint) -0:39 Constant: -0:39 2 (const uint) -0:40 roundEven (global float) -0:40 'inF0' (temp float) -0:41 inverse sqrt (global float) +0:38 'inF1' (temp float) +0:39 radians (global float) +0:39 'inF0' (temp float) +0:40 bitFieldReverse (global uint) +0:40 Constant: +0:40 2 (const uint) +0:41 roundEven (global float) 0:41 'inF0' (temp float) -0:42 Sign (global float) +0:42 inverse sqrt (global float) 0:42 'inF0' (temp float) -0:43 sine (global float) +0:43 clamp (global float) 0:43 'inF0' (temp float) -0:44 hyp. sine (global float) +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 1.000000 +0:44 Sign (global float) 0:44 'inF0' (temp float) -0:45 smoothstep (global float) +0:45 sine (global float) 0:45 'inF0' (temp float) -0:45 'inF1' (temp float) -0:45 'inF2' (temp float) -0:46 sqrt (global float) -0:46 'inF0' (temp float) -0:47 step (global float) +0:46 Sequence +0:46 move second child to first child (temp float) +0:46 'inF1' (temp float) +0:46 sine (temp float) +0:46 'inF0' (temp float) +0:46 move second child to first child (temp float) +0:46 'inF2' (temp float) +0:46 cosine (temp float) +0:46 'inF0' (temp float) +0:47 hyp. sine (global float) 0:47 'inF0' (temp float) -0:47 'inF1' (temp float) -0:48 tangent (global float) +0:48 smoothstep (global float) 0:48 'inF0' (temp float) -0:49 hyp. tangent (global float) +0:48 'inF1' (temp float) +0:48 'inF2' (temp float) +0:49 sqrt (global float) 0:49 'inF0' (temp float) -0:51 trunc (global float) +0:50 step (global float) +0:50 'inF0' (temp float) +0:50 'inF1' (temp float) +0:51 tangent (global float) 0:51 'inF0' (temp float) -0:53 Branch: Return with expression -0:53 Constant: -0:53 0.000000 -0:62 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:57 Function Parameters: -0:57 'inF0' (temp 1-component vector of float) -0:57 'inF1' (temp 1-component vector of float) -0:57 'inF2' (temp 1-component vector of float) +0:52 hyp. tangent (global float) +0:52 'inF0' (temp float) +0:54 trunc (global float) +0:54 'inF0' (temp float) +0:56 Branch: Return with expression +0:56 Constant: +0:56 0.000000 +0:65 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:60 Function Parameters: +0:60 'inF0' (temp 1-component vector of float) +0:60 'inF1' (temp 1-component vector of float) +0:60 'inF2' (temp 1-component vector of float) 0:? Sequence -0:59 Branch: Return with expression -0:59 Constant: -0:59 0.000000 -0:125 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) -0:63 Function Parameters: -0:63 'inF0' (temp 2-component vector of float) -0:63 'inF1' (temp 2-component vector of float) -0:63 'inF2' (temp 2-component vector of float) +0:62 Branch: Return with expression +0:62 Constant: +0:62 0.000000 +0:131 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) +0:66 Function Parameters: +0:66 'inF0' (temp 2-component vector of float) +0:66 'inF1' (temp 2-component vector of float) +0:66 'inF2' (temp 2-component vector of float) 0:? Sequence -0:64 all (global bool) -0:64 'inF0' (temp 2-component vector of float) -0:65 Absolute value (global 2-component vector of float) -0:65 'inF0' (temp 2-component vector of float) -0:66 arc cosine (global 2-component vector of float) -0:66 'inF0' (temp 2-component vector of float) -0:67 any (global bool) +0:67 all (global bool) 0:67 'inF0' (temp 2-component vector of float) -0:68 arc sine (global 2-component vector of float) +0:68 Absolute value (global 2-component vector of float) 0:68 'inF0' (temp 2-component vector of float) -0:69 arc tangent (global 2-component vector of float) +0:69 arc cosine (global 2-component vector of float) 0:69 'inF0' (temp 2-component vector of float) -0:70 arc tangent (global 2-component vector of float) +0:70 any (global bool) 0:70 'inF0' (temp 2-component vector of float) -0:70 'inF1' (temp 2-component vector of float) -0:71 Ceiling (global 2-component vector of float) +0:71 arc sine (global 2-component vector of float) 0:71 'inF0' (temp 2-component vector of float) -0:72 clamp (global 2-component vector of float) +0:72 arc tangent (global 2-component vector of float) 0:72 'inF0' (temp 2-component vector of float) -0:72 'inF1' (temp 2-component vector of float) -0:72 'inF2' (temp 2-component vector of float) -0:73 cosine (global 2-component vector of float) +0:73 arc tangent (global 2-component vector of float) 0:73 'inF0' (temp 2-component vector of float) -0:74 hyp. cosine (global 2-component vector of float) +0:73 'inF1' (temp 2-component vector of float) +0:74 Ceiling (global 2-component vector of float) 0:74 'inF0' (temp 2-component vector of float) +0:75 clamp (global 2-component vector of float) +0:75 'inF0' (temp 2-component vector of float) +0:75 'inF1' (temp 2-component vector of float) +0:75 'inF2' (temp 2-component vector of float) +0:76 cosine (global 2-component vector of float) +0:76 'inF0' (temp 2-component vector of float) +0:77 hyp. cosine (global 2-component vector of float) +0:77 'inF0' (temp 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:76 degrees (global 2-component vector of float) -0:76 'inF0' (temp 2-component vector of float) -0:77 distance (global float) -0:77 'inF0' (temp 2-component vector of float) -0:77 'inF1' (temp 2-component vector of float) -0:78 dot-product (global float) -0:78 'inF0' (temp 2-component vector of float) -0:78 'inF1' (temp 2-component vector of float) -0:82 exp (global 2-component vector of float) -0:82 'inF0' (temp 2-component vector of float) -0:83 exp2 (global 2-component vector of float) -0:83 'inF0' (temp 2-component vector of float) -0:84 face-forward (global 2-component vector of float) -0:84 'inF0' (temp 2-component vector of float) -0:84 'inF1' (temp 2-component vector of float) -0:84 'inF2' (temp 2-component vector of float) -0:85 findMSB (global int) -0:85 Constant: -0:85 7 (const int) -0:86 findLSB (global int) -0:86 Constant: -0:86 7 (const int) -0:87 Floor (global 2-component vector of float) +0:79 degrees (global 2-component vector of float) +0:79 'inF0' (temp 2-component vector of float) +0:80 distance (global float) +0:80 'inF0' (temp 2-component vector of float) +0:80 'inF1' (temp 2-component vector of float) +0:81 dot-product (global float) +0:81 'inF0' (temp 2-component vector of float) +0:81 'inF1' (temp 2-component vector of float) +0:85 exp (global 2-component vector of float) +0:85 'inF0' (temp 2-component vector of float) +0:86 exp2 (global 2-component vector of float) +0:86 'inF0' (temp 2-component vector of float) +0:87 face-forward (global 2-component vector of float) 0:87 'inF0' (temp 2-component vector of float) -0:89 Function Call: fmod(vf2;vf2; (global 2-component vector of float) -0:89 'inF0' (temp 2-component vector of float) -0:89 'inF1' (temp 2-component vector of float) -0:90 Fraction (global 2-component vector of float) +0:87 'inF1' (temp 2-component vector of float) +0:87 'inF2' (temp 2-component vector of float) +0:88 findMSB (global int) +0:88 Constant: +0:88 7 (const int) +0:89 findLSB (global int) +0:89 Constant: +0:89 7 (const int) +0:90 Floor (global 2-component vector of float) 0:90 'inF0' (temp 2-component vector of float) -0:91 frexp (global 2-component vector of float) -0:91 'inF0' (temp 2-component vector of float) -0:91 'inF1' (temp 2-component vector of float) -0:92 fwidth (global 2-component vector of float) +0:92 mod (global 2-component vector of float) 0:92 'inF0' (temp 2-component vector of float) -0:93 isinf (global 2-component vector of bool) +0:92 'inF1' (temp 2-component vector of float) +0:93 Fraction (global 2-component vector of float) 0:93 'inF0' (temp 2-component vector of float) -0:94 isnan (global 2-component vector of bool) +0:94 frexp (global 2-component vector of float) 0:94 'inF0' (temp 2-component vector of float) -0:95 ldexp (global 2-component vector of float) +0:94 'inF1' (temp 2-component vector of float) +0:95 fwidth (global 2-component vector of float) 0:95 'inF0' (temp 2-component vector of float) -0:95 'inF1' (temp 2-component vector of float) -0:96 length (global float) +0:96 isinf (global 2-component vector of bool) 0:96 'inF0' (temp 2-component vector of float) -0:97 log (global 2-component vector of float) +0:97 isnan (global 2-component vector of bool) 0:97 'inF0' (temp 2-component vector of float) -0:98 log2 (global 2-component vector of float) +0:98 ldexp (global 2-component vector of float) 0:98 'inF0' (temp 2-component vector of float) -0:99 max (global 2-component vector of float) +0:98 'inF1' (temp 2-component vector of float) +0:99 length (global float) 0:99 'inF0' (temp 2-component vector of float) -0:99 'inF1' (temp 2-component vector of float) -0:100 min (global 2-component vector of float) +0:100 log (global 2-component vector of float) 0:100 'inF0' (temp 2-component vector of float) -0:100 'inF1' (temp 2-component vector of float) -0:102 normalize (global 2-component vector of float) +0:101 vector-scale (temp 2-component vector of float) +0:101 log2 (temp 2-component vector of float) +0:101 'inF0' (temp 2-component vector of float) +0:101 Constant: +0:101 0.301030 +0:102 log2 (global 2-component vector of float) 0:102 'inF0' (temp 2-component vector of float) -0:103 pow (global 2-component vector of float) +0:103 max (global 2-component vector of float) 0:103 'inF0' (temp 2-component vector of float) 0:103 'inF1' (temp 2-component vector of float) -0:104 radians (global 2-component vector of float) +0:104 min (global 2-component vector of float) 0:104 'inF0' (temp 2-component vector of float) -0:105 reflect (global 2-component vector of float) -0:105 'inF0' (temp 2-component vector of float) -0:105 'inF1' (temp 2-component vector of float) -0:106 refract (global 2-component vector of float) +0:104 'inF1' (temp 2-component vector of float) +0:106 normalize (global 2-component vector of float) 0:106 'inF0' (temp 2-component vector of float) -0:106 'inF1' (temp 2-component vector of float) -0:106 Constant: -0:106 2.000000 +0:107 pow (global 2-component vector of float) +0:107 'inF0' (temp 2-component vector of float) +0:107 'inF1' (temp 2-component vector of float) +0:108 radians (global 2-component vector of float) +0:108 'inF0' (temp 2-component vector of float) +0:109 reflect (global 2-component vector of float) +0:109 'inF0' (temp 2-component vector of float) +0:109 'inF1' (temp 2-component vector of float) +0:110 refract (global 2-component vector of float) +0:110 'inF0' (temp 2-component vector of float) +0:110 'inF1' (temp 2-component vector of float) +0:110 Constant: +0:110 2.000000 0:? bitFieldReverse (global 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:108 roundEven (global 2-component vector of float) -0:108 'inF0' (temp 2-component vector of float) -0:109 inverse sqrt (global 2-component vector of float) -0:109 'inF0' (temp 2-component vector of float) -0:110 Sign (global 2-component vector of float) -0:110 'inF0' (temp 2-component vector of float) -0:111 sine (global 2-component vector of float) -0:111 'inF0' (temp 2-component vector of float) -0:112 hyp. sine (global 2-component vector of float) +0:112 roundEven (global 2-component vector of float) 0:112 'inF0' (temp 2-component vector of float) -0:113 smoothstep (global 2-component vector of float) +0:113 inverse sqrt (global 2-component vector of float) 0:113 'inF0' (temp 2-component vector of float) -0:113 'inF1' (temp 2-component vector of float) -0:113 'inF2' (temp 2-component vector of float) -0:114 sqrt (global 2-component vector of float) +0:114 clamp (global 2-component vector of float) 0:114 'inF0' (temp 2-component vector of float) -0:115 step (global 2-component vector of float) +0:114 Constant: +0:114 0.000000 +0:114 Constant: +0:114 1.000000 +0:115 Sign (global 2-component vector of float) 0:115 'inF0' (temp 2-component vector of float) -0:115 'inF1' (temp 2-component vector of float) -0:116 tangent (global 2-component vector of float) +0:116 sine (global 2-component vector of float) 0:116 'inF0' (temp 2-component vector of float) -0:117 hyp. tangent (global 2-component vector of float) -0:117 'inF0' (temp 2-component vector of float) -0:119 trunc (global 2-component vector of float) +0:117 Sequence +0:117 move second child to first child (temp 2-component vector of float) +0:117 'inF1' (temp 2-component vector of float) +0:117 sine (temp 2-component vector of float) +0:117 'inF0' (temp 2-component vector of float) +0:117 move second child to first child (temp 2-component vector of float) +0:117 'inF2' (temp 2-component vector of float) +0:117 cosine (temp 2-component vector of float) +0:117 'inF0' (temp 2-component vector of float) +0:118 hyp. sine (global 2-component vector of float) +0:118 'inF0' (temp 2-component vector of float) +0:119 smoothstep (global 2-component vector of float) 0:119 'inF0' (temp 2-component vector of float) -0:122 Branch: Return with expression +0:119 'inF1' (temp 2-component vector of float) +0:119 'inF2' (temp 2-component vector of float) +0:120 sqrt (global 2-component vector of float) +0:120 'inF0' (temp 2-component vector of float) +0:121 step (global 2-component vector of float) +0:121 'inF0' (temp 2-component vector of float) +0:121 'inF1' (temp 2-component vector of float) +0:122 tangent (global 2-component vector of float) +0:122 'inF0' (temp 2-component vector of float) +0:123 hyp. tangent (global 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:125 trunc (global 2-component vector of float) +0:125 'inF0' (temp 2-component vector of float) +0:128 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:189 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) -0:126 Function Parameters: -0:126 'inF0' (temp 3-component vector of float) -0:126 'inF1' (temp 3-component vector of float) -0:126 'inF2' (temp 3-component vector of float) +0:198 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) +0:132 Function Parameters: +0:132 'inF0' (temp 3-component vector of float) +0:132 'inF1' (temp 3-component vector of float) +0:132 'inF2' (temp 3-component vector of float) 0:? Sequence -0:127 all (global bool) -0:127 'inF0' (temp 3-component vector of float) -0:128 Absolute value (global 3-component vector of float) -0:128 'inF0' (temp 3-component vector of float) -0:129 arc cosine (global 3-component vector of float) -0:129 'inF0' (temp 3-component vector of float) -0:130 any (global bool) -0:130 'inF0' (temp 3-component vector of float) -0:131 arc sine (global 3-component vector of float) -0:131 'inF0' (temp 3-component vector of float) -0:132 arc tangent (global 3-component vector of float) -0:132 'inF0' (temp 3-component vector of float) -0:133 arc tangent (global 3-component vector of float) +0:133 all (global bool) 0:133 'inF0' (temp 3-component vector of float) -0:133 'inF1' (temp 3-component vector of float) -0:134 Ceiling (global 3-component vector of float) +0:134 Absolute value (global 3-component vector of float) 0:134 'inF0' (temp 3-component vector of float) -0:135 clamp (global 3-component vector of float) +0:135 arc cosine (global 3-component vector of float) 0:135 'inF0' (temp 3-component vector of float) -0:135 'inF1' (temp 3-component vector of float) -0:135 'inF2' (temp 3-component vector of float) -0:136 cosine (global 3-component vector of float) +0:136 any (global bool) 0:136 'inF0' (temp 3-component vector of float) -0:137 hyp. cosine (global 3-component vector of float) +0:137 arc sine (global 3-component vector of float) 0:137 'inF0' (temp 3-component vector of float) +0:138 arc tangent (global 3-component vector of float) +0:138 'inF0' (temp 3-component vector of float) +0:139 arc tangent (global 3-component vector of float) +0:139 'inF0' (temp 3-component vector of float) +0:139 'inF1' (temp 3-component vector of float) +0:140 Ceiling (global 3-component vector of float) +0:140 'inF0' (temp 3-component vector of float) +0:141 clamp (global 3-component vector of float) +0:141 'inF0' (temp 3-component vector of float) +0:141 'inF1' (temp 3-component vector of float) +0:141 'inF2' (temp 3-component vector of float) +0:142 cosine (global 3-component vector of float) +0:142 'inF0' (temp 3-component vector of float) +0:143 hyp. cosine (global 3-component vector of float) +0:143 'inF0' (temp 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:139 cross-product (global 3-component vector of float) -0:139 'inF0' (temp 3-component vector of float) -0:139 'inF1' (temp 3-component vector of float) -0:140 degrees (global 3-component vector of float) -0:140 'inF0' (temp 3-component vector of float) -0:141 distance (global float) -0:141 'inF0' (temp 3-component vector of float) -0:141 'inF1' (temp 3-component vector of float) -0:142 dot-product (global float) -0:142 'inF0' (temp 3-component vector of float) -0:142 'inF1' (temp 3-component vector of float) -0:146 exp (global 3-component vector of float) +0:145 cross-product (global 3-component vector of float) +0:145 'inF0' (temp 3-component vector of float) +0:145 'inF1' (temp 3-component vector of float) +0:146 degrees (global 3-component vector of float) 0:146 'inF0' (temp 3-component vector of float) -0:147 exp2 (global 3-component vector of float) +0:147 distance (global float) 0:147 'inF0' (temp 3-component vector of float) -0:148 face-forward (global 3-component vector of float) +0:147 'inF1' (temp 3-component vector of float) +0:148 dot-product (global float) 0:148 'inF0' (temp 3-component vector of float) 0:148 'inF1' (temp 3-component vector of float) -0:148 'inF2' (temp 3-component vector of float) -0:149 findMSB (global int) -0:149 Constant: -0:149 7 (const int) -0:150 findLSB (global int) -0:150 Constant: -0:150 7 (const int) -0:151 Floor (global 3-component vector of float) -0:151 'inF0' (temp 3-component vector of float) -0:153 Function Call: fmod(vf3;vf3; (global 3-component vector of float) +0:152 exp (global 3-component vector of float) +0:152 'inF0' (temp 3-component vector of float) +0:153 exp2 (global 3-component vector of float) 0:153 'inF0' (temp 3-component vector of float) -0:153 'inF1' (temp 3-component vector of float) -0:154 Fraction (global 3-component vector of float) +0:154 face-forward (global 3-component vector of float) 0:154 'inF0' (temp 3-component vector of float) -0:155 frexp (global 3-component vector of float) -0:155 'inF0' (temp 3-component vector of float) -0:155 'inF1' (temp 3-component vector of float) -0:156 fwidth (global 3-component vector of float) -0:156 'inF0' (temp 3-component vector of float) -0:157 isinf (global 3-component vector of bool) +0:154 'inF1' (temp 3-component vector of float) +0:154 'inF2' (temp 3-component vector of float) +0:155 findMSB (global int) +0:155 Constant: +0:155 7 (const int) +0:156 findLSB (global int) +0:156 Constant: +0:156 7 (const int) +0:157 Floor (global 3-component vector of float) 0:157 'inF0' (temp 3-component vector of float) -0:158 isnan (global 3-component vector of bool) -0:158 'inF0' (temp 3-component vector of float) -0:159 ldexp (global 3-component vector of float) +0:159 mod (global 3-component vector of float) 0:159 'inF0' (temp 3-component vector of float) 0:159 'inF1' (temp 3-component vector of float) -0:160 length (global float) +0:160 Fraction (global 3-component vector of float) 0:160 'inF0' (temp 3-component vector of float) -0:161 log (global 3-component vector of float) +0:161 frexp (global 3-component vector of float) 0:161 'inF0' (temp 3-component vector of float) -0:162 log2 (global 3-component vector of float) +0:161 'inF1' (temp 3-component vector of float) +0:162 fwidth (global 3-component vector of float) 0:162 'inF0' (temp 3-component vector of float) -0:163 max (global 3-component vector of float) +0:163 isinf (global 3-component vector of bool) 0:163 'inF0' (temp 3-component vector of float) -0:163 'inF1' (temp 3-component vector of float) -0:164 min (global 3-component vector of float) +0:164 isnan (global 3-component vector of bool) 0:164 'inF0' (temp 3-component vector of float) -0:164 'inF1' (temp 3-component vector of float) -0:166 normalize (global 3-component vector of float) +0:165 ldexp (global 3-component vector of float) +0:165 'inF0' (temp 3-component vector of float) +0:165 'inF1' (temp 3-component vector of float) +0:166 length (global float) 0:166 'inF0' (temp 3-component vector of float) -0:167 pow (global 3-component vector of float) +0:167 log (global 3-component vector of float) 0:167 'inF0' (temp 3-component vector of float) -0:167 'inF1' (temp 3-component vector of float) -0:168 radians (global 3-component vector of float) -0:168 'inF0' (temp 3-component vector of float) -0:169 reflect (global 3-component vector of float) +0:168 vector-scale (temp 3-component vector of float) +0:168 log2 (temp 3-component vector of float) +0:168 'inF0' (temp 3-component vector of float) +0:168 Constant: +0:168 0.301030 +0:169 log2 (global 3-component vector of float) 0:169 'inF0' (temp 3-component vector of float) -0:169 'inF1' (temp 3-component vector of float) -0:170 refract (global 3-component vector of float) +0:170 max (global 3-component vector of float) 0:170 'inF0' (temp 3-component vector of float) 0:170 'inF1' (temp 3-component vector of float) -0:170 Constant: -0:170 2.000000 +0:171 min (global 3-component vector of float) +0:171 'inF0' (temp 3-component vector of float) +0:171 'inF1' (temp 3-component vector of float) +0:173 normalize (global 3-component vector of float) +0:173 'inF0' (temp 3-component vector of float) +0:174 pow (global 3-component vector of float) +0:174 'inF0' (temp 3-component vector of float) +0:174 'inF1' (temp 3-component vector of float) +0:175 radians (global 3-component vector of float) +0:175 'inF0' (temp 3-component vector of float) +0:176 reflect (global 3-component vector of float) +0:176 'inF0' (temp 3-component vector of float) +0:176 'inF1' (temp 3-component vector of float) +0:177 refract (global 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) +0:177 'inF1' (temp 3-component vector of float) +0:177 Constant: +0:177 2.000000 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:172 roundEven (global 3-component vector of float) -0:172 'inF0' (temp 3-component vector of float) -0:173 inverse sqrt (global 3-component vector of float) -0:173 'inF0' (temp 3-component vector of float) -0:174 Sign (global 3-component vector of float) -0:174 'inF0' (temp 3-component vector of float) -0:175 sine (global 3-component vector of float) -0:175 'inF0' (temp 3-component vector of float) -0:176 hyp. sine (global 3-component vector of float) -0:176 'inF0' (temp 3-component vector of float) -0:177 smoothstep (global 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) -0:177 'inF1' (temp 3-component vector of float) -0:177 'inF2' (temp 3-component vector of float) -0:178 sqrt (global 3-component vector of float) -0:178 'inF0' (temp 3-component vector of float) -0:179 step (global 3-component vector of float) +0:179 roundEven (global 3-component vector of float) 0:179 'inF0' (temp 3-component vector of float) -0:179 'inF1' (temp 3-component vector of float) -0:180 tangent (global 3-component vector of float) +0:180 inverse sqrt (global 3-component vector of float) 0:180 'inF0' (temp 3-component vector of float) -0:181 hyp. tangent (global 3-component vector of float) +0:181 clamp (global 3-component vector of float) 0:181 'inF0' (temp 3-component vector of float) -0:183 trunc (global 3-component vector of float) +0:181 Constant: +0:181 0.000000 +0:181 Constant: +0:181 1.000000 +0:182 Sign (global 3-component vector of float) +0:182 'inF0' (temp 3-component vector of float) +0:183 sine (global 3-component vector of float) 0:183 'inF0' (temp 3-component vector of float) -0:186 Branch: Return with expression +0:184 Sequence +0:184 move second child to first child (temp 3-component vector of float) +0:184 'inF1' (temp 3-component vector of float) +0:184 sine (temp 3-component vector of float) +0:184 'inF0' (temp 3-component vector of float) +0:184 move second child to first child (temp 3-component vector of float) +0:184 'inF2' (temp 3-component vector of float) +0:184 cosine (temp 3-component vector of float) +0:184 'inF0' (temp 3-component vector of float) +0:185 hyp. sine (global 3-component vector of float) +0:185 'inF0' (temp 3-component vector of float) +0:186 smoothstep (global 3-component vector of float) +0:186 'inF0' (temp 3-component vector of float) +0:186 'inF1' (temp 3-component vector of float) +0:186 'inF2' (temp 3-component vector of float) +0:187 sqrt (global 3-component vector of float) +0:187 'inF0' (temp 3-component vector of float) +0:188 step (global 3-component vector of float) +0:188 'inF0' (temp 3-component vector of float) +0:188 'inF1' (temp 3-component vector of float) +0:189 tangent (global 3-component vector of float) +0:189 'inF0' (temp 3-component vector of float) +0:190 hyp. tangent (global 3-component vector of float) +0:190 'inF0' (temp 3-component vector of float) +0:192 trunc (global 3-component vector of float) +0:192 'inF0' (temp 3-component vector of float) +0:195 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:298 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) -0:190 Function Parameters: -0:190 'inF0' (temp 4-component vector of float) -0:190 'inF1' (temp 4-component vector of float) -0:190 'inF2' (temp 4-component vector of float) +0:314 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) +0:199 Function Parameters: +0:199 'inF0' (temp 4-component vector of float) +0:199 'inF1' (temp 4-component vector of float) +0:199 'inF2' (temp 4-component vector of float) 0:? Sequence -0:191 all (global bool) -0:191 'inF0' (temp 4-component vector of float) -0:192 Absolute value (global 4-component vector of float) -0:192 'inF0' (temp 4-component vector of float) -0:193 arc cosine (global 4-component vector of float) -0:193 'inF0' (temp 4-component vector of float) -0:194 any (global bool) -0:194 'inF0' (temp 4-component vector of float) -0:195 arc sine (global 4-component vector of float) -0:195 'inF0' (temp 4-component vector of float) -0:196 arc tangent (global 4-component vector of float) -0:196 'inF0' (temp 4-component vector of float) -0:197 arc tangent (global 4-component vector of float) -0:197 'inF0' (temp 4-component vector of float) -0:197 'inF1' (temp 4-component vector of float) -0:198 Ceiling (global 4-component vector of float) -0:198 'inF0' (temp 4-component vector of float) -0:199 clamp (global 4-component vector of float) -0:199 'inF0' (temp 4-component vector of float) -0:199 'inF1' (temp 4-component vector of float) -0:199 'inF2' (temp 4-component vector of float) -0:200 cosine (global 4-component vector of float) +0:200 all (global bool) 0:200 'inF0' (temp 4-component vector of float) -0:201 hyp. cosine (global 4-component vector of float) +0:201 Absolute value (global 4-component vector of float) 0:201 'inF0' (temp 4-component vector of float) +0:202 arc cosine (global 4-component vector of float) +0:202 'inF0' (temp 4-component vector of float) +0:203 any (global bool) +0:203 'inF0' (temp 4-component vector of float) +0:204 arc sine (global 4-component vector of float) +0:204 'inF0' (temp 4-component vector of float) +0:205 arc tangent (global 4-component vector of float) +0:205 'inF0' (temp 4-component vector of float) +0:206 arc tangent (global 4-component vector of float) +0:206 'inF0' (temp 4-component vector of float) +0:206 'inF1' (temp 4-component vector of float) +0:207 Ceiling (global 4-component vector of float) +0:207 'inF0' (temp 4-component vector of float) +0:208 clamp (global 4-component vector of float) +0:208 'inF0' (temp 4-component vector of float) +0:208 'inF1' (temp 4-component vector of float) +0:208 'inF2' (temp 4-component vector of float) +0:209 cosine (global 4-component vector of float) +0:209 'inF0' (temp 4-component vector of float) +0:210 hyp. cosine (global 4-component vector of float) +0:210 'inF0' (temp 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:203 degrees (global 4-component vector of float) -0:203 'inF0' (temp 4-component vector of float) -0:204 distance (global float) -0:204 'inF0' (temp 4-component vector of float) -0:204 'inF1' (temp 4-component vector of float) -0:205 dot-product (global float) -0:205 'inF0' (temp 4-component vector of float) -0:205 'inF1' (temp 4-component vector of float) -0:209 exp (global 4-component vector of float) -0:209 'inF0' (temp 4-component vector of float) -0:210 exp2 (global 4-component vector of float) -0:210 'inF0' (temp 4-component vector of float) -0:211 face-forward (global 4-component vector of float) -0:211 'inF0' (temp 4-component vector of float) -0:211 'inF1' (temp 4-component vector of float) -0:211 'inF2' (temp 4-component vector of float) -0:212 findMSB (global int) -0:212 Constant: -0:212 7 (const int) -0:213 findLSB (global int) -0:213 Constant: -0:213 7 (const int) -0:214 Floor (global 4-component vector of float) +0:212 degrees (global 4-component vector of float) +0:212 'inF0' (temp 4-component vector of float) +0:213 distance (global float) +0:213 'inF0' (temp 4-component vector of float) +0:213 'inF1' (temp 4-component vector of float) +0:214 dot-product (global float) 0:214 'inF0' (temp 4-component vector of float) -0:216 Function Call: fmod(vf4;vf4; (global 4-component vector of float) -0:216 'inF0' (temp 4-component vector of float) -0:216 'inF1' (temp 4-component vector of float) -0:217 Fraction (global 4-component vector of float) -0:217 'inF0' (temp 4-component vector of float) -0:218 frexp (global 4-component vector of float) -0:218 'inF0' (temp 4-component vector of float) -0:218 'inF1' (temp 4-component vector of float) -0:219 fwidth (global 4-component vector of float) +0:214 'inF1' (temp 4-component vector of float) +0:215 Construct vec4 (temp float) +0:215 Constant: +0:215 1.000000 +0:215 component-wise multiply (temp float) +0:215 direct index (temp float) +0:215 'inF0' (temp 4-component vector of float) +0:215 Constant: +0:215 1 (const int) +0:215 direct index (temp float) +0:215 'inF1' (temp 4-component vector of float) +0:215 Constant: +0:215 1 (const int) +0:215 direct index (temp float) +0:215 'inF0' (temp 4-component vector of float) +0:215 Constant: +0:215 2 (const int) +0:215 direct index (temp float) +0:215 'inF1' (temp 4-component vector of float) +0:215 Constant: +0:215 3 (const int) +0:219 exp (global 4-component vector of float) 0:219 'inF0' (temp 4-component vector of float) -0:220 isinf (global 4-component vector of bool) +0:220 exp2 (global 4-component vector of float) 0:220 'inF0' (temp 4-component vector of float) -0:221 isnan (global 4-component vector of bool) +0:221 face-forward (global 4-component vector of float) 0:221 'inF0' (temp 4-component vector of float) -0:222 ldexp (global 4-component vector of float) -0:222 'inF0' (temp 4-component vector of float) -0:222 'inF1' (temp 4-component vector of float) -0:223 length (global float) -0:223 'inF0' (temp 4-component vector of float) -0:224 log (global 4-component vector of float) +0:221 'inF1' (temp 4-component vector of float) +0:221 'inF2' (temp 4-component vector of float) +0:222 findMSB (global int) +0:222 Constant: +0:222 7 (const int) +0:223 findLSB (global int) +0:223 Constant: +0:223 7 (const int) +0:224 Floor (global 4-component vector of float) 0:224 'inF0' (temp 4-component vector of float) -0:225 log2 (global 4-component vector of float) -0:225 'inF0' (temp 4-component vector of float) -0:226 max (global 4-component vector of float) +0:226 mod (global 4-component vector of float) 0:226 'inF0' (temp 4-component vector of float) 0:226 'inF1' (temp 4-component vector of float) -0:227 min (global 4-component vector of float) +0:227 Fraction (global 4-component vector of float) 0:227 'inF0' (temp 4-component vector of float) -0:227 'inF1' (temp 4-component vector of float) -0:229 normalize (global 4-component vector of float) +0:228 frexp (global 4-component vector of float) +0:228 'inF0' (temp 4-component vector of float) +0:228 'inF1' (temp 4-component vector of float) +0:229 fwidth (global 4-component vector of float) 0:229 'inF0' (temp 4-component vector of float) -0:230 pow (global 4-component vector of float) +0:230 isinf (global 4-component vector of bool) 0:230 'inF0' (temp 4-component vector of float) -0:230 'inF1' (temp 4-component vector of float) -0:231 radians (global 4-component vector of float) +0:231 isnan (global 4-component vector of bool) 0:231 'inF0' (temp 4-component vector of float) -0:232 reflect (global 4-component vector of float) +0:232 ldexp (global 4-component vector of float) 0:232 'inF0' (temp 4-component vector of float) 0:232 'inF1' (temp 4-component vector of float) -0:233 refract (global 4-component vector of float) +0:233 length (global float) 0:233 'inF0' (temp 4-component vector of float) -0:233 'inF1' (temp 4-component vector of float) -0:233 Constant: -0:233 2.000000 +0:234 log (global 4-component vector of float) +0:234 'inF0' (temp 4-component vector of float) +0:235 vector-scale (temp 4-component vector of float) +0:235 log2 (temp 4-component vector of float) +0:235 'inF0' (temp 4-component vector of float) +0:235 Constant: +0:235 0.301030 +0:236 log2 (global 4-component vector of float) +0:236 'inF0' (temp 4-component vector of float) +0:237 max (global 4-component vector of float) +0:237 'inF0' (temp 4-component vector of float) +0:237 'inF1' (temp 4-component vector of float) +0:238 min (global 4-component vector of float) +0:238 'inF0' (temp 4-component vector of float) +0:238 'inF1' (temp 4-component vector of float) +0:240 normalize (global 4-component vector of float) +0:240 'inF0' (temp 4-component vector of float) +0:241 pow (global 4-component vector of float) +0:241 'inF0' (temp 4-component vector of float) +0:241 'inF1' (temp 4-component vector of float) +0:242 radians (global 4-component vector of float) +0:242 'inF0' (temp 4-component vector of float) +0:243 reflect (global 4-component vector of float) +0:243 'inF0' (temp 4-component vector of float) +0:243 'inF1' (temp 4-component vector of float) +0:244 refract (global 4-component vector of float) +0:244 'inF0' (temp 4-component vector of float) +0:244 'inF1' (temp 4-component vector of float) +0:244 Constant: +0:244 2.000000 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:235 roundEven (global 4-component vector of float) -0:235 'inF0' (temp 4-component vector of float) -0:236 inverse sqrt (global 4-component vector of float) -0:236 'inF0' (temp 4-component vector of float) -0:237 Sign (global 4-component vector of float) -0:237 'inF0' (temp 4-component vector of float) -0:238 sine (global 4-component vector of float) -0:238 'inF0' (temp 4-component vector of float) -0:239 hyp. sine (global 4-component vector of float) -0:239 'inF0' (temp 4-component vector of float) -0:240 smoothstep (global 4-component vector of float) -0:240 'inF0' (temp 4-component vector of float) -0:240 'inF1' (temp 4-component vector of float) -0:240 'inF2' (temp 4-component vector of float) -0:241 sqrt (global 4-component vector of float) -0:241 'inF0' (temp 4-component vector of float) -0:242 step (global 4-component vector of float) -0:242 'inF0' (temp 4-component vector of float) -0:242 'inF1' (temp 4-component vector of float) -0:243 tangent (global 4-component vector of float) -0:243 'inF0' (temp 4-component vector of float) -0:244 hyp. tangent (global 4-component vector of float) -0:244 'inF0' (temp 4-component vector of float) -0:246 trunc (global 4-component vector of float) +0:246 roundEven (global 4-component vector of float) 0:246 'inF0' (temp 4-component vector of float) -0:249 Branch: Return with expression +0:247 inverse sqrt (global 4-component vector of float) +0:247 'inF0' (temp 4-component vector of float) +0:248 clamp (global 4-component vector of float) +0:248 'inF0' (temp 4-component vector of float) +0:248 Constant: +0:248 0.000000 +0:248 Constant: +0:248 1.000000 +0:249 Sign (global 4-component vector of float) +0:249 'inF0' (temp 4-component vector of float) +0:250 sine (global 4-component vector of float) +0:250 'inF0' (temp 4-component vector of float) +0:251 Sequence +0:251 move second child to first child (temp 4-component vector of float) +0:251 'inF1' (temp 4-component vector of float) +0:251 sine (temp 4-component vector of float) +0:251 'inF0' (temp 4-component vector of float) +0:251 move second child to first child (temp 4-component vector of float) +0:251 'inF2' (temp 4-component vector of float) +0:251 cosine (temp 4-component vector of float) +0:251 'inF0' (temp 4-component vector of float) +0:252 hyp. sine (global 4-component vector of float) +0:252 'inF0' (temp 4-component vector of float) +0:253 smoothstep (global 4-component vector of float) +0:253 'inF0' (temp 4-component vector of float) +0:253 'inF1' (temp 4-component vector of float) +0:253 'inF2' (temp 4-component vector of float) +0:254 sqrt (global 4-component vector of float) +0:254 'inF0' (temp 4-component vector of float) +0:255 step (global 4-component vector of float) +0:255 'inF0' (temp 4-component vector of float) +0:255 'inF1' (temp 4-component vector of float) +0:256 tangent (global 4-component vector of float) +0:256 'inF0' (temp 4-component vector of float) +0:257 hyp. tangent (global 4-component vector of float) +0:257 'inF0' (temp 4-component vector of float) +0:259 trunc (global 4-component vector of float) +0:259 'inF0' (temp 4-component vector of float) +0:262 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:307 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:299 Function Parameters: -0:299 'inF0' (temp 2X2 matrix of float) -0:299 'inF1' (temp 2X2 matrix of float) -0:299 'inF2' (temp 2X2 matrix of float) +0:323 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:315 Function Parameters: +0:315 'inF0' (temp 2X2 matrix of float) +0:315 'inF1' (temp 2X2 matrix of float) +0:315 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:301 all (global bool) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 Absolute value (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 arc cosine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 any (global bool) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 arc sine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 arc tangent (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 arc tangent (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 Ceiling (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 clamp (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 'inF2' (temp 2X2 matrix of float) -0:301 cosine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 hyp. cosine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 degrees (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 determinant (global float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 exp (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 exp2 (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 findMSB (global int) -0:301 Constant: -0:301 7 (const int) -0:301 findLSB (global int) -0:301 Constant: -0:301 7 (const int) -0:301 Floor (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 Function Call: fmod(mf22;mf22; (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 Fraction (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 frexp (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 fwidth (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 ldexp (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 log (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 log2 (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 max (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 min (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 pow (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 radians (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 roundEven (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 inverse sqrt (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 Sign (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 sine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 hyp. sine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 smoothstep (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 'inF2' (temp 2X2 matrix of float) -0:301 sqrt (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 step (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 tangent (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 hyp. tangent (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 transpose (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 trunc (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:304 Branch: Return with expression +0:317 all (global bool) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 Absolute value (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 arc cosine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 any (global bool) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 arc sine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 arc tangent (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 arc tangent (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 Ceiling (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 clamp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 'inF2' (temp 2X2 matrix of float) +0:317 cosine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 hyp. cosine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 degrees (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 determinant (global float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 exp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 exp2 (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 findMSB (global int) +0:317 Constant: +0:317 7 (const int) +0:317 findLSB (global int) +0:317 Constant: +0:317 7 (const int) +0:317 Floor (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 mod (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 Fraction (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 frexp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 fwidth (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 ldexp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 log (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 matrix-scale (temp 2X2 matrix of float) +0:317 log2 (temp 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 Constant: +0:317 0.301030 +0:317 log2 (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 max (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 min (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 pow (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 radians (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 roundEven (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 inverse sqrt (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 clamp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 Constant: +0:317 0.000000 +0:317 Constant: +0:317 1.000000 +0:317 Sign (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 sine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 Sequence +0:317 move second child to first child (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 sine (temp 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 move second child to first child (temp 2X2 matrix of float) +0:317 'inF2' (temp 2X2 matrix of float) +0:317 cosine (temp 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 hyp. sine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 smoothstep (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 'inF2' (temp 2X2 matrix of float) +0:317 sqrt (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 step (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 tangent (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 hyp. tangent (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 transpose (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 trunc (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:320 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:316 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:308 Function Parameters: -0:308 'inF0' (temp 3X3 matrix of float) -0:308 'inF1' (temp 3X3 matrix of float) -0:308 'inF2' (temp 3X3 matrix of float) +0:332 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:324 Function Parameters: +0:324 'inF0' (temp 3X3 matrix of float) +0:324 'inF1' (temp 3X3 matrix of float) +0:324 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:310 all (global bool) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 Absolute value (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 arc cosine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 any (global bool) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 arc sine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 arc tangent (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 arc tangent (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 Ceiling (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 clamp (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 'inF2' (temp 3X3 matrix of float) -0:310 cosine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 hyp. cosine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 degrees (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 determinant (global float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 exp (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 exp2 (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 findMSB (global int) -0:310 Constant: -0:310 7 (const int) -0:310 findLSB (global int) -0:310 Constant: -0:310 7 (const int) -0:310 Floor (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 Function Call: fmod(mf33;mf33; (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 Fraction (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 frexp (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 fwidth (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 ldexp (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 log (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 log2 (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 max (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 min (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 pow (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 radians (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 roundEven (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 inverse sqrt (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 Sign (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 sine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 hyp. sine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 smoothstep (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 'inF2' (temp 3X3 matrix of float) -0:310 sqrt (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 step (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 tangent (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 hyp. tangent (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 transpose (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 trunc (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:313 Branch: Return with expression +0:326 all (global bool) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 Absolute value (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 arc cosine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 any (global bool) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 arc sine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 arc tangent (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 arc tangent (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 Ceiling (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 clamp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 'inF2' (temp 3X3 matrix of float) +0:326 cosine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 hyp. cosine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 degrees (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 determinant (global float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 exp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 exp2 (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 findMSB (global int) +0:326 Constant: +0:326 7 (const int) +0:326 findLSB (global int) +0:326 Constant: +0:326 7 (const int) +0:326 Floor (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 mod (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 Fraction (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 frexp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 fwidth (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 ldexp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 log (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 matrix-scale (temp 3X3 matrix of float) +0:326 log2 (temp 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 Constant: +0:326 0.301030 +0:326 log2 (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 max (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 min (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 pow (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 radians (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 roundEven (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 inverse sqrt (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 clamp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 Constant: +0:326 0.000000 +0:326 Constant: +0:326 1.000000 +0:326 Sign (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 sine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 Sequence +0:326 move second child to first child (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 sine (temp 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 move second child to first child (temp 3X3 matrix of float) +0:326 'inF2' (temp 3X3 matrix of float) +0:326 cosine (temp 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 hyp. sine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 smoothstep (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 'inF2' (temp 3X3 matrix of float) +0:326 sqrt (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 step (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 tangent (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 hyp. tangent (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 transpose (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 trunc (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:329 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -762,109 +902,129 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:324 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:317 Function Parameters: -0:317 'inF0' (temp 4X4 matrix of float) -0:317 'inF1' (temp 4X4 matrix of float) -0:317 'inF2' (temp 4X4 matrix of float) +0:353 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:333 Function Parameters: +0:333 'inF0' (temp 4X4 matrix of float) +0:333 'inF1' (temp 4X4 matrix of float) +0:333 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:319 all (global bool) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 Absolute value (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 arc cosine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 any (global bool) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 arc sine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 arc tangent (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 arc tangent (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 Ceiling (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 clamp (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 'inF2' (temp 4X4 matrix of float) -0:319 cosine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 hyp. cosine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 degrees (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 determinant (global float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 exp (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 exp2 (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 findMSB (global int) -0:319 Constant: -0:319 7 (const int) -0:319 findLSB (global int) -0:319 Constant: -0:319 7 (const int) -0:319 Floor (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 Function Call: fmod(mf44;mf44; (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 Fraction (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 frexp (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 fwidth (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 ldexp (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 log (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 log2 (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 max (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 min (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 pow (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 radians (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 roundEven (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 inverse sqrt (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 Sign (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 sine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 hyp. sine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 smoothstep (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 'inF2' (temp 4X4 matrix of float) -0:319 sqrt (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 step (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 tangent (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 hyp. tangent (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 transpose (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 trunc (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:322 Branch: Return with expression +0:335 all (global bool) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 Absolute value (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 arc cosine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 any (global bool) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 arc sine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 arc tangent (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 arc tangent (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 Ceiling (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 clamp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 'inF2' (temp 4X4 matrix of float) +0:335 cosine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 hyp. cosine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 degrees (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 determinant (global float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 exp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 exp2 (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 findMSB (global int) +0:335 Constant: +0:335 7 (const int) +0:335 findLSB (global int) +0:335 Constant: +0:335 7 (const int) +0:335 Floor (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 mod (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 Fraction (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 frexp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 fwidth (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 ldexp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 log (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 matrix-scale (temp 4X4 matrix of float) +0:335 log2 (temp 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 Constant: +0:335 0.301030 +0:335 log2 (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 max (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 min (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 pow (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 radians (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 roundEven (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 inverse sqrt (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 clamp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 Constant: +0:335 0.000000 +0:335 Constant: +0:335 1.000000 +0:335 Sign (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 sine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 Sequence +0:335 move second child to first child (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 sine (temp 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 move second child to first child (temp 4X4 matrix of float) +0:335 'inF2' (temp 4X4 matrix of float) +0:335 cosine (temp 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 hyp. sine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 smoothstep (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 'inF2' (temp 4X4 matrix of float) +0:335 sqrt (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 step (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 tangent (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 hyp. tangent (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 transpose (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 trunc (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:338 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -882,6 +1042,168 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 +0:360 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:356 Function Parameters: +0:356 'inF0' (temp float) +0:356 'inF1' (temp float) +0:356 'inFV0' (temp 2-component vector of float) +0:356 'inFV1' (temp 2-component vector of float) +0:356 'inFM0' (temp 2X2 matrix of float) +0:356 'inFM1' (temp 2X2 matrix of float) +0:? Sequence +0:357 move second child to first child (temp float) +0:357 'r0' (temp float) +0:357 component-wise multiply (temp float) +0:357 'inF0' (temp float) +0:357 'inF1' (temp float) +0:357 move second child to first child (temp 2-component vector of float) +0:357 'r1' (temp 2-component vector of float) +0:357 vector-scale (temp 2-component vector of float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 'inF0' (temp float) +0:357 move second child to first child (temp 2-component vector of float) +0:357 'r2' (temp 2-component vector of float) +0:357 vector-scale (temp 2-component vector of float) +0:357 'inF0' (temp float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 move second child to first child (temp float) +0:357 'r3' (temp float) +0:357 dot-product (global float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 'inFV1' (temp 2-component vector of float) +0:357 move second child to first child (temp 2-component vector of float) +0:357 'r4' (temp 2-component vector of float) +0:357 matrix-times-vector (temp 2-component vector of float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 move second child to first child (temp 2-component vector of float) +0:357 'r5' (temp 2-component vector of float) +0:357 vector-times-matrix (temp 2-component vector of float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 move second child to first child (temp 2X2 matrix of float) +0:357 'r6' (temp 2X2 matrix of float) +0:357 matrix-scale (temp 2X2 matrix of float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 'inF0' (temp float) +0:357 move second child to first child (temp 2X2 matrix of float) +0:357 'r7' (temp 2X2 matrix of float) +0:357 matrix-scale (temp 2X2 matrix of float) +0:357 'inF0' (temp float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 move second child to first child (temp 2X2 matrix of float) +0:357 'r8' (temp 2X2 matrix of float) +0:357 matrix-multiply (temp 2X2 matrix of float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 'inFM1' (temp 2X2 matrix of float) +0:367 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:363 Function Parameters: +0:363 'inF0' (temp float) +0:363 'inF1' (temp float) +0:363 'inFV0' (temp 3-component vector of float) +0:363 'inFV1' (temp 3-component vector of float) +0:363 'inFM0' (temp 3X3 matrix of float) +0:363 'inFM1' (temp 3X3 matrix of float) +0:? Sequence +0:364 move second child to first child (temp float) +0:364 'r0' (temp float) +0:364 component-wise multiply (temp float) +0:364 'inF0' (temp float) +0:364 'inF1' (temp float) +0:364 move second child to first child (temp 3-component vector of float) +0:364 'r1' (temp 3-component vector of float) +0:364 vector-scale (temp 3-component vector of float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 'inF0' (temp float) +0:364 move second child to first child (temp 3-component vector of float) +0:364 'r2' (temp 3-component vector of float) +0:364 vector-scale (temp 3-component vector of float) +0:364 'inF0' (temp float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 move second child to first child (temp float) +0:364 'r3' (temp float) +0:364 dot-product (global float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 'inFV1' (temp 3-component vector of float) +0:364 move second child to first child (temp 3-component vector of float) +0:364 'r4' (temp 3-component vector of float) +0:364 matrix-times-vector (temp 3-component vector of float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 move second child to first child (temp 3-component vector of float) +0:364 'r5' (temp 3-component vector of float) +0:364 vector-times-matrix (temp 3-component vector of float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 move second child to first child (temp 3X3 matrix of float) +0:364 'r6' (temp 3X3 matrix of float) +0:364 matrix-scale (temp 3X3 matrix of float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 'inF0' (temp float) +0:364 move second child to first child (temp 3X3 matrix of float) +0:364 'r7' (temp 3X3 matrix of float) +0:364 matrix-scale (temp 3X3 matrix of float) +0:364 'inF0' (temp float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 move second child to first child (temp 3X3 matrix of float) +0:364 'r8' (temp 3X3 matrix of float) +0:364 matrix-multiply (temp 3X3 matrix of float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 'inFM1' (temp 3X3 matrix of float) +0:373 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:370 Function Parameters: +0:370 'inF0' (temp float) +0:370 'inF1' (temp float) +0:370 'inFV0' (temp 4-component vector of float) +0:370 'inFV1' (temp 4-component vector of float) +0:370 'inFM0' (temp 4X4 matrix of float) +0:370 'inFM1' (temp 4X4 matrix of float) +0:? Sequence +0:371 move second child to first child (temp float) +0:371 'r0' (temp float) +0:371 component-wise multiply (temp float) +0:371 'inF0' (temp float) +0:371 'inF1' (temp float) +0:371 move second child to first child (temp 4-component vector of float) +0:371 'r1' (temp 4-component vector of float) +0:371 vector-scale (temp 4-component vector of float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 'inF0' (temp float) +0:371 move second child to first child (temp 4-component vector of float) +0:371 'r2' (temp 4-component vector of float) +0:371 vector-scale (temp 4-component vector of float) +0:371 'inF0' (temp float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 move second child to first child (temp float) +0:371 'r3' (temp float) +0:371 dot-product (global float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 'inFV1' (temp 4-component vector of float) +0:371 move second child to first child (temp 4-component vector of float) +0:371 'r4' (temp 4-component vector of float) +0:371 matrix-times-vector (temp 4-component vector of float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 move second child to first child (temp 4-component vector of float) +0:371 'r5' (temp 4-component vector of float) +0:371 vector-times-matrix (temp 4-component vector of float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 move second child to first child (temp 4X4 matrix of float) +0:371 'r6' (temp 4X4 matrix of float) +0:371 matrix-scale (temp 4X4 matrix of float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 'inF0' (temp float) +0:371 move second child to first child (temp 4X4 matrix of float) +0:371 'r7' (temp 4X4 matrix of float) +0:371 matrix-scale (temp 4X4 matrix of float) +0:371 'inF0' (temp float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 move second child to first child (temp 4X4 matrix of float) +0:371 'r8' (temp 4X4 matrix of float) +0:371 matrix-multiply (temp 4X4 matrix of float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 'inFM1' (temp 4X4 matrix of float) 0:? Linker Objects @@ -890,7 +1212,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:56 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float) +0:59 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (temp float) 0:2 'inF1' (temp float) @@ -938,7 +1260,7 @@ Shader version: 450 0:22 7 (const int) 0:23 Floor (global float) 0:23 'inF0' (temp float) -0:25 Function Call: fmod(f1;f1; (global float) +0:25 mod (global float) 0:25 'inF0' (temp float) 0:25 'inF1' (temp float) 0:26 Fraction (global float) @@ -957,690 +1279,830 @@ Shader version: 450 0:31 'inF1' (temp float) 0:32 log (global float) 0:32 'inF0' (temp float) -0:33 log2 (global float) -0:33 'inF0' (temp float) -0:34 max (global float) +0:33 component-wise multiply (temp float) +0:33 log2 (temp float) +0:33 'inF0' (temp float) +0:33 Constant: +0:33 0.301030 +0:34 log2 (global float) 0:34 'inF0' (temp float) -0:34 'inF1' (temp float) -0:35 min (global float) +0:35 max (global float) 0:35 'inF0' (temp float) 0:35 'inF1' (temp float) -0:37 pow (global float) -0:37 'inF0' (temp float) -0:37 'inF1' (temp float) -0:38 radians (global float) +0:36 min (global float) +0:36 'inF0' (temp float) +0:36 'inF1' (temp float) +0:38 pow (global float) 0:38 'inF0' (temp float) -0:39 bitFieldReverse (global uint) -0:39 Constant: -0:39 2 (const uint) -0:40 roundEven (global float) -0:40 'inF0' (temp float) -0:41 inverse sqrt (global float) +0:38 'inF1' (temp float) +0:39 radians (global float) +0:39 'inF0' (temp float) +0:40 bitFieldReverse (global uint) +0:40 Constant: +0:40 2 (const uint) +0:41 roundEven (global float) 0:41 'inF0' (temp float) -0:42 Sign (global float) +0:42 inverse sqrt (global float) 0:42 'inF0' (temp float) -0:43 sine (global float) +0:43 clamp (global float) 0:43 'inF0' (temp float) -0:44 hyp. sine (global float) +0:43 Constant: +0:43 0.000000 +0:43 Constant: +0:43 1.000000 +0:44 Sign (global float) 0:44 'inF0' (temp float) -0:45 smoothstep (global float) +0:45 sine (global float) 0:45 'inF0' (temp float) -0:45 'inF1' (temp float) -0:45 'inF2' (temp float) -0:46 sqrt (global float) -0:46 'inF0' (temp float) -0:47 step (global float) +0:46 Sequence +0:46 move second child to first child (temp float) +0:46 'inF1' (temp float) +0:46 sine (temp float) +0:46 'inF0' (temp float) +0:46 move second child to first child (temp float) +0:46 'inF2' (temp float) +0:46 cosine (temp float) +0:46 'inF0' (temp float) +0:47 hyp. sine (global float) 0:47 'inF0' (temp float) -0:47 'inF1' (temp float) -0:48 tangent (global float) +0:48 smoothstep (global float) 0:48 'inF0' (temp float) -0:49 hyp. tangent (global float) +0:48 'inF1' (temp float) +0:48 'inF2' (temp float) +0:49 sqrt (global float) 0:49 'inF0' (temp float) -0:51 trunc (global float) +0:50 step (global float) +0:50 'inF0' (temp float) +0:50 'inF1' (temp float) +0:51 tangent (global float) 0:51 'inF0' (temp float) -0:53 Branch: Return with expression -0:53 Constant: -0:53 0.000000 -0:62 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:57 Function Parameters: -0:57 'inF0' (temp 1-component vector of float) -0:57 'inF1' (temp 1-component vector of float) -0:57 'inF2' (temp 1-component vector of float) +0:52 hyp. tangent (global float) +0:52 'inF0' (temp float) +0:54 trunc (global float) +0:54 'inF0' (temp float) +0:56 Branch: Return with expression +0:56 Constant: +0:56 0.000000 +0:65 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:60 Function Parameters: +0:60 'inF0' (temp 1-component vector of float) +0:60 'inF1' (temp 1-component vector of float) +0:60 'inF2' (temp 1-component vector of float) 0:? Sequence -0:59 Branch: Return with expression -0:59 Constant: -0:59 0.000000 -0:125 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) -0:63 Function Parameters: -0:63 'inF0' (temp 2-component vector of float) -0:63 'inF1' (temp 2-component vector of float) -0:63 'inF2' (temp 2-component vector of float) +0:62 Branch: Return with expression +0:62 Constant: +0:62 0.000000 +0:131 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) +0:66 Function Parameters: +0:66 'inF0' (temp 2-component vector of float) +0:66 'inF1' (temp 2-component vector of float) +0:66 'inF2' (temp 2-component vector of float) 0:? Sequence -0:64 all (global bool) -0:64 'inF0' (temp 2-component vector of float) -0:65 Absolute value (global 2-component vector of float) -0:65 'inF0' (temp 2-component vector of float) -0:66 arc cosine (global 2-component vector of float) -0:66 'inF0' (temp 2-component vector of float) -0:67 any (global bool) +0:67 all (global bool) 0:67 'inF0' (temp 2-component vector of float) -0:68 arc sine (global 2-component vector of float) +0:68 Absolute value (global 2-component vector of float) 0:68 'inF0' (temp 2-component vector of float) -0:69 arc tangent (global 2-component vector of float) +0:69 arc cosine (global 2-component vector of float) 0:69 'inF0' (temp 2-component vector of float) -0:70 arc tangent (global 2-component vector of float) +0:70 any (global bool) 0:70 'inF0' (temp 2-component vector of float) -0:70 'inF1' (temp 2-component vector of float) -0:71 Ceiling (global 2-component vector of float) +0:71 arc sine (global 2-component vector of float) 0:71 'inF0' (temp 2-component vector of float) -0:72 clamp (global 2-component vector of float) +0:72 arc tangent (global 2-component vector of float) 0:72 'inF0' (temp 2-component vector of float) -0:72 'inF1' (temp 2-component vector of float) -0:72 'inF2' (temp 2-component vector of float) -0:73 cosine (global 2-component vector of float) +0:73 arc tangent (global 2-component vector of float) 0:73 'inF0' (temp 2-component vector of float) -0:74 hyp. cosine (global 2-component vector of float) +0:73 'inF1' (temp 2-component vector of float) +0:74 Ceiling (global 2-component vector of float) 0:74 'inF0' (temp 2-component vector of float) +0:75 clamp (global 2-component vector of float) +0:75 'inF0' (temp 2-component vector of float) +0:75 'inF1' (temp 2-component vector of float) +0:75 'inF2' (temp 2-component vector of float) +0:76 cosine (global 2-component vector of float) +0:76 'inF0' (temp 2-component vector of float) +0:77 hyp. cosine (global 2-component vector of float) +0:77 'inF0' (temp 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:76 degrees (global 2-component vector of float) -0:76 'inF0' (temp 2-component vector of float) -0:77 distance (global float) -0:77 'inF0' (temp 2-component vector of float) -0:77 'inF1' (temp 2-component vector of float) -0:78 dot-product (global float) -0:78 'inF0' (temp 2-component vector of float) -0:78 'inF1' (temp 2-component vector of float) -0:82 exp (global 2-component vector of float) -0:82 'inF0' (temp 2-component vector of float) -0:83 exp2 (global 2-component vector of float) -0:83 'inF0' (temp 2-component vector of float) -0:84 face-forward (global 2-component vector of float) -0:84 'inF0' (temp 2-component vector of float) -0:84 'inF1' (temp 2-component vector of float) -0:84 'inF2' (temp 2-component vector of float) -0:85 findMSB (global int) -0:85 Constant: -0:85 7 (const int) -0:86 findLSB (global int) -0:86 Constant: -0:86 7 (const int) -0:87 Floor (global 2-component vector of float) +0:79 degrees (global 2-component vector of float) +0:79 'inF0' (temp 2-component vector of float) +0:80 distance (global float) +0:80 'inF0' (temp 2-component vector of float) +0:80 'inF1' (temp 2-component vector of float) +0:81 dot-product (global float) +0:81 'inF0' (temp 2-component vector of float) +0:81 'inF1' (temp 2-component vector of float) +0:85 exp (global 2-component vector of float) +0:85 'inF0' (temp 2-component vector of float) +0:86 exp2 (global 2-component vector of float) +0:86 'inF0' (temp 2-component vector of float) +0:87 face-forward (global 2-component vector of float) 0:87 'inF0' (temp 2-component vector of float) -0:89 Function Call: fmod(vf2;vf2; (global 2-component vector of float) -0:89 'inF0' (temp 2-component vector of float) -0:89 'inF1' (temp 2-component vector of float) -0:90 Fraction (global 2-component vector of float) +0:87 'inF1' (temp 2-component vector of float) +0:87 'inF2' (temp 2-component vector of float) +0:88 findMSB (global int) +0:88 Constant: +0:88 7 (const int) +0:89 findLSB (global int) +0:89 Constant: +0:89 7 (const int) +0:90 Floor (global 2-component vector of float) 0:90 'inF0' (temp 2-component vector of float) -0:91 frexp (global 2-component vector of float) -0:91 'inF0' (temp 2-component vector of float) -0:91 'inF1' (temp 2-component vector of float) -0:92 fwidth (global 2-component vector of float) +0:92 mod (global 2-component vector of float) 0:92 'inF0' (temp 2-component vector of float) -0:93 isinf (global 2-component vector of bool) +0:92 'inF1' (temp 2-component vector of float) +0:93 Fraction (global 2-component vector of float) 0:93 'inF0' (temp 2-component vector of float) -0:94 isnan (global 2-component vector of bool) +0:94 frexp (global 2-component vector of float) 0:94 'inF0' (temp 2-component vector of float) -0:95 ldexp (global 2-component vector of float) +0:94 'inF1' (temp 2-component vector of float) +0:95 fwidth (global 2-component vector of float) 0:95 'inF0' (temp 2-component vector of float) -0:95 'inF1' (temp 2-component vector of float) -0:96 length (global float) +0:96 isinf (global 2-component vector of bool) 0:96 'inF0' (temp 2-component vector of float) -0:97 log (global 2-component vector of float) +0:97 isnan (global 2-component vector of bool) 0:97 'inF0' (temp 2-component vector of float) -0:98 log2 (global 2-component vector of float) +0:98 ldexp (global 2-component vector of float) 0:98 'inF0' (temp 2-component vector of float) -0:99 max (global 2-component vector of float) +0:98 'inF1' (temp 2-component vector of float) +0:99 length (global float) 0:99 'inF0' (temp 2-component vector of float) -0:99 'inF1' (temp 2-component vector of float) -0:100 min (global 2-component vector of float) +0:100 log (global 2-component vector of float) 0:100 'inF0' (temp 2-component vector of float) -0:100 'inF1' (temp 2-component vector of float) -0:102 normalize (global 2-component vector of float) +0:101 vector-scale (temp 2-component vector of float) +0:101 log2 (temp 2-component vector of float) +0:101 'inF0' (temp 2-component vector of float) +0:101 Constant: +0:101 0.301030 +0:102 log2 (global 2-component vector of float) 0:102 'inF0' (temp 2-component vector of float) -0:103 pow (global 2-component vector of float) +0:103 max (global 2-component vector of float) 0:103 'inF0' (temp 2-component vector of float) 0:103 'inF1' (temp 2-component vector of float) -0:104 radians (global 2-component vector of float) +0:104 min (global 2-component vector of float) 0:104 'inF0' (temp 2-component vector of float) -0:105 reflect (global 2-component vector of float) -0:105 'inF0' (temp 2-component vector of float) -0:105 'inF1' (temp 2-component vector of float) -0:106 refract (global 2-component vector of float) +0:104 'inF1' (temp 2-component vector of float) +0:106 normalize (global 2-component vector of float) 0:106 'inF0' (temp 2-component vector of float) -0:106 'inF1' (temp 2-component vector of float) -0:106 Constant: -0:106 2.000000 +0:107 pow (global 2-component vector of float) +0:107 'inF0' (temp 2-component vector of float) +0:107 'inF1' (temp 2-component vector of float) +0:108 radians (global 2-component vector of float) +0:108 'inF0' (temp 2-component vector of float) +0:109 reflect (global 2-component vector of float) +0:109 'inF0' (temp 2-component vector of float) +0:109 'inF1' (temp 2-component vector of float) +0:110 refract (global 2-component vector of float) +0:110 'inF0' (temp 2-component vector of float) +0:110 'inF1' (temp 2-component vector of float) +0:110 Constant: +0:110 2.000000 0:? bitFieldReverse (global 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:108 roundEven (global 2-component vector of float) -0:108 'inF0' (temp 2-component vector of float) -0:109 inverse sqrt (global 2-component vector of float) -0:109 'inF0' (temp 2-component vector of float) -0:110 Sign (global 2-component vector of float) -0:110 'inF0' (temp 2-component vector of float) -0:111 sine (global 2-component vector of float) -0:111 'inF0' (temp 2-component vector of float) -0:112 hyp. sine (global 2-component vector of float) +0:112 roundEven (global 2-component vector of float) 0:112 'inF0' (temp 2-component vector of float) -0:113 smoothstep (global 2-component vector of float) +0:113 inverse sqrt (global 2-component vector of float) 0:113 'inF0' (temp 2-component vector of float) -0:113 'inF1' (temp 2-component vector of float) -0:113 'inF2' (temp 2-component vector of float) -0:114 sqrt (global 2-component vector of float) +0:114 clamp (global 2-component vector of float) 0:114 'inF0' (temp 2-component vector of float) -0:115 step (global 2-component vector of float) +0:114 Constant: +0:114 0.000000 +0:114 Constant: +0:114 1.000000 +0:115 Sign (global 2-component vector of float) 0:115 'inF0' (temp 2-component vector of float) -0:115 'inF1' (temp 2-component vector of float) -0:116 tangent (global 2-component vector of float) +0:116 sine (global 2-component vector of float) 0:116 'inF0' (temp 2-component vector of float) -0:117 hyp. tangent (global 2-component vector of float) -0:117 'inF0' (temp 2-component vector of float) -0:119 trunc (global 2-component vector of float) +0:117 Sequence +0:117 move second child to first child (temp 2-component vector of float) +0:117 'inF1' (temp 2-component vector of float) +0:117 sine (temp 2-component vector of float) +0:117 'inF0' (temp 2-component vector of float) +0:117 move second child to first child (temp 2-component vector of float) +0:117 'inF2' (temp 2-component vector of float) +0:117 cosine (temp 2-component vector of float) +0:117 'inF0' (temp 2-component vector of float) +0:118 hyp. sine (global 2-component vector of float) +0:118 'inF0' (temp 2-component vector of float) +0:119 smoothstep (global 2-component vector of float) 0:119 'inF0' (temp 2-component vector of float) -0:122 Branch: Return with expression +0:119 'inF1' (temp 2-component vector of float) +0:119 'inF2' (temp 2-component vector of float) +0:120 sqrt (global 2-component vector of float) +0:120 'inF0' (temp 2-component vector of float) +0:121 step (global 2-component vector of float) +0:121 'inF0' (temp 2-component vector of float) +0:121 'inF1' (temp 2-component vector of float) +0:122 tangent (global 2-component vector of float) +0:122 'inF0' (temp 2-component vector of float) +0:123 hyp. tangent (global 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:125 trunc (global 2-component vector of float) +0:125 'inF0' (temp 2-component vector of float) +0:128 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:189 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) -0:126 Function Parameters: -0:126 'inF0' (temp 3-component vector of float) -0:126 'inF1' (temp 3-component vector of float) -0:126 'inF2' (temp 3-component vector of float) +0:198 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) +0:132 Function Parameters: +0:132 'inF0' (temp 3-component vector of float) +0:132 'inF1' (temp 3-component vector of float) +0:132 'inF2' (temp 3-component vector of float) 0:? Sequence -0:127 all (global bool) -0:127 'inF0' (temp 3-component vector of float) -0:128 Absolute value (global 3-component vector of float) -0:128 'inF0' (temp 3-component vector of float) -0:129 arc cosine (global 3-component vector of float) -0:129 'inF0' (temp 3-component vector of float) -0:130 any (global bool) -0:130 'inF0' (temp 3-component vector of float) -0:131 arc sine (global 3-component vector of float) -0:131 'inF0' (temp 3-component vector of float) -0:132 arc tangent (global 3-component vector of float) -0:132 'inF0' (temp 3-component vector of float) -0:133 arc tangent (global 3-component vector of float) +0:133 all (global bool) 0:133 'inF0' (temp 3-component vector of float) -0:133 'inF1' (temp 3-component vector of float) -0:134 Ceiling (global 3-component vector of float) +0:134 Absolute value (global 3-component vector of float) 0:134 'inF0' (temp 3-component vector of float) -0:135 clamp (global 3-component vector of float) +0:135 arc cosine (global 3-component vector of float) 0:135 'inF0' (temp 3-component vector of float) -0:135 'inF1' (temp 3-component vector of float) -0:135 'inF2' (temp 3-component vector of float) -0:136 cosine (global 3-component vector of float) +0:136 any (global bool) 0:136 'inF0' (temp 3-component vector of float) -0:137 hyp. cosine (global 3-component vector of float) +0:137 arc sine (global 3-component vector of float) 0:137 'inF0' (temp 3-component vector of float) +0:138 arc tangent (global 3-component vector of float) +0:138 'inF0' (temp 3-component vector of float) +0:139 arc tangent (global 3-component vector of float) +0:139 'inF0' (temp 3-component vector of float) +0:139 'inF1' (temp 3-component vector of float) +0:140 Ceiling (global 3-component vector of float) +0:140 'inF0' (temp 3-component vector of float) +0:141 clamp (global 3-component vector of float) +0:141 'inF0' (temp 3-component vector of float) +0:141 'inF1' (temp 3-component vector of float) +0:141 'inF2' (temp 3-component vector of float) +0:142 cosine (global 3-component vector of float) +0:142 'inF0' (temp 3-component vector of float) +0:143 hyp. cosine (global 3-component vector of float) +0:143 'inF0' (temp 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:139 cross-product (global 3-component vector of float) -0:139 'inF0' (temp 3-component vector of float) -0:139 'inF1' (temp 3-component vector of float) -0:140 degrees (global 3-component vector of float) -0:140 'inF0' (temp 3-component vector of float) -0:141 distance (global float) -0:141 'inF0' (temp 3-component vector of float) -0:141 'inF1' (temp 3-component vector of float) -0:142 dot-product (global float) -0:142 'inF0' (temp 3-component vector of float) -0:142 'inF1' (temp 3-component vector of float) -0:146 exp (global 3-component vector of float) +0:145 cross-product (global 3-component vector of float) +0:145 'inF0' (temp 3-component vector of float) +0:145 'inF1' (temp 3-component vector of float) +0:146 degrees (global 3-component vector of float) 0:146 'inF0' (temp 3-component vector of float) -0:147 exp2 (global 3-component vector of float) +0:147 distance (global float) 0:147 'inF0' (temp 3-component vector of float) -0:148 face-forward (global 3-component vector of float) +0:147 'inF1' (temp 3-component vector of float) +0:148 dot-product (global float) 0:148 'inF0' (temp 3-component vector of float) 0:148 'inF1' (temp 3-component vector of float) -0:148 'inF2' (temp 3-component vector of float) -0:149 findMSB (global int) -0:149 Constant: -0:149 7 (const int) -0:150 findLSB (global int) -0:150 Constant: -0:150 7 (const int) -0:151 Floor (global 3-component vector of float) -0:151 'inF0' (temp 3-component vector of float) -0:153 Function Call: fmod(vf3;vf3; (global 3-component vector of float) +0:152 exp (global 3-component vector of float) +0:152 'inF0' (temp 3-component vector of float) +0:153 exp2 (global 3-component vector of float) 0:153 'inF0' (temp 3-component vector of float) -0:153 'inF1' (temp 3-component vector of float) -0:154 Fraction (global 3-component vector of float) +0:154 face-forward (global 3-component vector of float) 0:154 'inF0' (temp 3-component vector of float) -0:155 frexp (global 3-component vector of float) -0:155 'inF0' (temp 3-component vector of float) -0:155 'inF1' (temp 3-component vector of float) -0:156 fwidth (global 3-component vector of float) -0:156 'inF0' (temp 3-component vector of float) -0:157 isinf (global 3-component vector of bool) +0:154 'inF1' (temp 3-component vector of float) +0:154 'inF2' (temp 3-component vector of float) +0:155 findMSB (global int) +0:155 Constant: +0:155 7 (const int) +0:156 findLSB (global int) +0:156 Constant: +0:156 7 (const int) +0:157 Floor (global 3-component vector of float) 0:157 'inF0' (temp 3-component vector of float) -0:158 isnan (global 3-component vector of bool) -0:158 'inF0' (temp 3-component vector of float) -0:159 ldexp (global 3-component vector of float) +0:159 mod (global 3-component vector of float) 0:159 'inF0' (temp 3-component vector of float) 0:159 'inF1' (temp 3-component vector of float) -0:160 length (global float) +0:160 Fraction (global 3-component vector of float) 0:160 'inF0' (temp 3-component vector of float) -0:161 log (global 3-component vector of float) +0:161 frexp (global 3-component vector of float) 0:161 'inF0' (temp 3-component vector of float) -0:162 log2 (global 3-component vector of float) +0:161 'inF1' (temp 3-component vector of float) +0:162 fwidth (global 3-component vector of float) 0:162 'inF0' (temp 3-component vector of float) -0:163 max (global 3-component vector of float) +0:163 isinf (global 3-component vector of bool) 0:163 'inF0' (temp 3-component vector of float) -0:163 'inF1' (temp 3-component vector of float) -0:164 min (global 3-component vector of float) +0:164 isnan (global 3-component vector of bool) 0:164 'inF0' (temp 3-component vector of float) -0:164 'inF1' (temp 3-component vector of float) -0:166 normalize (global 3-component vector of float) +0:165 ldexp (global 3-component vector of float) +0:165 'inF0' (temp 3-component vector of float) +0:165 'inF1' (temp 3-component vector of float) +0:166 length (global float) 0:166 'inF0' (temp 3-component vector of float) -0:167 pow (global 3-component vector of float) +0:167 log (global 3-component vector of float) 0:167 'inF0' (temp 3-component vector of float) -0:167 'inF1' (temp 3-component vector of float) -0:168 radians (global 3-component vector of float) -0:168 'inF0' (temp 3-component vector of float) -0:169 reflect (global 3-component vector of float) +0:168 vector-scale (temp 3-component vector of float) +0:168 log2 (temp 3-component vector of float) +0:168 'inF0' (temp 3-component vector of float) +0:168 Constant: +0:168 0.301030 +0:169 log2 (global 3-component vector of float) 0:169 'inF0' (temp 3-component vector of float) -0:169 'inF1' (temp 3-component vector of float) -0:170 refract (global 3-component vector of float) +0:170 max (global 3-component vector of float) 0:170 'inF0' (temp 3-component vector of float) 0:170 'inF1' (temp 3-component vector of float) -0:170 Constant: -0:170 2.000000 +0:171 min (global 3-component vector of float) +0:171 'inF0' (temp 3-component vector of float) +0:171 'inF1' (temp 3-component vector of float) +0:173 normalize (global 3-component vector of float) +0:173 'inF0' (temp 3-component vector of float) +0:174 pow (global 3-component vector of float) +0:174 'inF0' (temp 3-component vector of float) +0:174 'inF1' (temp 3-component vector of float) +0:175 radians (global 3-component vector of float) +0:175 'inF0' (temp 3-component vector of float) +0:176 reflect (global 3-component vector of float) +0:176 'inF0' (temp 3-component vector of float) +0:176 'inF1' (temp 3-component vector of float) +0:177 refract (global 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) +0:177 'inF1' (temp 3-component vector of float) +0:177 Constant: +0:177 2.000000 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:172 roundEven (global 3-component vector of float) -0:172 'inF0' (temp 3-component vector of float) -0:173 inverse sqrt (global 3-component vector of float) -0:173 'inF0' (temp 3-component vector of float) -0:174 Sign (global 3-component vector of float) -0:174 'inF0' (temp 3-component vector of float) -0:175 sine (global 3-component vector of float) -0:175 'inF0' (temp 3-component vector of float) -0:176 hyp. sine (global 3-component vector of float) -0:176 'inF0' (temp 3-component vector of float) -0:177 smoothstep (global 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) -0:177 'inF1' (temp 3-component vector of float) -0:177 'inF2' (temp 3-component vector of float) -0:178 sqrt (global 3-component vector of float) -0:178 'inF0' (temp 3-component vector of float) -0:179 step (global 3-component vector of float) +0:179 roundEven (global 3-component vector of float) 0:179 'inF0' (temp 3-component vector of float) -0:179 'inF1' (temp 3-component vector of float) -0:180 tangent (global 3-component vector of float) +0:180 inverse sqrt (global 3-component vector of float) 0:180 'inF0' (temp 3-component vector of float) -0:181 hyp. tangent (global 3-component vector of float) +0:181 clamp (global 3-component vector of float) 0:181 'inF0' (temp 3-component vector of float) -0:183 trunc (global 3-component vector of float) +0:181 Constant: +0:181 0.000000 +0:181 Constant: +0:181 1.000000 +0:182 Sign (global 3-component vector of float) +0:182 'inF0' (temp 3-component vector of float) +0:183 sine (global 3-component vector of float) 0:183 'inF0' (temp 3-component vector of float) -0:186 Branch: Return with expression +0:184 Sequence +0:184 move second child to first child (temp 3-component vector of float) +0:184 'inF1' (temp 3-component vector of float) +0:184 sine (temp 3-component vector of float) +0:184 'inF0' (temp 3-component vector of float) +0:184 move second child to first child (temp 3-component vector of float) +0:184 'inF2' (temp 3-component vector of float) +0:184 cosine (temp 3-component vector of float) +0:184 'inF0' (temp 3-component vector of float) +0:185 hyp. sine (global 3-component vector of float) +0:185 'inF0' (temp 3-component vector of float) +0:186 smoothstep (global 3-component vector of float) +0:186 'inF0' (temp 3-component vector of float) +0:186 'inF1' (temp 3-component vector of float) +0:186 'inF2' (temp 3-component vector of float) +0:187 sqrt (global 3-component vector of float) +0:187 'inF0' (temp 3-component vector of float) +0:188 step (global 3-component vector of float) +0:188 'inF0' (temp 3-component vector of float) +0:188 'inF1' (temp 3-component vector of float) +0:189 tangent (global 3-component vector of float) +0:189 'inF0' (temp 3-component vector of float) +0:190 hyp. tangent (global 3-component vector of float) +0:190 'inF0' (temp 3-component vector of float) +0:192 trunc (global 3-component vector of float) +0:192 'inF0' (temp 3-component vector of float) +0:195 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:298 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) -0:190 Function Parameters: -0:190 'inF0' (temp 4-component vector of float) -0:190 'inF1' (temp 4-component vector of float) -0:190 'inF2' (temp 4-component vector of float) +0:314 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) +0:199 Function Parameters: +0:199 'inF0' (temp 4-component vector of float) +0:199 'inF1' (temp 4-component vector of float) +0:199 'inF2' (temp 4-component vector of float) 0:? Sequence -0:191 all (global bool) -0:191 'inF0' (temp 4-component vector of float) -0:192 Absolute value (global 4-component vector of float) -0:192 'inF0' (temp 4-component vector of float) -0:193 arc cosine (global 4-component vector of float) -0:193 'inF0' (temp 4-component vector of float) -0:194 any (global bool) -0:194 'inF0' (temp 4-component vector of float) -0:195 arc sine (global 4-component vector of float) -0:195 'inF0' (temp 4-component vector of float) -0:196 arc tangent (global 4-component vector of float) -0:196 'inF0' (temp 4-component vector of float) -0:197 arc tangent (global 4-component vector of float) -0:197 'inF0' (temp 4-component vector of float) -0:197 'inF1' (temp 4-component vector of float) -0:198 Ceiling (global 4-component vector of float) -0:198 'inF0' (temp 4-component vector of float) -0:199 clamp (global 4-component vector of float) -0:199 'inF0' (temp 4-component vector of float) -0:199 'inF1' (temp 4-component vector of float) -0:199 'inF2' (temp 4-component vector of float) -0:200 cosine (global 4-component vector of float) +0:200 all (global bool) 0:200 'inF0' (temp 4-component vector of float) -0:201 hyp. cosine (global 4-component vector of float) +0:201 Absolute value (global 4-component vector of float) 0:201 'inF0' (temp 4-component vector of float) +0:202 arc cosine (global 4-component vector of float) +0:202 'inF0' (temp 4-component vector of float) +0:203 any (global bool) +0:203 'inF0' (temp 4-component vector of float) +0:204 arc sine (global 4-component vector of float) +0:204 'inF0' (temp 4-component vector of float) +0:205 arc tangent (global 4-component vector of float) +0:205 'inF0' (temp 4-component vector of float) +0:206 arc tangent (global 4-component vector of float) +0:206 'inF0' (temp 4-component vector of float) +0:206 'inF1' (temp 4-component vector of float) +0:207 Ceiling (global 4-component vector of float) +0:207 'inF0' (temp 4-component vector of float) +0:208 clamp (global 4-component vector of float) +0:208 'inF0' (temp 4-component vector of float) +0:208 'inF1' (temp 4-component vector of float) +0:208 'inF2' (temp 4-component vector of float) +0:209 cosine (global 4-component vector of float) +0:209 'inF0' (temp 4-component vector of float) +0:210 hyp. cosine (global 4-component vector of float) +0:210 'inF0' (temp 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:203 degrees (global 4-component vector of float) -0:203 'inF0' (temp 4-component vector of float) -0:204 distance (global float) -0:204 'inF0' (temp 4-component vector of float) -0:204 'inF1' (temp 4-component vector of float) -0:205 dot-product (global float) -0:205 'inF0' (temp 4-component vector of float) -0:205 'inF1' (temp 4-component vector of float) -0:209 exp (global 4-component vector of float) -0:209 'inF0' (temp 4-component vector of float) -0:210 exp2 (global 4-component vector of float) -0:210 'inF0' (temp 4-component vector of float) -0:211 face-forward (global 4-component vector of float) -0:211 'inF0' (temp 4-component vector of float) -0:211 'inF1' (temp 4-component vector of float) -0:211 'inF2' (temp 4-component vector of float) -0:212 findMSB (global int) -0:212 Constant: -0:212 7 (const int) -0:213 findLSB (global int) -0:213 Constant: -0:213 7 (const int) -0:214 Floor (global 4-component vector of float) +0:212 degrees (global 4-component vector of float) +0:212 'inF0' (temp 4-component vector of float) +0:213 distance (global float) +0:213 'inF0' (temp 4-component vector of float) +0:213 'inF1' (temp 4-component vector of float) +0:214 dot-product (global float) 0:214 'inF0' (temp 4-component vector of float) -0:216 Function Call: fmod(vf4;vf4; (global 4-component vector of float) -0:216 'inF0' (temp 4-component vector of float) -0:216 'inF1' (temp 4-component vector of float) -0:217 Fraction (global 4-component vector of float) -0:217 'inF0' (temp 4-component vector of float) -0:218 frexp (global 4-component vector of float) -0:218 'inF0' (temp 4-component vector of float) -0:218 'inF1' (temp 4-component vector of float) -0:219 fwidth (global 4-component vector of float) +0:214 'inF1' (temp 4-component vector of float) +0:215 Construct vec4 (temp float) +0:215 Constant: +0:215 1.000000 +0:215 component-wise multiply (temp float) +0:215 direct index (temp float) +0:215 'inF0' (temp 4-component vector of float) +0:215 Constant: +0:215 1 (const int) +0:215 direct index (temp float) +0:215 'inF1' (temp 4-component vector of float) +0:215 Constant: +0:215 1 (const int) +0:215 direct index (temp float) +0:215 'inF0' (temp 4-component vector of float) +0:215 Constant: +0:215 2 (const int) +0:215 direct index (temp float) +0:215 'inF1' (temp 4-component vector of float) +0:215 Constant: +0:215 3 (const int) +0:219 exp (global 4-component vector of float) 0:219 'inF0' (temp 4-component vector of float) -0:220 isinf (global 4-component vector of bool) +0:220 exp2 (global 4-component vector of float) 0:220 'inF0' (temp 4-component vector of float) -0:221 isnan (global 4-component vector of bool) +0:221 face-forward (global 4-component vector of float) 0:221 'inF0' (temp 4-component vector of float) -0:222 ldexp (global 4-component vector of float) -0:222 'inF0' (temp 4-component vector of float) -0:222 'inF1' (temp 4-component vector of float) -0:223 length (global float) -0:223 'inF0' (temp 4-component vector of float) -0:224 log (global 4-component vector of float) +0:221 'inF1' (temp 4-component vector of float) +0:221 'inF2' (temp 4-component vector of float) +0:222 findMSB (global int) +0:222 Constant: +0:222 7 (const int) +0:223 findLSB (global int) +0:223 Constant: +0:223 7 (const int) +0:224 Floor (global 4-component vector of float) 0:224 'inF0' (temp 4-component vector of float) -0:225 log2 (global 4-component vector of float) -0:225 'inF0' (temp 4-component vector of float) -0:226 max (global 4-component vector of float) +0:226 mod (global 4-component vector of float) 0:226 'inF0' (temp 4-component vector of float) 0:226 'inF1' (temp 4-component vector of float) -0:227 min (global 4-component vector of float) +0:227 Fraction (global 4-component vector of float) 0:227 'inF0' (temp 4-component vector of float) -0:227 'inF1' (temp 4-component vector of float) -0:229 normalize (global 4-component vector of float) +0:228 frexp (global 4-component vector of float) +0:228 'inF0' (temp 4-component vector of float) +0:228 'inF1' (temp 4-component vector of float) +0:229 fwidth (global 4-component vector of float) 0:229 'inF0' (temp 4-component vector of float) -0:230 pow (global 4-component vector of float) +0:230 isinf (global 4-component vector of bool) 0:230 'inF0' (temp 4-component vector of float) -0:230 'inF1' (temp 4-component vector of float) -0:231 radians (global 4-component vector of float) +0:231 isnan (global 4-component vector of bool) 0:231 'inF0' (temp 4-component vector of float) -0:232 reflect (global 4-component vector of float) +0:232 ldexp (global 4-component vector of float) 0:232 'inF0' (temp 4-component vector of float) 0:232 'inF1' (temp 4-component vector of float) -0:233 refract (global 4-component vector of float) +0:233 length (global float) 0:233 'inF0' (temp 4-component vector of float) -0:233 'inF1' (temp 4-component vector of float) -0:233 Constant: -0:233 2.000000 +0:234 log (global 4-component vector of float) +0:234 'inF0' (temp 4-component vector of float) +0:235 vector-scale (temp 4-component vector of float) +0:235 log2 (temp 4-component vector of float) +0:235 'inF0' (temp 4-component vector of float) +0:235 Constant: +0:235 0.301030 +0:236 log2 (global 4-component vector of float) +0:236 'inF0' (temp 4-component vector of float) +0:237 max (global 4-component vector of float) +0:237 'inF0' (temp 4-component vector of float) +0:237 'inF1' (temp 4-component vector of float) +0:238 min (global 4-component vector of float) +0:238 'inF0' (temp 4-component vector of float) +0:238 'inF1' (temp 4-component vector of float) +0:240 normalize (global 4-component vector of float) +0:240 'inF0' (temp 4-component vector of float) +0:241 pow (global 4-component vector of float) +0:241 'inF0' (temp 4-component vector of float) +0:241 'inF1' (temp 4-component vector of float) +0:242 radians (global 4-component vector of float) +0:242 'inF0' (temp 4-component vector of float) +0:243 reflect (global 4-component vector of float) +0:243 'inF0' (temp 4-component vector of float) +0:243 'inF1' (temp 4-component vector of float) +0:244 refract (global 4-component vector of float) +0:244 'inF0' (temp 4-component vector of float) +0:244 'inF1' (temp 4-component vector of float) +0:244 Constant: +0:244 2.000000 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:235 roundEven (global 4-component vector of float) -0:235 'inF0' (temp 4-component vector of float) -0:236 inverse sqrt (global 4-component vector of float) -0:236 'inF0' (temp 4-component vector of float) -0:237 Sign (global 4-component vector of float) -0:237 'inF0' (temp 4-component vector of float) -0:238 sine (global 4-component vector of float) -0:238 'inF0' (temp 4-component vector of float) -0:239 hyp. sine (global 4-component vector of float) -0:239 'inF0' (temp 4-component vector of float) -0:240 smoothstep (global 4-component vector of float) -0:240 'inF0' (temp 4-component vector of float) -0:240 'inF1' (temp 4-component vector of float) -0:240 'inF2' (temp 4-component vector of float) -0:241 sqrt (global 4-component vector of float) -0:241 'inF0' (temp 4-component vector of float) -0:242 step (global 4-component vector of float) -0:242 'inF0' (temp 4-component vector of float) -0:242 'inF1' (temp 4-component vector of float) -0:243 tangent (global 4-component vector of float) -0:243 'inF0' (temp 4-component vector of float) -0:244 hyp. tangent (global 4-component vector of float) -0:244 'inF0' (temp 4-component vector of float) -0:246 trunc (global 4-component vector of float) +0:246 roundEven (global 4-component vector of float) 0:246 'inF0' (temp 4-component vector of float) -0:249 Branch: Return with expression +0:247 inverse sqrt (global 4-component vector of float) +0:247 'inF0' (temp 4-component vector of float) +0:248 clamp (global 4-component vector of float) +0:248 'inF0' (temp 4-component vector of float) +0:248 Constant: +0:248 0.000000 +0:248 Constant: +0:248 1.000000 +0:249 Sign (global 4-component vector of float) +0:249 'inF0' (temp 4-component vector of float) +0:250 sine (global 4-component vector of float) +0:250 'inF0' (temp 4-component vector of float) +0:251 Sequence +0:251 move second child to first child (temp 4-component vector of float) +0:251 'inF1' (temp 4-component vector of float) +0:251 sine (temp 4-component vector of float) +0:251 'inF0' (temp 4-component vector of float) +0:251 move second child to first child (temp 4-component vector of float) +0:251 'inF2' (temp 4-component vector of float) +0:251 cosine (temp 4-component vector of float) +0:251 'inF0' (temp 4-component vector of float) +0:252 hyp. sine (global 4-component vector of float) +0:252 'inF0' (temp 4-component vector of float) +0:253 smoothstep (global 4-component vector of float) +0:253 'inF0' (temp 4-component vector of float) +0:253 'inF1' (temp 4-component vector of float) +0:253 'inF2' (temp 4-component vector of float) +0:254 sqrt (global 4-component vector of float) +0:254 'inF0' (temp 4-component vector of float) +0:255 step (global 4-component vector of float) +0:255 'inF0' (temp 4-component vector of float) +0:255 'inF1' (temp 4-component vector of float) +0:256 tangent (global 4-component vector of float) +0:256 'inF0' (temp 4-component vector of float) +0:257 hyp. tangent (global 4-component vector of float) +0:257 'inF0' (temp 4-component vector of float) +0:259 trunc (global 4-component vector of float) +0:259 'inF0' (temp 4-component vector of float) +0:262 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:307 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:299 Function Parameters: -0:299 'inF0' (temp 2X2 matrix of float) -0:299 'inF1' (temp 2X2 matrix of float) -0:299 'inF2' (temp 2X2 matrix of float) +0:323 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:315 Function Parameters: +0:315 'inF0' (temp 2X2 matrix of float) +0:315 'inF1' (temp 2X2 matrix of float) +0:315 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:301 all (global bool) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 Absolute value (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 arc cosine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 any (global bool) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 arc sine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 arc tangent (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 arc tangent (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 Ceiling (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 clamp (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 'inF2' (temp 2X2 matrix of float) -0:301 cosine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 hyp. cosine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 degrees (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 determinant (global float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 exp (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 exp2 (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 findMSB (global int) -0:301 Constant: -0:301 7 (const int) -0:301 findLSB (global int) -0:301 Constant: -0:301 7 (const int) -0:301 Floor (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 Function Call: fmod(mf22;mf22; (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 Fraction (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 frexp (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 fwidth (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 ldexp (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 log (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 log2 (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 max (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 min (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 pow (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 radians (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 roundEven (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 inverse sqrt (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 Sign (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 sine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 hyp. sine (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 smoothstep (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 'inF2' (temp 2X2 matrix of float) -0:301 sqrt (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 step (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 'inF1' (temp 2X2 matrix of float) -0:301 tangent (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 hyp. tangent (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 transpose (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:301 trunc (global 2X2 matrix of float) -0:301 'inF0' (temp 2X2 matrix of float) -0:304 Branch: Return with expression +0:317 all (global bool) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 Absolute value (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 arc cosine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 any (global bool) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 arc sine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 arc tangent (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 arc tangent (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 Ceiling (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 clamp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 'inF2' (temp 2X2 matrix of float) +0:317 cosine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 hyp. cosine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 degrees (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 determinant (global float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 exp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 exp2 (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 findMSB (global int) +0:317 Constant: +0:317 7 (const int) +0:317 findLSB (global int) +0:317 Constant: +0:317 7 (const int) +0:317 Floor (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 mod (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 Fraction (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 frexp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 fwidth (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 ldexp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 log (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 matrix-scale (temp 2X2 matrix of float) +0:317 log2 (temp 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 Constant: +0:317 0.301030 +0:317 log2 (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 max (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 min (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 pow (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 radians (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 roundEven (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 inverse sqrt (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 clamp (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 Constant: +0:317 0.000000 +0:317 Constant: +0:317 1.000000 +0:317 Sign (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 sine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 Sequence +0:317 move second child to first child (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 sine (temp 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 move second child to first child (temp 2X2 matrix of float) +0:317 'inF2' (temp 2X2 matrix of float) +0:317 cosine (temp 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 hyp. sine (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 smoothstep (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 'inF2' (temp 2X2 matrix of float) +0:317 sqrt (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 step (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 'inF1' (temp 2X2 matrix of float) +0:317 tangent (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 hyp. tangent (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 transpose (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:317 trunc (global 2X2 matrix of float) +0:317 'inF0' (temp 2X2 matrix of float) +0:320 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:316 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:308 Function Parameters: -0:308 'inF0' (temp 3X3 matrix of float) -0:308 'inF1' (temp 3X3 matrix of float) -0:308 'inF2' (temp 3X3 matrix of float) +0:332 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:324 Function Parameters: +0:324 'inF0' (temp 3X3 matrix of float) +0:324 'inF1' (temp 3X3 matrix of float) +0:324 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:310 all (global bool) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 Absolute value (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 arc cosine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 any (global bool) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 arc sine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 arc tangent (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 arc tangent (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 Ceiling (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 clamp (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 'inF2' (temp 3X3 matrix of float) -0:310 cosine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 hyp. cosine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 degrees (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 determinant (global float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 exp (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 exp2 (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 findMSB (global int) -0:310 Constant: -0:310 7 (const int) -0:310 findLSB (global int) -0:310 Constant: -0:310 7 (const int) -0:310 Floor (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 Function Call: fmod(mf33;mf33; (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 Fraction (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 frexp (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 fwidth (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 ldexp (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 log (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 log2 (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 max (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 min (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 pow (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 radians (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 roundEven (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 inverse sqrt (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 Sign (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 sine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 hyp. sine (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 smoothstep (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 'inF2' (temp 3X3 matrix of float) -0:310 sqrt (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 step (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 'inF1' (temp 3X3 matrix of float) -0:310 tangent (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 hyp. tangent (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 transpose (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:310 trunc (global 3X3 matrix of float) -0:310 'inF0' (temp 3X3 matrix of float) -0:313 Branch: Return with expression +0:326 all (global bool) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 Absolute value (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 arc cosine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 any (global bool) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 arc sine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 arc tangent (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 arc tangent (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 Ceiling (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 clamp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 'inF2' (temp 3X3 matrix of float) +0:326 cosine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 hyp. cosine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 degrees (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 determinant (global float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 exp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 exp2 (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 findMSB (global int) +0:326 Constant: +0:326 7 (const int) +0:326 findLSB (global int) +0:326 Constant: +0:326 7 (const int) +0:326 Floor (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 mod (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 Fraction (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 frexp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 fwidth (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 ldexp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 log (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 matrix-scale (temp 3X3 matrix of float) +0:326 log2 (temp 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 Constant: +0:326 0.301030 +0:326 log2 (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 max (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 min (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 pow (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 radians (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 roundEven (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 inverse sqrt (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 clamp (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 Constant: +0:326 0.000000 +0:326 Constant: +0:326 1.000000 +0:326 Sign (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 sine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 Sequence +0:326 move second child to first child (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 sine (temp 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 move second child to first child (temp 3X3 matrix of float) +0:326 'inF2' (temp 3X3 matrix of float) +0:326 cosine (temp 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 hyp. sine (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 smoothstep (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 'inF2' (temp 3X3 matrix of float) +0:326 sqrt (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 step (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 'inF1' (temp 3X3 matrix of float) +0:326 tangent (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 hyp. tangent (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 transpose (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:326 trunc (global 3X3 matrix of float) +0:326 'inF0' (temp 3X3 matrix of float) +0:329 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -1651,109 +2113,129 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:324 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:317 Function Parameters: -0:317 'inF0' (temp 4X4 matrix of float) -0:317 'inF1' (temp 4X4 matrix of float) -0:317 'inF2' (temp 4X4 matrix of float) +0:353 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:333 Function Parameters: +0:333 'inF0' (temp 4X4 matrix of float) +0:333 'inF1' (temp 4X4 matrix of float) +0:333 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:319 all (global bool) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 Absolute value (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 arc cosine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 any (global bool) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 arc sine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 arc tangent (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 arc tangent (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 Ceiling (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 clamp (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 'inF2' (temp 4X4 matrix of float) -0:319 cosine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 hyp. cosine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 degrees (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 determinant (global float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 exp (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 exp2 (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 findMSB (global int) -0:319 Constant: -0:319 7 (const int) -0:319 findLSB (global int) -0:319 Constant: -0:319 7 (const int) -0:319 Floor (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 Function Call: fmod(mf44;mf44; (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 Fraction (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 frexp (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 fwidth (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 ldexp (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 log (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 log2 (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 max (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 min (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 pow (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 radians (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 roundEven (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 inverse sqrt (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 Sign (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 sine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 hyp. sine (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 smoothstep (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 'inF2' (temp 4X4 matrix of float) -0:319 sqrt (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 step (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 'inF1' (temp 4X4 matrix of float) -0:319 tangent (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 hyp. tangent (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 transpose (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:319 trunc (global 4X4 matrix of float) -0:319 'inF0' (temp 4X4 matrix of float) -0:322 Branch: Return with expression +0:335 all (global bool) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 Absolute value (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 arc cosine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 any (global bool) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 arc sine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 arc tangent (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 arc tangent (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 Ceiling (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 clamp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 'inF2' (temp 4X4 matrix of float) +0:335 cosine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 hyp. cosine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 degrees (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 determinant (global float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 exp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 exp2 (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 findMSB (global int) +0:335 Constant: +0:335 7 (const int) +0:335 findLSB (global int) +0:335 Constant: +0:335 7 (const int) +0:335 Floor (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 mod (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 Fraction (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 frexp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 fwidth (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 ldexp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 log (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 matrix-scale (temp 4X4 matrix of float) +0:335 log2 (temp 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 Constant: +0:335 0.301030 +0:335 log2 (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 max (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 min (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 pow (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 radians (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 roundEven (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 inverse sqrt (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 clamp (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 Constant: +0:335 0.000000 +0:335 Constant: +0:335 1.000000 +0:335 Sign (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 sine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 Sequence +0:335 move second child to first child (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 sine (temp 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 move second child to first child (temp 4X4 matrix of float) +0:335 'inF2' (temp 4X4 matrix of float) +0:335 cosine (temp 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 hyp. sine (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 smoothstep (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 'inF2' (temp 4X4 matrix of float) +0:335 sqrt (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 step (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 'inF1' (temp 4X4 matrix of float) +0:335 tangent (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 hyp. tangent (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 transpose (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:335 trunc (global 4X4 matrix of float) +0:335 'inF0' (temp 4X4 matrix of float) +0:338 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1771,12 +2253,173 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 +0:360 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:356 Function Parameters: +0:356 'inF0' (temp float) +0:356 'inF1' (temp float) +0:356 'inFV0' (temp 2-component vector of float) +0:356 'inFV1' (temp 2-component vector of float) +0:356 'inFM0' (temp 2X2 matrix of float) +0:356 'inFM1' (temp 2X2 matrix of float) +0:? Sequence +0:357 move second child to first child (temp float) +0:357 'r0' (temp float) +0:357 component-wise multiply (temp float) +0:357 'inF0' (temp float) +0:357 'inF1' (temp float) +0:357 move second child to first child (temp 2-component vector of float) +0:357 'r1' (temp 2-component vector of float) +0:357 vector-scale (temp 2-component vector of float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 'inF0' (temp float) +0:357 move second child to first child (temp 2-component vector of float) +0:357 'r2' (temp 2-component vector of float) +0:357 vector-scale (temp 2-component vector of float) +0:357 'inF0' (temp float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 move second child to first child (temp float) +0:357 'r3' (temp float) +0:357 dot-product (global float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 'inFV1' (temp 2-component vector of float) +0:357 move second child to first child (temp 2-component vector of float) +0:357 'r4' (temp 2-component vector of float) +0:357 matrix-times-vector (temp 2-component vector of float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 move second child to first child (temp 2-component vector of float) +0:357 'r5' (temp 2-component vector of float) +0:357 vector-times-matrix (temp 2-component vector of float) +0:357 'inFV0' (temp 2-component vector of float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 move second child to first child (temp 2X2 matrix of float) +0:357 'r6' (temp 2X2 matrix of float) +0:357 matrix-scale (temp 2X2 matrix of float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 'inF0' (temp float) +0:357 move second child to first child (temp 2X2 matrix of float) +0:357 'r7' (temp 2X2 matrix of float) +0:357 matrix-scale (temp 2X2 matrix of float) +0:357 'inF0' (temp float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 move second child to first child (temp 2X2 matrix of float) +0:357 'r8' (temp 2X2 matrix of float) +0:357 matrix-multiply (temp 2X2 matrix of float) +0:357 'inFM0' (temp 2X2 matrix of float) +0:357 'inFM1' (temp 2X2 matrix of float) +0:367 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:363 Function Parameters: +0:363 'inF0' (temp float) +0:363 'inF1' (temp float) +0:363 'inFV0' (temp 3-component vector of float) +0:363 'inFV1' (temp 3-component vector of float) +0:363 'inFM0' (temp 3X3 matrix of float) +0:363 'inFM1' (temp 3X3 matrix of float) +0:? Sequence +0:364 move second child to first child (temp float) +0:364 'r0' (temp float) +0:364 component-wise multiply (temp float) +0:364 'inF0' (temp float) +0:364 'inF1' (temp float) +0:364 move second child to first child (temp 3-component vector of float) +0:364 'r1' (temp 3-component vector of float) +0:364 vector-scale (temp 3-component vector of float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 'inF0' (temp float) +0:364 move second child to first child (temp 3-component vector of float) +0:364 'r2' (temp 3-component vector of float) +0:364 vector-scale (temp 3-component vector of float) +0:364 'inF0' (temp float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 move second child to first child (temp float) +0:364 'r3' (temp float) +0:364 dot-product (global float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 'inFV1' (temp 3-component vector of float) +0:364 move second child to first child (temp 3-component vector of float) +0:364 'r4' (temp 3-component vector of float) +0:364 matrix-times-vector (temp 3-component vector of float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 move second child to first child (temp 3-component vector of float) +0:364 'r5' (temp 3-component vector of float) +0:364 vector-times-matrix (temp 3-component vector of float) +0:364 'inFV0' (temp 3-component vector of float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 move second child to first child (temp 3X3 matrix of float) +0:364 'r6' (temp 3X3 matrix of float) +0:364 matrix-scale (temp 3X3 matrix of float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 'inF0' (temp float) +0:364 move second child to first child (temp 3X3 matrix of float) +0:364 'r7' (temp 3X3 matrix of float) +0:364 matrix-scale (temp 3X3 matrix of float) +0:364 'inF0' (temp float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 move second child to first child (temp 3X3 matrix of float) +0:364 'r8' (temp 3X3 matrix of float) +0:364 matrix-multiply (temp 3X3 matrix of float) +0:364 'inFM0' (temp 3X3 matrix of float) +0:364 'inFM1' (temp 3X3 matrix of float) +0:373 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:370 Function Parameters: +0:370 'inF0' (temp float) +0:370 'inF1' (temp float) +0:370 'inFV0' (temp 4-component vector of float) +0:370 'inFV1' (temp 4-component vector of float) +0:370 'inFM0' (temp 4X4 matrix of float) +0:370 'inFM1' (temp 4X4 matrix of float) +0:? Sequence +0:371 move second child to first child (temp float) +0:371 'r0' (temp float) +0:371 component-wise multiply (temp float) +0:371 'inF0' (temp float) +0:371 'inF1' (temp float) +0:371 move second child to first child (temp 4-component vector of float) +0:371 'r1' (temp 4-component vector of float) +0:371 vector-scale (temp 4-component vector of float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 'inF0' (temp float) +0:371 move second child to first child (temp 4-component vector of float) +0:371 'r2' (temp 4-component vector of float) +0:371 vector-scale (temp 4-component vector of float) +0:371 'inF0' (temp float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 move second child to first child (temp float) +0:371 'r3' (temp float) +0:371 dot-product (global float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 'inFV1' (temp 4-component vector of float) +0:371 move second child to first child (temp 4-component vector of float) +0:371 'r4' (temp 4-component vector of float) +0:371 matrix-times-vector (temp 4-component vector of float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 move second child to first child (temp 4-component vector of float) +0:371 'r5' (temp 4-component vector of float) +0:371 vector-times-matrix (temp 4-component vector of float) +0:371 'inFV0' (temp 4-component vector of float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 move second child to first child (temp 4X4 matrix of float) +0:371 'r6' (temp 4X4 matrix of float) +0:371 matrix-scale (temp 4X4 matrix of float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 'inF0' (temp float) +0:371 move second child to first child (temp 4X4 matrix of float) +0:371 'r7' (temp 4X4 matrix of float) +0:371 matrix-scale (temp 4X4 matrix of float) +0:371 'inF0' (temp float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 move second child to first child (temp 4X4 matrix of float) +0:371 'r8' (temp 4X4 matrix of float) +0:371 matrix-multiply (temp 4X4 matrix of float) +0:371 'inFM0' (temp 4X4 matrix of float) +0:371 'inFM1' (temp 4X4 matrix of float) 0:? Linker Objects -Missing functionality: missing user function; linker needs to catch that // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 796 +// Id's are bound by 1064 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -1784,211 +2427,442 @@ Missing functionality: missing user function; linker needs to catch that EntryPoint Vertex 4 "VertexShaderFunction" Source HLSL 450 Name 4 "VertexShaderFunction" - Name 8 "inF0" - Name 23 "inF1" - Name 30 "inF2" - Name 55 "ResType" - Name 115 "inF0" - Name 129 "inF1" - Name 136 "inF2" - Name 171 "ResType" - Name 244 "inF0" - Name 258 "inF1" - Name 265 "inF2" - Name 303 "ResType" - Name 374 "inF0" - Name 388 "inF1" - Name 395 "inF2" - Name 429 "ResType" - Name 501 "inF0" - Name 515 "inF1" - Name 522 "inF2" - Name 544 "ResType" - Name 600 "inF0" - Name 614 "inF1" - Name 621 "inF2" - Name 643 "ResType" - Name 699 "inF0" - Name 713 "inF1" - Name 720 "inF2" - Name 742 "ResType" + Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;" + Name 13 "inF0" + Name 14 "inF1" + Name 15 "inFV0" + Name 16 "inFV1" + Name 17 "inFM0" + Name 18 "inFM1" + Name 32 "TestGenMul(f1;f1;vf3;vf3;mf33;mf33;" + Name 26 "inF0" + Name 27 "inF1" + Name 28 "inFV0" + Name 29 "inFV1" + Name 30 "inFM0" + Name 31 "inFM1" + Name 45 "TestGenMul(f1;f1;vf4;vf4;mf44;mf44;" + Name 39 "inF0" + Name 40 "inF1" + Name 41 "inFV0" + Name 42 "inFV1" + Name 43 "inFM0" + Name 44 "inFM1" + Name 47 "inF0" + Name 62 "inF1" + Name 69 "inF2" + Name 97 "ResType" + Name 166 "inF0" + Name 180 "inF1" + Name 187 "inF2" + Name 225 "ResType" + Name 306 "inF0" + Name 320 "inF1" + Name 327 "inF2" + Name 368 "ResType" + Name 448 "inF0" + Name 462 "inF1" + Name 469 "inF2" + Name 515 "ResType" + Name 596 "inF0" + Name 610 "inF1" + Name 617 "inF2" + Name 648 "ResType" + Name 713 "inF0" + Name 727 "inF1" + Name 734 "inF2" + Name 768 "ResType" + Name 833 "inF0" + Name 847 "inF1" + Name 854 "inF2" + Name 891 "ResType" + Name 956 "r0" + Name 960 "r1" + Name 964 "r2" + Name 968 "r3" + Name 972 "r4" + Name 976 "r5" + Name 980 "r6" + Name 984 "r7" + Name 988 "r8" + Name 992 "r0" + Name 996 "r1" + Name 1000 "r2" + Name 1004 "r3" + Name 1008 "r4" + Name 1012 "r5" + Name 1016 "r6" + Name 1020 "r7" + Name 1024 "r8" + Name 1028 "r0" + Name 1032 "r1" + Name 1036 "r2" + Name 1040 "r3" + Name 1044 "r4" + Name 1048 "r5" + Name 1052 "r6" + Name 1056 "r7" + Name 1060 "r8" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) - 10: TypeBool - 37: TypeInt 32 0 - 38: 37(int) Constant 7 - 46: TypeInt 32 1 - 47: 46(int) Constant 7 - 55(ResType): TypeStruct 6(float) 46(int) - 83: 37(int) Constant 2 - 110: 6(float) Constant 0 - 113: TypeVector 6(float) 2 - 114: TypePointer Function 113(fvec2) - 143: TypeVector 37(int) 2 - 144: 37(int) Constant 3 - 145: 143(ivec2) ConstantComposite 38 144 - 170: TypeVector 46(int) 2 - 171(ResType): TypeStruct 113(fvec2) 170(ivec2) - 178: TypeVector 10(bool) 2 - 209: 6(float) Constant 1073741824 - 211: 37(int) Constant 1 - 212: 143(ivec2) ConstantComposite 211 83 - 239: 6(float) Constant 1065353216 - 240: 113(fvec2) ConstantComposite 239 209 - 242: TypeVector 6(float) 3 - 243: TypePointer Function 242(fvec3) - 272: TypeVector 37(int) 3 - 273: 37(int) Constant 5 - 274: 272(ivec3) ConstantComposite 38 144 273 - 302: TypeVector 46(int) 3 - 303(ResType): TypeStruct 242(fvec3) 302(ivec3) - 310: TypeVector 10(bool) 3 - 342: 272(ivec3) ConstantComposite 211 83 144 - 369: 6(float) Constant 1077936128 - 370: 242(fvec3) ConstantComposite 239 209 369 - 372: TypeVector 6(float) 4 - 373: TypePointer Function 372(fvec4) - 402: TypeVector 37(int) 4 - 403: 402(ivec4) ConstantComposite 38 144 273 83 - 428: TypeVector 46(int) 4 - 429(ResType): TypeStruct 372(fvec4) 428(ivec4) - 436: TypeVector 10(bool) 4 - 468: 37(int) Constant 4 - 469: 402(ivec4) ConstantComposite 211 83 144 468 - 496: 6(float) Constant 1082130432 - 497: 372(fvec4) ConstantComposite 239 209 369 496 - 499: TypeMatrix 113(fvec2) 2 - 500: TypePointer Function 499 - 544(ResType): TypeStruct 499 170(ivec2) - 595: 113(fvec2) ConstantComposite 209 209 - 596: 499 ConstantComposite 595 595 - 598: TypeMatrix 242(fvec3) 3 - 599: TypePointer Function 598 - 643(ResType): TypeStruct 598 302(ivec3) - 694: 242(fvec3) ConstantComposite 369 369 369 - 695: 598 ConstantComposite 694 694 694 - 697: TypeMatrix 372(fvec4) 4 - 698: TypePointer Function 697 - 742(ResType): TypeStruct 697 428(ivec4) - 793: 372(fvec4) ConstantComposite 496 496 496 496 - 794: 697 ConstantComposite 793 793 793 793 + 8: TypeVector 6(float) 2 + 9: TypePointer Function 8(fvec2) + 10: TypeMatrix 8(fvec2) 2 + 11: TypePointer Function 10 + 12: TypeFunction 2 7(ptr) 7(ptr) 9(ptr) 9(ptr) 11(ptr) 11(ptr) + 21: TypeVector 6(float) 3 + 22: TypePointer Function 21(fvec3) + 23: TypeMatrix 21(fvec3) 3 + 24: TypePointer Function 23 + 25: TypeFunction 2 7(ptr) 7(ptr) 22(ptr) 22(ptr) 24(ptr) 24(ptr) + 34: TypeVector 6(float) 4 + 35: TypePointer Function 34(fvec4) + 36: TypeMatrix 34(fvec4) 4 + 37: TypePointer Function 36 + 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr) + 49: TypeBool + 76: TypeInt 32 0 + 77: 76(int) Constant 7 + 85: TypeInt 32 1 + 86: 85(int) Constant 7 + 97(ResType): TypeStruct 6(float) 85(int) + 114: 6(float) Constant 1050288283 + 129: 76(int) Constant 2 + 136: 6(float) Constant 0 + 137: 6(float) Constant 1065353216 + 194: TypeVector 76(int) 2 + 195: 76(int) Constant 3 + 196: 194(ivec2) ConstantComposite 77 195 + 224: TypeVector 85(int) 2 + 225(ResType): TypeStruct 8(fvec2) 224(ivec2) + 232: TypeVector 49(bool) 2 + 266: 6(float) Constant 1073741824 + 268: 76(int) Constant 1 + 269: 194(ivec2) ConstantComposite 268 129 + 304: 8(fvec2) ConstantComposite 137 266 + 334: TypeVector 76(int) 3 + 335: 76(int) Constant 5 + 336: 334(ivec3) ConstantComposite 77 195 335 + 367: TypeVector 85(int) 3 + 368(ResType): TypeStruct 21(fvec3) 367(ivec3) + 375: TypeVector 49(bool) 3 + 410: 334(ivec3) ConstantComposite 268 129 195 + 445: 6(float) Constant 1077936128 + 446: 21(fvec3) ConstantComposite 137 266 445 + 476: TypeVector 76(int) 4 + 477: 476(ivec4) ConstantComposite 77 195 335 129 + 514: TypeVector 85(int) 4 + 515(ResType): TypeStruct 34(fvec4) 514(ivec4) + 522: TypeVector 49(bool) 4 + 557: 76(int) Constant 4 + 558: 476(ivec4) ConstantComposite 268 129 195 557 + 593: 6(float) Constant 1082130432 + 594: 34(fvec4) ConstantComposite 137 266 445 593 + 648(ResType): TypeStruct 10 224(ivec2) + 710: 8(fvec2) ConstantComposite 266 266 + 711: 10 ConstantComposite 710 710 + 768(ResType): TypeStruct 23 367(ivec3) + 830: 21(fvec3) ConstantComposite 445 445 445 + 831: 23 ConstantComposite 830 830 830 + 891(ResType): TypeStruct 36 514(ivec4) + 953: 34(fvec4) ConstantComposite 593 593 593 593 + 954: 36 ConstantComposite 953 953 953 953 4(VertexShaderFunction): 2 Function None 3 5: Label - 8(inF0): 7(ptr) Variable Function - 23(inF1): 7(ptr) Variable Function - 30(inF2): 7(ptr) Variable Function - 115(inF0): 114(ptr) Variable Function - 129(inF1): 114(ptr) Variable Function - 136(inF2): 114(ptr) Variable Function - 244(inF0): 243(ptr) Variable Function - 258(inF1): 243(ptr) Variable Function - 265(inF2): 243(ptr) Variable Function - 374(inF0): 373(ptr) Variable Function - 388(inF1): 373(ptr) Variable Function - 395(inF2): 373(ptr) Variable Function - 501(inF0): 500(ptr) Variable Function - 515(inF1): 500(ptr) Variable Function - 522(inF2): 500(ptr) Variable Function - 600(inF0): 599(ptr) Variable Function - 614(inF1): 599(ptr) Variable Function - 621(inF2): 599(ptr) Variable Function - 699(inF0): 698(ptr) Variable Function - 713(inF1): 698(ptr) Variable Function - 720(inF2): 698(ptr) Variable Function - 9: 6(float) Load 8(inF0) - 11: 10(bool) All 9 - 12: 6(float) Load 8(inF0) - 13: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 12 - 14: 6(float) Load 8(inF0) - 15: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 14 - 16: 6(float) Load 8(inF0) - 17: 10(bool) Any 16 - 18: 6(float) Load 8(inF0) - 19: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 18 - 20: 6(float) Load 8(inF0) - 21: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 20 - 22: 6(float) Load 8(inF0) - 24: 6(float) Load 23(inF1) - 25: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 22 24 - 26: 6(float) Load 8(inF0) - 27: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 26 - 28: 6(float) Load 8(inF0) - 29: 6(float) Load 23(inF1) - 31: 6(float) Load 30(inF2) - 32: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 28 29 31 - 33: 6(float) Load 8(inF0) - 34: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 33 - 35: 6(float) Load 8(inF0) - 36: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 35 - 39: 37(int) BitCount 38 - 40: 6(float) Load 8(inF0) - 41: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 40 - 42: 6(float) Load 8(inF0) - 43: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 42 - 44: 6(float) Load 8(inF0) - 45: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 44 - 48: 46(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 47 - 49: 46(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 47 - 50: 6(float) Load 8(inF0) - 51: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 50 - 52: 6(float) Load 8(inF0) - 53: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 52 - 54: 6(float) Load 8(inF0) - 56: 55(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 54 - 57: 46(int) CompositeExtract 56 1 - Store 23(inF1) 57 - 58: 6(float) CompositeExtract 56 0 - 59: 6(float) Load 8(inF0) - 60: 6(float) Fwidth 59 - 61: 6(float) Load 8(inF0) - 62: 10(bool) IsInf 61 - 63: 6(float) Load 8(inF0) - 64: 10(bool) IsNan 63 - 65: 6(float) Load 8(inF0) - 66: 6(float) Load 23(inF1) - 67: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 65 66 - 68: 6(float) Load 8(inF0) - 69: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 68 - 70: 6(float) Load 8(inF0) - 71: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 70 - 72: 6(float) Load 8(inF0) - 73: 6(float) Load 23(inF1) - 74: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 72 73 - 75: 6(float) Load 8(inF0) - 76: 6(float) Load 23(inF1) - 77: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 75 76 - 78: 6(float) Load 8(inF0) - 79: 6(float) Load 23(inF1) - 80: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 78 79 - 81: 6(float) Load 8(inF0) - 82: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 81 - 84: 37(int) BitReverse 83 - 85: 6(float) Load 8(inF0) - 86: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 85 - 87: 6(float) Load 8(inF0) - 88: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 87 - 89: 6(float) Load 8(inF0) - 90: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 89 - 91: 6(float) Load 8(inF0) - 92: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 91 - 93: 6(float) Load 8(inF0) - 94: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 93 - 95: 6(float) Load 8(inF0) - 96: 6(float) Load 23(inF1) - 97: 6(float) Load 30(inF2) - 98: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 95 96 97 - 99: 6(float) Load 8(inF0) - 100: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 99 - 101: 6(float) Load 8(inF0) - 102: 6(float) Load 23(inF1) - 103: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 101 102 - 104: 6(float) Load 8(inF0) - 105: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 104 - 106: 6(float) Load 8(inF0) - 107: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 106 - 108: 6(float) Load 8(inF0) - 109: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 108 - ReturnValue 110 + 47(inF0): 7(ptr) Variable Function + 62(inF1): 7(ptr) Variable Function + 69(inF2): 7(ptr) Variable Function + 166(inF0): 9(ptr) Variable Function + 180(inF1): 9(ptr) Variable Function + 187(inF2): 9(ptr) Variable Function + 306(inF0): 22(ptr) Variable Function + 320(inF1): 22(ptr) Variable Function + 327(inF2): 22(ptr) Variable Function + 448(inF0): 35(ptr) Variable Function + 462(inF1): 35(ptr) Variable Function + 469(inF2): 35(ptr) Variable Function + 596(inF0): 11(ptr) Variable Function + 610(inF1): 11(ptr) Variable Function + 617(inF2): 11(ptr) Variable Function + 713(inF0): 24(ptr) Variable Function + 727(inF1): 24(ptr) Variable Function + 734(inF2): 24(ptr) Variable Function + 833(inF0): 37(ptr) Variable Function + 847(inF1): 37(ptr) Variable Function + 854(inF2): 37(ptr) Variable Function + 48: 6(float) Load 47(inF0) + 50: 49(bool) All 48 + 51: 6(float) Load 47(inF0) + 52: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 51 + 53: 6(float) Load 47(inF0) + 54: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 53 + 55: 6(float) Load 47(inF0) + 56: 49(bool) Any 55 + 57: 6(float) Load 47(inF0) + 58: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 57 + 59: 6(float) Load 47(inF0) + 60: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 59 + 61: 6(float) Load 47(inF0) + 63: 6(float) Load 62(inF1) + 64: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 61 63 + 65: 6(float) Load 47(inF0) + 66: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 65 + 67: 6(float) Load 47(inF0) + 68: 6(float) Load 62(inF1) + 70: 6(float) Load 69(inF2) + 71: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 67 68 70 + 72: 6(float) Load 47(inF0) + 73: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 72 + 74: 6(float) Load 47(inF0) + 75: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 74 + 78: 76(int) BitCount 77 + 79: 6(float) Load 47(inF0) + 80: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 79 + 81: 6(float) Load 47(inF0) + 82: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 81 + 83: 6(float) Load 47(inF0) + 84: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 83 + 87: 85(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 86 + 88: 85(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 86 + 89: 6(float) Load 47(inF0) + 90: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 89 + 91: 6(float) Load 47(inF0) + 92: 6(float) Load 62(inF1) + 93: 6(float) FMod 91 92 + 94: 6(float) Load 47(inF0) + 95: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 94 + 96: 6(float) Load 47(inF0) + 98: 97(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 96 + 99: 85(int) CompositeExtract 98 1 + Store 62(inF1) 99 + 100: 6(float) CompositeExtract 98 0 + 101: 6(float) Load 47(inF0) + 102: 6(float) Fwidth 101 + 103: 6(float) Load 47(inF0) + 104: 49(bool) IsInf 103 + 105: 6(float) Load 47(inF0) + 106: 49(bool) IsNan 105 + 107: 6(float) Load 47(inF0) + 108: 6(float) Load 62(inF1) + 109: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 107 108 + 110: 6(float) Load 47(inF0) + 111: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 110 + 112: 6(float) Load 47(inF0) + 113: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 112 + 115: 6(float) FMul 113 114 + 116: 6(float) Load 47(inF0) + 117: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 116 + 118: 6(float) Load 47(inF0) + 119: 6(float) Load 62(inF1) + 120: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 118 119 + 121: 6(float) Load 47(inF0) + 122: 6(float) Load 62(inF1) + 123: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 121 122 + 124: 6(float) Load 47(inF0) + 125: 6(float) Load 62(inF1) + 126: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 124 125 + 127: 6(float) Load 47(inF0) + 128: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 127 + 130: 76(int) BitReverse 129 + 131: 6(float) Load 47(inF0) + 132: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 131 + 133: 6(float) Load 47(inF0) + 134: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 133 + 135: 6(float) Load 47(inF0) + 138: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 135 136 137 + 139: 6(float) Load 47(inF0) + 140: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 139 + 141: 6(float) Load 47(inF0) + 142: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 141 + 143: 6(float) Load 47(inF0) + 144: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 143 + Store 62(inF1) 144 + 145: 6(float) Load 47(inF0) + 146: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 145 + Store 69(inF2) 146 + 147: 6(float) Load 47(inF0) + 148: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 147 + 149: 6(float) Load 47(inF0) + 150: 6(float) Load 62(inF1) + 151: 6(float) Load 69(inF2) + 152: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 149 150 151 + 153: 6(float) Load 47(inF0) + 154: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 153 + 155: 6(float) Load 47(inF0) + 156: 6(float) Load 62(inF1) + 157: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 155 156 + 158: 6(float) Load 47(inF0) + 159: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 158 + 160: 6(float) Load 47(inF0) + 161: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 160 + 162: 6(float) Load 47(inF0) + 163: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 162 + ReturnValue 136 + FunctionEnd +19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12 + 13(inF0): 7(ptr) FunctionParameter + 14(inF1): 7(ptr) FunctionParameter + 15(inFV0): 9(ptr) FunctionParameter + 16(inFV1): 9(ptr) FunctionParameter + 17(inFM0): 11(ptr) FunctionParameter + 18(inFM1): 11(ptr) FunctionParameter + 20: Label + 956(r0): 7(ptr) Variable Function + 960(r1): 9(ptr) Variable Function + 964(r2): 9(ptr) Variable Function + 968(r3): 7(ptr) Variable Function + 972(r4): 9(ptr) Variable Function + 976(r5): 9(ptr) Variable Function + 980(r6): 11(ptr) Variable Function + 984(r7): 11(ptr) Variable Function + 988(r8): 11(ptr) Variable Function + 957: 6(float) Load 13(inF0) + 958: 6(float) Load 14(inF1) + 959: 6(float) FMul 957 958 + Store 956(r0) 959 + 961: 8(fvec2) Load 15(inFV0) + 962: 6(float) Load 13(inF0) + 963: 8(fvec2) VectorTimesScalar 961 962 + Store 960(r1) 963 + 965: 6(float) Load 13(inF0) + 966: 8(fvec2) Load 15(inFV0) + 967: 8(fvec2) VectorTimesScalar 966 965 + Store 964(r2) 967 + 969: 8(fvec2) Load 15(inFV0) + 970: 8(fvec2) Load 16(inFV1) + 971: 6(float) Dot 969 970 + Store 968(r3) 971 + 973: 10 Load 17(inFM0) + 974: 8(fvec2) Load 15(inFV0) + 975: 8(fvec2) MatrixTimesVector 973 974 + Store 972(r4) 975 + 977: 8(fvec2) Load 15(inFV0) + 978: 10 Load 17(inFM0) + 979: 8(fvec2) VectorTimesMatrix 977 978 + Store 976(r5) 979 + 981: 10 Load 17(inFM0) + 982: 6(float) Load 13(inF0) + 983: 10 MatrixTimesScalar 981 982 + Store 980(r6) 983 + 985: 6(float) Load 13(inF0) + 986: 10 Load 17(inFM0) + 987: 10 MatrixTimesScalar 986 985 + Store 984(r7) 987 + 989: 10 Load 17(inFM0) + 990: 10 Load 18(inFM1) + 991: 10 MatrixTimesMatrix 989 990 + Store 988(r8) 991 + Return + FunctionEnd +32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 + 26(inF0): 7(ptr) FunctionParameter + 27(inF1): 7(ptr) FunctionParameter + 28(inFV0): 22(ptr) FunctionParameter + 29(inFV1): 22(ptr) FunctionParameter + 30(inFM0): 24(ptr) FunctionParameter + 31(inFM1): 24(ptr) FunctionParameter + 33: Label + 992(r0): 7(ptr) Variable Function + 996(r1): 22(ptr) Variable Function + 1000(r2): 22(ptr) Variable Function + 1004(r3): 7(ptr) Variable Function + 1008(r4): 22(ptr) Variable Function + 1012(r5): 22(ptr) Variable Function + 1016(r6): 24(ptr) Variable Function + 1020(r7): 24(ptr) Variable Function + 1024(r8): 24(ptr) Variable Function + 993: 6(float) Load 26(inF0) + 994: 6(float) Load 27(inF1) + 995: 6(float) FMul 993 994 + Store 992(r0) 995 + 997: 21(fvec3) Load 28(inFV0) + 998: 6(float) Load 26(inF0) + 999: 21(fvec3) VectorTimesScalar 997 998 + Store 996(r1) 999 + 1001: 6(float) Load 26(inF0) + 1002: 21(fvec3) Load 28(inFV0) + 1003: 21(fvec3) VectorTimesScalar 1002 1001 + Store 1000(r2) 1003 + 1005: 21(fvec3) Load 28(inFV0) + 1006: 21(fvec3) Load 29(inFV1) + 1007: 6(float) Dot 1005 1006 + Store 1004(r3) 1007 + 1009: 23 Load 30(inFM0) + 1010: 21(fvec3) Load 28(inFV0) + 1011: 21(fvec3) MatrixTimesVector 1009 1010 + Store 1008(r4) 1011 + 1013: 21(fvec3) Load 28(inFV0) + 1014: 23 Load 30(inFM0) + 1015: 21(fvec3) VectorTimesMatrix 1013 1014 + Store 1012(r5) 1015 + 1017: 23 Load 30(inFM0) + 1018: 6(float) Load 26(inF0) + 1019: 23 MatrixTimesScalar 1017 1018 + Store 1016(r6) 1019 + 1021: 6(float) Load 26(inF0) + 1022: 23 Load 30(inFM0) + 1023: 23 MatrixTimesScalar 1022 1021 + Store 1020(r7) 1023 + 1025: 23 Load 30(inFM0) + 1026: 23 Load 31(inFM1) + 1027: 23 MatrixTimesMatrix 1025 1026 + Store 1024(r8) 1027 + Return + FunctionEnd +45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 + 39(inF0): 7(ptr) FunctionParameter + 40(inF1): 7(ptr) FunctionParameter + 41(inFV0): 35(ptr) FunctionParameter + 42(inFV1): 35(ptr) FunctionParameter + 43(inFM0): 37(ptr) FunctionParameter + 44(inFM1): 37(ptr) FunctionParameter + 46: Label + 1028(r0): 7(ptr) Variable Function + 1032(r1): 35(ptr) Variable Function + 1036(r2): 35(ptr) Variable Function + 1040(r3): 7(ptr) Variable Function + 1044(r4): 35(ptr) Variable Function + 1048(r5): 35(ptr) Variable Function + 1052(r6): 37(ptr) Variable Function + 1056(r7): 37(ptr) Variable Function + 1060(r8): 37(ptr) Variable Function + 1029: 6(float) Load 39(inF0) + 1030: 6(float) Load 40(inF1) + 1031: 6(float) FMul 1029 1030 + Store 1028(r0) 1031 + 1033: 34(fvec4) Load 41(inFV0) + 1034: 6(float) Load 39(inF0) + 1035: 34(fvec4) VectorTimesScalar 1033 1034 + Store 1032(r1) 1035 + 1037: 6(float) Load 39(inF0) + 1038: 34(fvec4) Load 41(inFV0) + 1039: 34(fvec4) VectorTimesScalar 1038 1037 + Store 1036(r2) 1039 + 1041: 34(fvec4) Load 41(inFV0) + 1042: 34(fvec4) Load 42(inFV1) + 1043: 6(float) Dot 1041 1042 + Store 1040(r3) 1043 + 1045: 36 Load 43(inFM0) + 1046: 34(fvec4) Load 41(inFV0) + 1047: 34(fvec4) MatrixTimesVector 1045 1046 + Store 1044(r4) 1047 + 1049: 34(fvec4) Load 41(inFV0) + 1050: 36 Load 43(inFM0) + 1051: 34(fvec4) VectorTimesMatrix 1049 1050 + Store 1048(r5) 1051 + 1053: 36 Load 43(inFM0) + 1054: 6(float) Load 39(inF0) + 1055: 36 MatrixTimesScalar 1053 1054 + Store 1052(r6) 1055 + 1057: 6(float) Load 39(inF0) + 1058: 36 Load 43(inFM0) + 1059: 36 MatrixTimesScalar 1058 1057 + Store 1056(r7) 1059 + 1061: 36 Load 43(inFM0) + 1062: 36 Load 44(inFM1) + 1063: 36 MatrixTimesMatrix 1061 1062 + Store 1060(r8) 1063 + Return FunctionEnd diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index 563ce225..a8a49a0f 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -9,6 +9,7 @@ float PixelShaderFunction(float inF0, float inF1, float inF2) atan2(inF0, inF1); ceil(inF0); clamp(inF0, inF1, inF2); + clip(inF0); cos(inF0); cosh(inF0); countbits(7); @@ -36,17 +37,20 @@ float PixelShaderFunction(float inF0, float inF1, float inF2) isnan(inF0); ldexp(inF0, inF1); log(inF0); + log10(inF0); log2(inF0); max(inF0, inF1); min(inF0, inF1); - // TODO: mul(inF0, inF1); pow(inF0, inF1); radians(inF0); + rcp(inF0); reversebits(2); round(inF0); rsqrt(inF0); + saturate(inF0); sign(inF0); sin(inF0); + sincos(inF0, inF1, inF2); sinh(inF0); smoothstep(inF0, inF1, inF2); sqrt(inF0); @@ -76,6 +80,7 @@ float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2) atan2(inF0, inF1); ceil(inF0); clamp(inF0, inF1, inF2); + clip(inF0); cos(inF0); cosh(inF0); countbits(int2(7,3)); @@ -107,20 +112,23 @@ float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2) ldexp(inF0, inF1); length(inF0); log(inF0); + log10(inF0); log2(inF0); max(inF0, inF1); min(inF0, inF1); - // TODO: mul(inF0, inF1); normalize(inF0); pow(inF0, inF1); radians(inF0); + rcp(inF0); reflect(inF0, inF1); refract(inF0, inF1, 2.0); reversebits(int2(1,2)); round(inF0); rsqrt(inF0); + saturate(inF0); sign(inF0); sin(inF0); + sincos(inF0, inF1, inF2); sinh(inF0); smoothstep(inF0, inF1, inF2); sqrt(inF0); @@ -145,6 +153,7 @@ float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2) atan2(inF0, inF1); ceil(inF0); clamp(inF0, inF1, inF2); + clip(inF0); cos(inF0); cosh(inF0); countbits(int3(7,3,5)); @@ -177,20 +186,23 @@ float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2) ldexp(inF0, inF1); length(inF0); log(inF0); + log10(inF0); log2(inF0); max(inF0, inF1); min(inF0, inF1); - // TODO: mul(inF0, inF1); normalize(inF0); pow(inF0, inF1); radians(inF0); + rcp(inF0); reflect(inF0, inF1); refract(inF0, inF1, 2.0); reversebits(int3(1,2,3)); round(inF0); rsqrt(inF0); + saturate(inF0); sign(inF0); sin(inF0); + sincos(inF0, inF1, inF2); sinh(inF0); smoothstep(inF0, inF1, inF2); sqrt(inF0); @@ -215,6 +227,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2) atan2(inF0, inF1); ceil(inF0); clamp(inF0, inF1, inF2); + clip(inF0); cos(inF0); cosh(inF0); countbits(int4(7,3,5,2)); @@ -227,6 +240,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2) degrees(inF0); distance(inF0, inF1); dot(inF0, inF1); + dst(inF0, inF1); // EvaluateAttributeAtCentroid(inF0); // EvaluateAttributeAtSample(inF0, 0); // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); @@ -246,20 +260,23 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2) ldexp(inF0, inF1); length(inF0); log(inF0); + log10(inF0); log2(inF0); max(inF0, inF1); min(inF0, inF1); - // TODO: mul(inF0, inF1); normalize(inF0); pow(inF0, inF1); radians(inF0); + rcp(inF0); reflect(inF0, inF1); refract(inF0, inF1, 2.0); reversebits(int4(1,2,3,4)); round(inF0); rsqrt(inF0); + saturate(inF0); sign(inF0); sin(inF0); + sincos(inF0, inF1, inF2); sinh(inF0); smoothstep(inF0, inF1, inF2); sqrt(inF0); @@ -283,6 +300,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2) atan(inF0); \ atan2(inF0, inF1); \ ceil(inF0); \ + clip(inF0); \ clamp(inF0, inF1, inF2); \ cos(inF0); \ cosh(inF0); \ @@ -305,15 +323,18 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2) fwidth(inF0); \ ldexp(inF0, inF1); \ log(inF0); \ - log2(inF0); \ + log10(inF0); \ + log2(inF0); \ max(inF0, inF1); \ min(inF0, inF1); \ pow(inF0, inF1); \ radians(inF0); \ round(inF0); \ rsqrt(inF0); \ + saturate(inF0); \ sign(inF0); \ sin(inF0); \ + sincos(inF0, inF1, inF2); \ sinh(inF0); \ smoothstep(inF0, inF1, inF2); \ sqrt(inF0); \ @@ -351,3 +372,36 @@ float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) // TODO: ... add when float1 prototypes are generated return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); } + +#define TESTGENMUL(ST, VT, MT) \ + ST r0 = mul(inF0, inF1); \ + VT r1 = mul(inFV0, inF0); \ + VT r2 = mul(inF0, inFV0); \ + ST r3 = mul(inFV0, inFV1); \ + VT r4 = mul(inFM0, inFV0); \ + VT r5 = mul(inFV0, inFM0); \ + MT r6 = mul(inFM0, inF0); \ + MT r7 = mul(inF0, inFM0); \ + MT r8 = mul(inFM0, inFM1); + + +void TestGenMul(float inF0, float inF1, + float2 inFV0, float2 inFV1, + float2x2 inFM0, float2x2 inFM1) +{ + TESTGENMUL(float, float2, float2x2); +} + +void TestGenMul(float inF0, float inF1, + float3 inFV0, float3 inFV1, + float3x3 inFM0, float3x3 inFM1) +{ + TESTGENMUL(float, float3, float3x3); +} + +void TestGenMul(float inF0, float inF1, + float4 inFV0, float4 inFV1, + float4x4 inFM0, float4x4 inFM1) +{ + TESTGENMUL(float, float4, float4x4); +} diff --git a/Test/hlsl.intrinsics.vert b/Test/hlsl.intrinsics.vert index efafb4ac..cab79a83 100644 --- a/Test/hlsl.intrinsics.vert +++ b/Test/hlsl.intrinsics.vert @@ -30,6 +30,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2) isnan(inF0); ldexp(inF0, inF1); log(inF0); + log10(inF0); log2(inF0); max(inF0, inF1); min(inF0, inF1); @@ -39,8 +40,10 @@ float VertexShaderFunction(float inF0, float inF1, float inF2) reversebits(2); round(inF0); rsqrt(inF0); + saturate(inF0); sign(inF0); sin(inF0); + sincos(inF0, inF1, inF2); sinh(inF0); smoothstep(inF0, inF1, inF2); sqrt(inF0); @@ -95,6 +98,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2) ldexp(inF0, inF1); length(inF0); log(inF0); + log10(inF0); log2(inF0); max(inF0, inF1); min(inF0, inF1); @@ -107,8 +111,10 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2) reversebits(int2(1,2)); round(inF0); rsqrt(inF0); + saturate(inF0); sign(inF0); sin(inF0); + sincos(inF0, inF1, inF2); sinh(inF0); smoothstep(inF0, inF1, inF2); sqrt(inF0); @@ -159,6 +165,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2) ldexp(inF0, inF1); length(inF0); log(inF0); + log10(inF0); log2(inF0); max(inF0, inF1); min(inF0, inF1); @@ -171,8 +178,10 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2) reversebits(int3(1,2,3)); round(inF0); rsqrt(inF0); + saturate(inF0); sign(inF0); sin(inF0); + sincos(inF0, inF1, inF2); sinh(inF0); smoothstep(inF0, inF1, inF2); sqrt(inF0); @@ -203,6 +212,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) degrees(inF0); distance(inF0, inF1); dot(inF0, inF1); + dst(inF0, inF1); // EvaluateAttributeAtCentroid(inF0); // EvaluateAttributeAtSample(inF0, 0); // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); @@ -222,6 +232,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) ldexp(inF0, inF1); length(inF0); log(inF0); + log10(inF0); log2(inF0); max(inF0, inF1); min(inF0, inF1); @@ -234,8 +245,10 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) reversebits(int4(1,2,3,4)); round(inF0); rsqrt(inF0); + saturate(inF0); sign(inF0); sin(inF0); + sincos(inF0, inF1, inF2); sinh(inF0); smoothstep(inF0, inF1, inF2); sqrt(inF0); @@ -275,6 +288,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) fwidth(inF0); \ ldexp(inF0, inF1); \ log(inF0); \ + log10(inF0); \ log2(inF0); \ max(inF0, inF1); \ min(inF0, inF1); \ @@ -282,8 +296,10 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) radians(inF0); \ round(inF0); \ rsqrt(inF0); \ + saturate(inF0); \ sign(inF0); \ sin(inF0); \ + sincos(inF0, inF1, inF2); \ sinh(inF0); \ smoothstep(inF0, inF1, inF2); \ sqrt(inF0); \ @@ -321,3 +337,36 @@ float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) // TODO: ... add when float1 prototypes are generated return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); } + +#define TESTGENMUL(ST, VT, MT) \ + ST r0 = mul(inF0, inF1); \ + VT r1 = mul(inFV0, inF0); \ + VT r2 = mul(inF0, inFV0); \ + ST r3 = mul(inFV0, inFV1); \ + VT r4 = mul(inFM0, inFV0); \ + VT r5 = mul(inFV0, inFM0); \ + MT r6 = mul(inFM0, inF0); \ + MT r7 = mul(inF0, inFM0); \ + MT r8 = mul(inFM0, inFM1); + + +void TestGenMul(float inF0, float inF1, + float2 inFV0, float2 inFV1, + float2x2 inFM0, float2x2 inFM1) +{ + TESTGENMUL(float, float2, float2x2); +} + +void TestGenMul(float inF0, float inF1, + float3 inFV0, float3 inFV1, + float3x3 inFM0, float3x3 inFM1) +{ + TESTGENMUL(float, float3, float3x3); +} + +void TestGenMul(float inF0, float inF1, + float4 inFV0, float4 inFV1, + float4x4 inFM0, float4x4 inFM1) +{ + TESTGENMUL(float, float4, float4x4); +} diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index aa368340..e37c77cd 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -1,6 +1,6 @@ // //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2015 LunarG, Inc. +//Copyright (C) 2012-2016 LunarG, Inc. //Copyright (C) 2015-2016 Google, Inc. // //All rights reserved. @@ -1043,8 +1043,9 @@ public: POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) // for "empty" type (no args) or simple scalar/vector/matrix - explicit TType(TBasicType t = EbtVoid, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0) : - basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(false), + explicit TType(TBasicType t = EbtVoid, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0, + bool isVector = false) : + basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1), arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr) { sampler.clear(); @@ -1052,8 +1053,9 @@ public: qualifier.storage = q; } // for explicit precision qualifier - TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0) : - basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(false), + TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0, + bool isVector = false) : + basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1), arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr) { sampler.clear(); diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 3b819de0..1759c867 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -1,6 +1,6 @@ // //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +//Copyright (C) 2012-2016 LunarG, Inc. // //All rights reserved. // @@ -493,6 +493,19 @@ enum TOperator { EOpBitCount, EOpFindLSB, EOpFindMSB, + + // + // HLSL operations + // + + EOpClip, + EOpIsFinite, + EOpLog10, + EOpRcp, + EOpSaturate, + EOpSinCos, + EOpGenMul, // mul(x,y) on any of mat/vec/scalars + EOpDst, }; class TIntermTraverser; diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index c37b3118..a5a6f2ce 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -1,6 +1,6 @@ // //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2012-2013 LunarG, Inc. +//Copyright (C) 2012-2016 LunarG, Inc. // //All rights reserved. // @@ -359,6 +359,12 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpAllInvocations: out.debug << "allInvocations"; break; case EOpAllInvocationsEqual: out.debug << "allInvocationsEqual"; break; + case EOpClip: out.debug << "clip"; break; + case EOpIsFinite: out.debug << "isfinite"; break; + case EOpLog10: out.debug << "log10"; break; + case EOpRcp: out.debug << "rcp"; break; + case EOpSaturate: out.debug << "saturate"; break; + default: out.debug.message(EPrefixError, "Bad unary op"); } @@ -534,6 +540,9 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpInterpolateAtSample: out.debug << "interpolateAtSample"; break; case EOpInterpolateAtOffset: out.debug << "interpolateAtOffset"; break; + case EOpSinCos: out.debug << "sincos"; break; + case EOpGenMul: out.debug << "mul"; break; + default: out.debug.message(EPrefixError, "Bad aggregation op"); } diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index e5c15648..2bb0e380 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1,5 +1,6 @@ // //Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 LunarG, Inc. // //All rights reserved. // @@ -765,6 +766,184 @@ void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped* arguments = newArg; } +// Optionally decompose intrinsics to AST opcodes. +// +void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + // HLSL intrinsics can be pass through to native AST opcodes, or decomposed here to existing AST + // opcodes for compatibility with existing software stacks. + static const bool decomposeHlslIntrinsics = true; + + if (!decomposeHlslIntrinsics || !node || !node->getAsOperator()) + return; + + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + TIntermUnary* fnUnary = node->getAsUnaryNode(); + const TOperator op = node->getAsOperator()->getOp(); + + switch (op) { + case EOpGenMul: + { + // mul(a,b) -> MatrixTimesMatrix, MatrixTimesVector, MatrixTimesScalar, VectorTimesScalar, Dot, Mul + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + + if (arg0->isVector() && arg1->isVector()) { // vec * vec + node->getAsAggregate()->setOperator(EOpDot); + } else { + node = handleBinaryMath(loc, "mul", EOpMul, arg0, arg1); + } + + break; + } + + case EOpRcp: + { + // rcp(a) -> 1 / a + TIntermTyped* arg0 = fnUnary->getOperand(); + TBasicType type0 = arg0->getBasicType(); + TIntermTyped* one = intermediate.addConstantUnion(1, type0, loc, true); + node = handleBinaryMath(loc, "rcp", EOpDiv, one, arg0); + + break; + } + + case EOpSaturate: + { + // saturate(a) -> clamp(a,0,1) + TIntermTyped* arg0 = fnUnary->getOperand(); + TBasicType type0 = arg0->getBasicType(); + TIntermAggregate* clamp = new TIntermAggregate(EOpClamp); + + clamp->getSequence().push_back(arg0); + clamp->getSequence().push_back(intermediate.addConstantUnion(0, type0, loc, true)); + clamp->getSequence().push_back(intermediate.addConstantUnion(1, type0, loc, true)); + clamp->setLoc(loc); + clamp->setType(node->getType()); + node = clamp; + + break; + } + + case EOpSinCos: + { + // sincos(a,b,c) -> b = sin(a), c = cos(a) + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); + + TIntermTyped* sinStatement = handleUnaryMath(loc, "sin", EOpSin, arg0); + TIntermTyped* cosStatement = handleUnaryMath(loc, "cos", EOpCos, arg0); + TIntermTyped* sinAssign = intermediate.addAssign(EOpAssign, arg1, sinStatement, loc); + TIntermTyped* cosAssign = intermediate.addAssign(EOpAssign, arg2, cosStatement, loc); + + TIntermAggregate* compoundStatement = intermediate.makeAggregate(sinAssign, loc); + compoundStatement = intermediate.growAggregate(compoundStatement, cosAssign); + compoundStatement->setOperator(EOpSequence); + compoundStatement->setLoc(loc); + + node = compoundStatement; + + break; + } + + case EOpClip: + { + // clip(a) -> if (any(a<0)) discard; + TIntermTyped* arg0 = fnUnary->getOperand(); + TBasicType type0 = arg0->getBasicType(); + TIntermTyped* compareNode = nullptr; + + // For non-scalars: per experiment with FXC compiler, discard if any component < 0. + if (!arg0->isScalar()) { + // component-wise compare: a < 0 + TIntermAggregate* less = new TIntermAggregate(EOpLessThan); + less->getSequence().push_back(arg0); + less->setLoc(loc); + + // make vec or mat of bool matching dimensions of input + less->setType(TType(EbtBool, EvqTemporary, + arg0->getType().getVectorSize(), + arg0->getType().getMatrixCols(), + arg0->getType().getMatrixRows(), + arg0->getType().isVector())); + + // calculate # of components for comparison const + const int constComponentCount = + std::max(arg0->getType().getVectorSize(), 1) * + std::max(arg0->getType().getMatrixCols(), 1) * + std::max(arg0->getType().getMatrixRows(), 1); + + TConstUnion zero; + zero.setDConst(0.0); + TConstUnionArray zeros(constComponentCount, zero); + + less->getSequence().push_back(intermediate.addConstantUnion(zeros, arg0->getType(), loc, true)); + + compareNode = intermediate.addBuiltInFunctionCall(loc, EOpAny, true, less, TType(EbtBool)); + } else { + TIntermTyped* zero = intermediate.addConstantUnion(0, type0, loc, true); + compareNode = handleBinaryMath(loc, "clip", EOpLessThan, arg0, zero); + } + + TIntermBranch* killNode = intermediate.addBranch(EOpKill, loc); + + node = new TIntermSelection(compareNode, killNode, nullptr); + node->setLoc(loc); + + break; + } + + case EOpLog10: + { + // log10(a) -> log2(a) * 0.301029995663981 (== 1/log2(10)) + TIntermTyped* arg0 = fnUnary->getOperand(); + TIntermTyped* log2 = handleUnaryMath(loc, "log2", EOpLog2, arg0); + TIntermTyped* base = intermediate.addConstantUnion(0.301029995663981f, EbtFloat, loc, true); + + node = handleBinaryMath(loc, "mul", EOpMul, log2, base); + + break; + } + + case EOpDst: + { + // dest.x = 1; + // dest.y = src0.y * src1.y; + // dest.z = src0.z; + // dest.w = src1.w; + + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + TBasicType type0 = arg0->getBasicType(); + + TIntermTyped* x = intermediate.addConstantUnion(0, loc, true); + TIntermTyped* y = intermediate.addConstantUnion(1, loc, true); + TIntermTyped* z = intermediate.addConstantUnion(2, loc, true); + TIntermTyped* w = intermediate.addConstantUnion(3, loc, true); + + TIntermTyped* src0y = intermediate.addIndex(EOpIndexDirect, arg0, y, loc); + TIntermTyped* src1y = intermediate.addIndex(EOpIndexDirect, arg1, y, loc); + TIntermTyped* src0z = intermediate.addIndex(EOpIndexDirect, arg0, z, loc); + TIntermTyped* src1w = intermediate.addIndex(EOpIndexDirect, arg1, w, loc); + + TIntermAggregate* dst = new TIntermAggregate(EOpConstructVec4); + + dst->getSequence().push_back(intermediate.addConstantUnion(1.0, EbtFloat, loc, true)); + dst->getSequence().push_back(handleBinaryMath(loc, "mul", EOpMul, src0y, src1y)); + dst->getSequence().push_back(src0z); + dst->getSequence().push_back(src1w); + dst->setLoc(loc); + node = dst; + + break; + } + + default: + break; // most pass through unchanged + } +} + // // Handle seeing function call syntax in the grammar, which could be any of // - .length() method @@ -867,6 +1046,8 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct } result = addOutputArgumentConversions(*fnCandidate, *result->getAsAggregate()); } + + decomposeIntrinsic(loc, result, arguments); } } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index e1fbbf85..fc708cb0 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -1,5 +1,6 @@ // //Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 LunarG, Inc. // //All rights reserved. // @@ -85,6 +86,7 @@ public: TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); + void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 18f7ca4a..b676a8ef 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -279,7 +279,7 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, { "distance", "S", "F", "V,", "F,", EShLangAll }, { "dot", "S", nullptr, "V,", "FI,", EShLangAll }, - { "dst", nullptr, nullptr, "V,", "F,", EShLangAll }, + { "dst", nullptr, nullptr, "V4,V4", "F,", EShLangAll }, // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask }, @@ -324,6 +324,7 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll }, { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, + // TODO: fix matrix return size for non-square mats used with mul opcode { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, { "mul", "M", nullptr, "S,M", "FI,", EShLangAll }, @@ -508,7 +509,7 @@ void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int v void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable) { - // symbolTable.relateToOperator("abort"); + // symbolTable.relateToOperator("abort", EOpAbort); symbolTable.relateToOperator("abs", EOpAbs); symbolTable.relateToOperator("acos", EOpAcos); symbolTable.relateToOperator("all", EOpAll); @@ -525,12 +526,12 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int symbolTable.relateToOperator("ceil", EOpCeil); // symbolTable.relateToOperator("CheckAccessFullyMapped"); symbolTable.relateToOperator("clamp", EOpClamp); - // symbolTable.relateToOperator("clip"); + symbolTable.relateToOperator("clip", EOpClip); symbolTable.relateToOperator("cos", EOpCos); symbolTable.relateToOperator("cosh", EOpCosh); symbolTable.relateToOperator("countbits", EOpBitCount); symbolTable.relateToOperator("cross", EOpCross); - // symbolTable.relateToOperator("D3DCOLORtoUBYTE4"); + // symbolTable.relateToOperator("D3DCOLORtoUBYTE4", EOpD3DCOLORtoUBYTE4); symbolTable.relateToOperator("ddx", EOpDPdx); symbolTable.relateToOperator("ddx_coarse", EOpDPdxCoarse); symbolTable.relateToOperator("ddx_fine", EOpDPdxFine); @@ -543,7 +544,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int // symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync"); symbolTable.relateToOperator("distance", EOpDistance); symbolTable.relateToOperator("dot", EOpDot); - // symbolTable.relateToOperator("dst"); + symbolTable.relateToOperator("dst", EOpDst); // symbolTable.relateToOperator("errorf"); symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid); symbolTable.relateToOperator("EvaluateAttributeAtSample", EOpInterpolateAtSample); @@ -557,7 +558,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int symbolTable.relateToOperator("firstbitlow", EOpFindLSB); symbolTable.relateToOperator("floor", EOpFloor); symbolTable.relateToOperator("fma", EOpFma); - // symbolTable.relateToOperator("fmod"); + symbolTable.relateToOperator("fmod", EOpMod); symbolTable.relateToOperator("frac", EOpFract); symbolTable.relateToOperator("frexp", EOpFrexp); symbolTable.relateToOperator("fwidth", EOpFwidth); @@ -574,21 +575,21 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int // symbolTable.relateToOperator("InterlockedMin"); // symbolTable.relateToOperator("InterlockedOr"); // symbolTable.relateToOperator("InterlockedXor"); - // symbolTable.relateToOperator("isfinite"); + symbolTable.relateToOperator("isfinite", EOpIsFinite); symbolTable.relateToOperator("isinf", EOpIsInf); symbolTable.relateToOperator("isnan", EOpIsNan); symbolTable.relateToOperator("ldexp", EOpLdexp); symbolTable.relateToOperator("length", EOpLength); // symbolTable.relateToOperator("lit"); symbolTable.relateToOperator("log", EOpLog); - // symbolTable.relateToOperator("log10"); + symbolTable.relateToOperator("log10", EOpLog10); symbolTable.relateToOperator("log2", EOpLog2); // symbolTable.relateToOperator("mad"); symbolTable.relateToOperator("max", EOpMax); symbolTable.relateToOperator("min", EOpMin); symbolTable.relateToOperator("modf", EOpModf); - // symbolTable.relateToOperator("msad4"); - // symbolTable.relateToOperator("mul"); + // symbolTable.relateToOperator("msad4", EOpMsad4); + symbolTable.relateToOperator("mul", EOpGenMul); // symbolTable.relateToOperator("noise", EOpNoise); // TODO: check return type symbolTable.relateToOperator("normalize", EOpNormalize); symbolTable.relateToOperator("pow", EOpPow); @@ -604,16 +605,16 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int // symbolTable.relateToOperator("ProcessTriTessFactorsMax"); // symbolTable.relateToOperator("ProcessTriTessFactorsMin"); symbolTable.relateToOperator("radians", EOpRadians); - // symbolTable.relateToOperator("rcp"); + symbolTable.relateToOperator("rcp", EOpRcp); symbolTable.relateToOperator("reflect", EOpReflect); symbolTable.relateToOperator("refract", EOpRefract); symbolTable.relateToOperator("reversebits", EOpBitFieldReverse); symbolTable.relateToOperator("round", EOpRoundEven); symbolTable.relateToOperator("rsqrt", EOpInverseSqrt); - // symbolTable.relateToOperator("saturate"); + symbolTable.relateToOperator("saturate", EOpSaturate); symbolTable.relateToOperator("sign", EOpSign); symbolTable.relateToOperator("sin", EOpSin); - // symbolTable.relateToOperator("sincos"); + symbolTable.relateToOperator("sincos", EOpSinCos); symbolTable.relateToOperator("sinh", EOpSinh); symbolTable.relateToOperator("smoothstep", EOpSmoothStep); symbolTable.relateToOperator("sqrt", EOpSqrt); From e6e7494e2af0096a046396f69db6f5792be80824 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 11 Jun 2016 16:43:14 -0600 Subject: [PATCH 32/48] HLSL: Implement basic "struct" grammar. --- Test/baseResults/hlsl.struct.frag.out | 81 +++++++++++++++ Test/hlsl.struct.frag | 26 +++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 137 +++++++++++++++++++++++++- hlsl/hlslGrammar.h | 2 + hlsl/hlslParseHelper.cpp | 11 ++- hlsl/hlslParseHelper.h | 2 +- hlsl/hlslScanContext.h | 3 +- 8 files changed, 257 insertions(+), 6 deletions(-) create mode 100755 Test/baseResults/hlsl.struct.frag.out create mode 100644 Test/hlsl.struct.frag diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out new file mode 100755 index 00000000..6e344891 --- /dev/null +++ b/Test/baseResults/hlsl.struct.frag.out @@ -0,0 +1,81 @@ +hlsl.struct.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:26 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:20 Function Parameters: +0:20 'input' (temp 4-component vector of float) +0:? Sequence +0:25 Compare Equal (temp bool) +0:25 's3' (temp structure{temp 3-component vector of bool b3}) +0:25 's3' (temp structure{temp 3-component vector of bool b3}) +0:? Linker Objects +0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) +0:? 's2' (temp structure{temp 4-component vector of float i}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:26 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:20 Function Parameters: +0:20 'input' (temp 4-component vector of float) +0:? Sequence +0:25 Compare Equal (temp bool) +0:25 's3' (temp structure{temp 3-component vector of bool b3}) +0:25 's3' (temp structure{temp 3-component vector of bool b3}) +0:? Linker Objects +0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) +0:? 's2' (temp structure{temp 4-component vector of float i}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 25 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 8 "FS" + MemberName 8(FS) 0 "b3" + Name 10 "s3" + Name 19 "myS" + MemberName 19(myS) 0 "b" + MemberName 19(myS) 1 "c" + MemberName 19(myS) 2 "a" + MemberName 19(myS) 3 "d" + Name 21 "s1" + Name 22 "" + MemberName 22 0 "i" + Name 24 "s2" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeVector 6(bool) 3 + 8(FS): TypeStruct 7(bvec3) + 9: TypePointer Function 8(FS) + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) + 20: TypePointer Function 19(myS) + 22: TypeStruct 18(fvec4) + 23: TypePointer Function 22(struct) +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 10(s3): 9(ptr) Variable Function + 21(s1): 20(ptr) Variable Function + 24(s2): 23(ptr) Variable Function + 11: 8(FS) Load 10(s3) + 12: 8(FS) Load 10(s3) + 13: 7(bvec3) CompositeExtract 11 0 + 14: 7(bvec3) CompositeExtract 12 0 + 15: 7(bvec3) LogicalEqual 13 14 + 16: 6(bool) All 15 + Return + FunctionEnd diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag new file mode 100644 index 00000000..4b5b2419 --- /dev/null +++ b/Test/hlsl.struct.frag @@ -0,0 +1,26 @@ +struct { +}; + +struct { + bool b; +}; + +struct myS { + bool b, c; + float4 a, d; +}; + +myS s1; + +struct { + float4 i; +} s2; + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + struct FS { + bool3 b3; + } s3; + + s3 == s3; +} \ No newline at end of file diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index fa3442cd..22425014 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -90,6 +90,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.precedence2.frag", "PixelShaderFunction"}, {"hlsl.scope.frag", "PixelShaderFunction"}, {"hlsl.sin.frag", "PixelShaderFunction"}, + {"hlsl.struct.frag", "PixelShaderFunction"}, {"hlsl.whileLoop.frag", "PixelShaderFunction"}, {"hlsl.void.frag", "PixelShaderFunction"}, }), diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 9ea14dae..1bd44165 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -210,6 +210,22 @@ void HlslGrammar::acceptQualifier(TQualifier& qualifier) bool HlslGrammar::acceptType(TType& type) { switch (peek()) { + case EHTokStruct: + return acceptStruct(type); + break; + + case EHTokIdentifier: + // An identifier could be for a user-defined type. + // Note we cache the symbol table lookup, to save for a later rule + // when this is not a type. + token.symbol = parseContext.symbolTable.find(*token.string); + if (token.symbol && token.symbol->getAsVariable() && token.symbol->getAsVariable()->isUserType()) { + type.shallowCopy(token.symbol->getType()); + advanceToken(); + return true; + } else + return false; + case EHTokVoid: new(&type) TType(EbtVoid); break; @@ -554,6 +570,125 @@ bool HlslGrammar::acceptType(TType& type) return true; } +// struct +// : STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE +// | STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE +// +bool HlslGrammar::acceptStruct(TType& type) +{ + // STRUCT + if (! acceptTokenClass(EHTokStruct)) + return false; + + // IDENTIFIER + TString structName = ""; + if (peekTokenClass(EHTokIdentifier)) { + structName = *token.string; + advanceToken(); + } + + // LEFT_BRACE + if (! acceptTokenClass(EHTokLeftBrace)) { + expected("{"); + return false; + } + + // struct_declaration_list + TTypeList* typeList; + if (! acceptStructDeclarationList(typeList)) { + expected("struct member declarations"); + return false; + } + + // RIGHT_BRACE + if (! acceptTokenClass(EHTokRightBrace)) { + expected("}"); + return false; + } + + // create the user-defined type + new(&type) TType(typeList, structName); + + // If it was named, which means it can be reused later, add + // it to the symbol table. + if (structName.size() > 0) { + TVariable* userTypeDef = new TVariable(&structName, type, true); + if (! parseContext.symbolTable.insert(*userTypeDef)) + parseContext.error(token.loc, "redefinition", structName.c_str(), "struct"); + } + + return true; +} + +// struct_declaration_list +// : struct_declaration SEMI_COLON struct_declaration SEMI_COLON ... +// +// struct_declaration +// : fully_specified_type struct_declarator COMMA struct_declarator ... +// +// struct_declarator +// : IDENTIFIER +// | IDENTIFIER array_specifier +// +bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList) +{ + typeList = new TTypeList(); + + do { + // success on seeing the RIGHT_BRACE coming up + if (peekTokenClass(EHTokRightBrace)) + return true; + + // struct_declaration + + // fully_specified_type + TType memberType; + if (! acceptFullySpecifiedType(memberType)) { + expected("member type"); + return false; + } + + // struct_declarator COMMA struct_declarator ... + do { + // peek IDENTIFIER + if (! peekTokenClass(EHTokIdentifier)) { + expected("member name"); + return false; + } + + // add it to the list of members + TTypeLoc member = { new TType(EbtVoid), token.loc }; + member.type->shallowCopy(memberType); + member.type->setFieldName(*token.string); + typeList->push_back(member); + + // accept IDENTIFIER + advanceToken(); + + // array_specifier + // TODO + + // success on seeing the SEMICOLON coming up + if (peekTokenClass(EHTokSemicolon)) + break; + + // COMMA + if (! acceptTokenClass(EHTokComma)) { + expected(","); + return false; + } + + } while (true); + + // SEMI_COLON + if (! acceptTokenClass(EHTokSemicolon)) { + expected(";"); + return false; + } + + } while (true); +} + // function_parameters // : LEFT_PAREN parameter_declaration COMMA parameter_declaration ... RIGHT_PAREN // | LEFT_PAREN VOID RIGHT_PAREN @@ -879,7 +1014,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) } else if (acceptIdentifier(idToken)) { // identifier or function_call name if (! peekTokenClass(EHTokLeftParen)) { - node = parseContext.handleVariable(idToken.loc, token.string); + node = parseContext.handleVariable(idToken.loc, idToken.symbol, token.string); } else if (acceptFunctionCall(idToken, node)) { // function_call (nothing else to do yet) } else { diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index ba92c922..6cbcf2f0 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -61,6 +61,8 @@ namespace glslang { bool acceptFullySpecifiedType(TType&); void acceptQualifier(TQualifier&); bool acceptType(TType&); + bool acceptStruct(TType&); + bool acceptStructDeclarationList(TTypeList*&); bool acceptFunctionParameters(TFunction&); bool acceptParameterDeclaration(TFunction&); bool acceptFunctionDefinition(TFunction&, TIntermNode*&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index e5c15648..1d6ffd85 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -282,10 +282,14 @@ void C_DECL HlslParseContext::ppWarn(const TSourceLoc& loc, const char* szReason // // Handle seeing a variable identifier in the grammar. // -TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, const TString* string) +TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symbol, const TString* string) { - TSymbol* symbol = symbolTable.find(*string); - TIntermTyped* node = nullptr; + if (symbol == nullptr) + symbol = symbolTable.find(*string); + if (symbol && symbol->getAsVariable() && symbol->getAsVariable()->isUserType()) { + error(loc, "expected symbol, not user-defined type", string->c_str(), ""); + return nullptr; + } // Error check for requiring specific extensions present. if (symbol && symbol->getNumExtensions()) @@ -306,6 +310,7 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, const TStr const TVariable* variable; const TAnonMember* anon = symbol ? symbol->getAsAnonMember() : nullptr; + TIntermTyped* node = nullptr; if (anon) { // It was a member of an anonymous container. diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index e1fbbf85..7f1e1acb 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -65,7 +65,7 @@ public: bool builtInName(const TString&); void handlePragma(const TSourceLoc&, const TVector&); - TIntermTyped* handleVariable(const TSourceLoc&, const TString* string); + TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol, const TString* string); TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); void checkIndex(const TSourceLoc&, const TType&, int& index); diff --git a/hlsl/hlslScanContext.h b/hlsl/hlslScanContext.h index 75c01a9d..144a8534 100755 --- a/hlsl/hlslScanContext.h +++ b/hlsl/hlslScanContext.h @@ -54,7 +54,7 @@ class TPpToken; // Everything needed to fully describe a token. // struct HlslToken { - HlslToken() : string(nullptr) { loc.init(); } + HlslToken() : string(nullptr), symbol(nullptr) { loc.init(); } TSourceLoc loc; // location of token in the source EHlslTokenClass tokenClass; // what kind of token it is union { // what data the token holds @@ -64,6 +64,7 @@ struct HlslToken { bool b; double d; }; + glslang::TSymbol* symbol; // if a symbol-table lookup was done already, this is the result }; // From 630dd7da432285e240f2f892413489f763ae1c8c Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 12 Jun 2016 23:52:12 -0600 Subject: [PATCH 33/48] HLSL: Flesh out misc. declaration grammar: semantics/registers/annotations/precise/etc. Details within these bear even more fleshing out, but would like to have that driven by actual need. --- Test/baseResults/hlsl.float4.frag.out | 50 +++++--- Test/baseResults/hlsl.struct.frag.out | 84 ++++++++----- Test/hlsl.float4.frag | 5 + Test/hlsl.struct.frag | 13 ++ hlsl/hlslGrammar.cpp | 163 ++++++++++++++++++++------ hlsl/hlslGrammar.h | 3 +- hlsl/hlslParseHelper.cpp | 32 +++++ hlsl/hlslParseHelper.h | 1 + hlsl/hlslScanContext.cpp | 1 + hlsl/hlslTokens.h | 1 + 10 files changed, 273 insertions(+), 80 deletions(-) diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index ba757c98..2ea803f1 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -9,16 +9,20 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) -0:4 Function Parameters: -0:4 'input' (temp 4-component vector of float) +0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) +0:9 Function Parameters: +0:9 'input' (temp 4-component vector of float) 0:? Sequence -0:5 Branch: Return with expression -0:5 component-wise multiply (temp 4-component vector of float) -0:5 'input' (temp 4-component vector of float) -0:5 'AmbientColor' (temp 4-component vector of float) +0:10 Branch: Return with expression +0:10 component-wise multiply (temp 4-component vector of float) +0:10 'input' (temp 4-component vector of float) +0:10 'AmbientColor' (temp 4-component vector of float) 0:? Linker Objects 0:? 'AmbientColor' (temp 4-component vector of float) +0:? 'ff1' (temp bool Face) +0:? 'ff2' (temp 4-component vector of float) +0:? 'ff3' (temp 4-component vector of float) +0:? 'ff4' (temp 4-component vector of float FragCoord) Linked fragment stage: @@ -34,20 +38,24 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) -0:4 Function Parameters: -0:4 'input' (temp 4-component vector of float) +0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) +0:9 Function Parameters: +0:9 'input' (temp 4-component vector of float) 0:? Sequence -0:5 Branch: Return with expression -0:5 component-wise multiply (temp 4-component vector of float) -0:5 'input' (temp 4-component vector of float) -0:5 'AmbientColor' (temp 4-component vector of float) +0:10 Branch: Return with expression +0:10 component-wise multiply (temp 4-component vector of float) +0:10 'input' (temp 4-component vector of float) +0:10 'AmbientColor' (temp 4-component vector of float) 0:? Linker Objects 0:? 'AmbientColor' (temp 4-component vector of float) +0:? 'ff1' (temp bool Face) +0:? 'ff2' (temp 4-component vector of float) +0:? 'ff3' (temp 4-component vector of float) +0:? 'ff4' (temp 4-component vector of float FragCoord) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 19 +// Id's are bound by 25 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -59,12 +67,20 @@ gl_FragCoord origin is upper left Name 11 "ShaderFunction(vf4;" Name 10 "input" Name 14 "AmbientColor" + Name 21 "ff1" + Name 22 "ff2" + Name 23 "ff3" + Name 24 "ff4" + Decorate 21(ff1) BuiltIn FrontFacing + Decorate 24(ff4) BuiltIn FragCoord 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) + 19: TypeBool + 20: TypePointer Function 19(bool) 4(PixelShaderFunction): 2 Function None 3 5: Label FunctionEnd @@ -72,6 +88,10 @@ gl_FragCoord origin is upper left 10(input): 8(ptr) FunctionParameter 12: Label 14(AmbientColor): 8(ptr) Variable Function + 21(ff1): 20(ptr) Variable Function + 22(ff2): 8(ptr) Variable Function + 23(ff3): 8(ptr) Variable Function + 24(ff4): 8(ptr) Variable Function 13: 7(fvec4) Load 10(input) 15: 7(fvec4) Load 14(AmbientColor) 16: 7(fvec4) FMul 13 15 diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 6e344891..de2c74be 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -2,16 +2,19 @@ hlsl.struct.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:26 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) -0:20 Function Parameters: -0:20 'input' (temp 4-component vector of float) +0:39 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:31 Function Parameters: +0:31 'input' (temp 4-component vector of float) 0:? Sequence -0:25 Compare Equal (temp bool) -0:25 's3' (temp structure{temp 3-component vector of bool b3}) -0:25 's3' (temp structure{temp 3-component vector of bool b3}) +0:36 Compare Equal (temp bool) +0:36 's3' (temp structure{temp 3-component vector of bool b3}) +0:36 's3' (temp structure{temp 3-component vector of bool b3}) +0:38 Branch: Return with expression +0:38 'input' (temp 4-component vector of float) 0:? Linker Objects 0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (temp structure{temp 4-component vector of float i}) +0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) Linked fragment stage: @@ -20,20 +23,23 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:26 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) -0:20 Function Parameters: -0:20 'input' (temp 4-component vector of float) +0:39 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:31 Function Parameters: +0:31 'input' (temp 4-component vector of float) 0:? Sequence -0:25 Compare Equal (temp bool) -0:25 's3' (temp structure{temp 3-component vector of bool b3}) -0:25 's3' (temp structure{temp 3-component vector of bool b3}) +0:36 Compare Equal (temp bool) +0:36 's3' (temp structure{temp 3-component vector of bool b3}) +0:36 's3' (temp structure{temp 3-component vector of bool b3}) +0:38 Branch: Return with expression +0:38 'input' (temp 4-component vector of float) 0:? Linker Objects 0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (temp structure{temp 4-component vector of float i}) +0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 33 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -45,15 +51,28 @@ gl_FragCoord origin is upper left Name 8 "FS" MemberName 8(FS) 0 "b3" Name 10 "s3" - Name 19 "myS" - MemberName 19(myS) 0 "b" - MemberName 19(myS) 1 "c" - MemberName 19(myS) 2 "a" - MemberName 19(myS) 3 "d" - Name 21 "s1" - Name 22 "" - MemberName 22 0 "i" - Name 24 "s2" + Name 20 "input" + Name 23 "myS" + MemberName 23(myS) 0 "b" + MemberName 23(myS) 1 "c" + MemberName 23(myS) 2 "a" + MemberName 23(myS) 3 "d" + Name 25 "s1" + Name 26 "" + MemberName 26 0 "i" + Name 28 "s2" + Name 30 "" + MemberName 30 0 "a" + MemberName 30 1 "b" + MemberName 30 2 "c" + MemberName 30 3 "d" + MemberName 30 4 "ff1" + MemberName 30 5 "ff2" + MemberName 30 6 "ff3" + MemberName 30 7 "ff4" + Name 32 "s4" + MemberDecorate 30 4 BuiltIn FrontFacing + MemberDecorate 30 7 BuiltIn FragCoord 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -62,20 +81,27 @@ gl_FragCoord origin is upper left 9: TypePointer Function 8(FS) 17: TypeFloat 32 18: TypeVector 17(float) 4 - 19(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 20: TypePointer Function 19(myS) - 22: TypeStruct 18(fvec4) - 23: TypePointer Function 22(struct) + 19: TypePointer Function 18(fvec4) + 23(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) + 24: TypePointer Function 23(myS) + 26: TypeStruct 18(fvec4) + 27: TypePointer Function 26(struct) + 29: TypeVector 17(float) 2 + 30: TypeStruct 18(fvec4) 6(bool) 17(float) 29(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4) + 31: TypePointer Function 30(struct) 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function - 21(s1): 20(ptr) Variable Function - 24(s2): 23(ptr) Variable Function + 20(input): 19(ptr) Variable Function + 25(s1): 24(ptr) Variable Function + 28(s2): 27(ptr) Variable Function + 32(s4): 31(ptr) Variable Function 11: 8(FS) Load 10(s3) 12: 8(FS) Load 10(s3) 13: 7(bvec3) CompositeExtract 11 0 14: 7(bvec3) CompositeExtract 12 0 15: 7(bvec3) LogicalEqual 13 14 16: 6(bool) All 15 - Return + 21: 18(fvec4) Load 20(input) + ReturnValue 21 FunctionEnd diff --git a/Test/hlsl.float4.frag b/Test/hlsl.float4.frag index 8ed4eab1..df871225 100644 --- a/Test/hlsl.float4.frag +++ b/Test/hlsl.float4.frag @@ -1,5 +1,10 @@ float4 AmbientColor = float4(1, 0.5, 0, 1); +bool ff1 : SV_IsFrontFace; +float4 ff2 : packoffset(c0.y); +float4 ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ; +float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) ; + float4 ShaderFunction(float4 input) : COLOR0 { return input * AmbientColor; diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index 4b5b2419..aded037c 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -16,6 +16,17 @@ struct { float4 i; } s2; +struct { + linear float4 a; + nointerpolation bool b; + noperspective centroid float1 c; + sample centroid float2 d; + bool ff1 : SV_IsFrontFace; + bool ff2 : packoffset(c0.y); + bool ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ; + float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) ; +} s4; + float4 PixelShaderFunction(float4 input) : COLOR0 { struct FS { @@ -23,4 +34,6 @@ float4 PixelShaderFunction(float4 input) : COLOR0 } s3; s3 == s3; + + return input; } \ No newline at end of file diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 1bd44165..c0d4f285 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -107,10 +107,10 @@ bool HlslGrammar::acceptCompilationUnit() // declaration // : SEMICOLON // : fully_specified_type SEMICOLON -// | fully_specified_type identifier SEMICOLON -// | fully_specified_type identifier = expression SEMICOLON -// | fully_specified_type identifier function_parameters SEMICOLON // function prototype -// | fully_specified_type identifier function_parameters COLON semantic compound_statement // function definition +// | fully_specified_type identifier post_decls SEMICOLON +// | fully_specified_type identifier post_decls = expression SEMICOLON +// | fully_specified_type identifier function_parameters post_decls SEMICOLON // function prototype +// | fully_specified_type identifier function_parameters post_decls compound_statement // function definition // // 'node' could get created if the declaration creates code, like an initializer // or a function body. @@ -127,6 +127,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // identifier HlslToken idToken; if (acceptIdentifier(idToken)) { + acceptPostDecls(type); // = expression TIntermTyped* expressionNode = nullptr; if (acceptTokenClass(EHTokAssign)) { @@ -145,8 +146,8 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // function_parameters TFunction* function = new TFunction(idToken.string, type); if (acceptFunctionParameters(*function)) { - // COLON semantic - acceptSemantic(); + // post_decls + acceptPostDecls(type); // compound_statement if (peekTokenClass(EHTokLeftBrace)) @@ -186,22 +187,66 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) return true; } -// If token is a qualifier, return its token class and advance to the next -// qualifier. Otherwise, return false, and don't advance. +// type_qualifier +// : qualifier qualifier ... +// +// Zero or more of these, so this can't return false. +// void HlslGrammar::acceptQualifier(TQualifier& qualifier) { - switch (peek()) { - case EHTokUniform: - qualifier.storage = EvqUniform; - break; - case EHTokConst: - qualifier.storage = EvqConst; - break; - default: - return; - } - - advanceToken(); + do { + switch (peek()) { + case EHTokStatic: + // normal glslang default + break; + case EHTokExtern: + // TODO: no meaning in glslang? + break; + case EHTokShared: + // TODO: hint + break; + case EHTokGroupShared: + qualifier.storage = EvqShared; + break; + case EHTokUniform: + qualifier.storage = EvqUniform; + break; + case EHTokConst: + qualifier.storage = EvqConst; + break; + case EHTokVolatile: + qualifier.volatil = true; + break; + case EHTokLinear: + qualifier.storage = EvqVaryingIn; + qualifier.smooth = true; + break; + case EHTokCentroid: + qualifier.centroid = true; + break; + case EHTokNointerpolation: + qualifier.flat = true; + break; + case EHTokNoperspective: + qualifier.nopersp = true; + break; + case EHTokSample: + qualifier.sample = true; + break; + case EHTokRowMajor: + qualifier.layoutMatrix = ElmRowMajor; + break; + case EHTokColumnMajor: + qualifier.layoutMatrix = ElmColumnMajor; + break; + case EHTokPrecise: + qualifier.noContraction = true; + break; + default: + return; + } + advanceToken(); + } while (true); } // If token is for a type, update 'type' with the type information, @@ -627,8 +672,8 @@ bool HlslGrammar::acceptStruct(TType& type) // : fully_specified_type struct_declarator COMMA struct_declarator ... // // struct_declarator -// : IDENTIFIER -// | IDENTIFIER array_specifier +// : IDENTIFIER post_decls +// | IDENTIFIER array_specifier post_decls // bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList) { @@ -668,6 +713,8 @@ bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList) // array_specifier // TODO + acceptPostDecls(*member.type); + // success on seeing the SEMICOLON coming up if (peekTokenClass(EHTokSemicolon)) break; @@ -1570,20 +1617,68 @@ bool HlslGrammar::acceptCaseLabel(TIntermNode*& statement) return false; } -// COLON semantic -bool HlslGrammar::acceptSemantic() +// post_decls +// : COLON semantic // optional +// COLON PACKOFFSET LEFT_PAREN ... RIGHT_PAREN // optional +// COLON REGISTER // optional +// annotations // optional +// +void HlslGrammar::acceptPostDecls(TType& type) { - // COLON - if (acceptTokenClass(EHTokColon)) { - // semantic - HlslToken idToken; - if (! acceptIdentifier(idToken)) { - expected("semantic"); - return false; - } - } + do { + // COLON + if (acceptTokenClass(EHTokColon)) { + HlslToken idToken; + if (acceptTokenClass(EHTokPackOffset)) { + if (! acceptTokenClass(EHTokLeftParen)) { + expected("("); + return; + } + acceptTokenClass(EHTokIdentifier); + acceptTokenClass(EHTokDot); + acceptTokenClass(EHTokIdentifier); + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + break; + } + // TODO: process the packoffset information + } else if (! acceptIdentifier(idToken)) { + expected("semantic or packoffset or register"); + return; + } else if (*idToken.string == "register") { + if (! acceptTokenClass(EHTokLeftParen)) { + expected("("); + return; + } + acceptTokenClass(EHTokIdentifier); + acceptTokenClass(EHTokComma); + acceptTokenClass(EHTokIdentifier); + acceptTokenClass(EHTokLeftBracket); + if (peekTokenClass(EHTokIntConstant)) + advanceToken(); + acceptTokenClass(EHTokRightBracket); + if (! acceptTokenClass(EHTokRightParen)) { + expected(")"); + break; + } + // TODO: process the register information + } else { + // semantic, in idToken.string + parseContext.handleSemantic(type, *idToken.string); + } + } else if (acceptTokenClass(EHTokLeftAngle)) { + // TODO: process annotations, just accepting them for now + do { + if (peekTokenClass(EHTokNone)) + return; + if (acceptTokenClass(EHTokRightAngle)) + break; + advanceToken(); + } while (true); + } else + break; - return true; + } while (true); } } // end namespace glslang diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 6cbcf2f0..97cea84a 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -87,8 +87,7 @@ namespace glslang { bool acceptIterationStatement(TIntermNode*&); bool acceptJumpStatement(TIntermNode*&); bool acceptCaseLabel(TIntermNode*&); - - bool acceptSemantic(); + void acceptPostDecls(TType&); HlslParseContext& parseContext; // state of parsing and helper functions for building the intermediate TIntermediate& intermediate; // the final product, the intermediate representation, includes the AST diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 1d6ffd85..13eb6389 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1212,6 +1212,38 @@ TFunction* HlslParseContext::handleConstructorCall(const TSourceLoc& loc, const return new TFunction(&empty, type, op); } +// +// Handle seeing a "COLON semantic" at the end of a type declaration, +// by updating the type according to the semantic. +// +void HlslParseContext::handleSemantic(TType& type, const TString& semantic) +{ + // TODO: need to know if it's an input or an output + // The following sketches what needs to be done, but can't be right + // without taking into account stage and input/output. + + if (semantic == "PSIZE") + type.getQualifier().builtIn = EbvPointSize; + else if (semantic == "POSITION") + type.getQualifier().builtIn = EbvPosition; + else if (semantic == "FOG") + type.getQualifier().builtIn = EbvFogFragCoord; + else if (semantic == "DEPTH" || semantic == "SV_Depth") + type.getQualifier().builtIn = EbvFragDepth; + else if (semantic == "VFACE" || semantic == "SV_IsFrontFace") + type.getQualifier().builtIn = EbvFace; + else if (semantic == "VPOS" || semantic == "SV_Position") + type.getQualifier().builtIn = EbvFragCoord; + else if (semantic == "SV_ClipDistance") + type.getQualifier().builtIn = EbvClipDistance; + else if (semantic == "SV_CullDistance") + type.getQualifier().builtIn = EbvCullDistance; + else if (semantic == "SV_VertexID") + type.getQualifier().builtIn = EbvVertexId; + else if (semantic == "SV_ViewportArrayIndex") + type.getQualifier().builtIn = EbvViewportIndex; +} + // // Given a type, find what operation would fully construct it. // diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 7f1e1acb..7def6b9a 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -90,6 +90,7 @@ public: TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); TFunction* handleConstructorCall(const TSourceLoc&, const TType&); + void handleSemantic(TType& type, const TString& semantic); bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&); void assignError(const TSourceLoc&, const char* op, TString left, TString right); diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index dc470ffe..69e582f6 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -102,6 +102,7 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["extern"] = EHTokExtern; (*KeywordMap)["uniform"] = EHTokUniform; (*KeywordMap)["volatile"] = EHTokVolatile; + (*KeywordMap)["precise"] = EHTokPrecise; (*KeywordMap)["shared"] = EHTokShared; (*KeywordMap)["groupshared"] = EHTokGroupShared; (*KeywordMap)["linear"] = EHTokLinear; diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index 9e6795b9..b3c1227d 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -49,6 +49,7 @@ enum EHlslTokenClass { EHTokExtern, EHTokUniform, EHTokVolatile, + EHTokPrecise, EHTokShared, EHTokGroupShared, EHTokLinear, From 5dd29c8a975cd70f951f0f86ca8cdceef0844889 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Mon, 13 Jun 2016 11:21:13 +0300 Subject: [PATCH 34/48] Compilation fix (mingw64) --- glslang/OSDependent/Windows/ossource.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glslang/OSDependent/Windows/ossource.cpp b/glslang/OSDependent/Windows/ossource.cpp index 56dbf791..1d09fd38 100644 --- a/glslang/OSDependent/Windows/ossource.cpp +++ b/glslang/OSDependent/Windows/ossource.cpp @@ -134,7 +134,7 @@ unsigned int __stdcall EnterGenericThread (void* entry) void* OS_CreateThread(TThreadEntrypoint entry) { - return (void*)_beginthreadex(0, 0, EnterGenericThread, entry, 0, 0); + return (void*)_beginthreadex(0, 0, EnterGenericThread, (void*)entry, 0, 0); } void OS_WaitForAllThreads(void* threads, int numThreads) From 589107095c1e7b1f902492173a7aa7a64dfb275d Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Mon, 13 Jun 2016 09:22:28 -0600 Subject: [PATCH 35/48] Implement atomic ops, bit conversions, fix fwidth stage mask, fix saturate dest modifier. --- Test/baseResults/hlsl.intrinsics.comp.out | 768 +++ Test/baseResults/hlsl.intrinsics.frag.out | 5966 +++++++++-------- .../hlsl.intrinsics.negative.comp.out | 886 +++ .../hlsl.intrinsics.negative.vert.out | 1793 +++-- Test/baseResults/hlsl.intrinsics.vert.out | 4734 ++++++------- Test/hlsl.intrinsics.comp | 129 + Test/hlsl.intrinsics.frag | 52 +- Test/hlsl.intrinsics.negative.comp | 201 + Test/hlsl.intrinsics.negative.frag | 20 +- Test/hlsl.intrinsics.negative.vert | 225 +- Test/hlsl.intrinsics.vert | 34 +- glslang/Include/intermediate.h | 24 +- gtests/Hlsl.FromFile.cpp | 2 + hlsl/hlslParseHelper.cpp | 79 + hlsl/hlslParseHelper.h | 1 + hlsl/hlslParseables.cpp | 34 +- 16 files changed, 8844 insertions(+), 6104 deletions(-) create mode 100644 Test/baseResults/hlsl.intrinsics.comp.out create mode 100644 Test/baseResults/hlsl.intrinsics.negative.comp.out create mode 100644 Test/hlsl.intrinsics.comp create mode 100644 Test/hlsl.intrinsics.negative.comp diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out new file mode 100644 index 00000000..63e90e83 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -0,0 +1,768 @@ +hlsl.intrinsics.comp +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:44 Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:17 Function Parameters: +0:17 'inF0' (temp float) +0:17 'inF1' (temp float) +0:17 'inF2' (temp float) +0:17 'inU0' (temp uint) +0:17 'inU1' (temp uint) +0:? Sequence +0:21 all (global bool) +0:21 'inF0' (temp float) +0:24 AtomicAdd (global void) +0:24 'gs_ua' (temp uint) +0:24 'gs_ub' (temp uint) +0:25 move second child to first child (temp uint) +0:25 'out_u1' (temp uint) +0:25 AtomicAdd (temp uint) +0:25 'gs_ua' (temp uint) +0:25 'gs_ub' (temp uint) +0:26 AtomicAnd (global void) +0:26 'gs_ua' (temp uint) +0:26 'gs_ub' (temp uint) +0:27 move second child to first child (temp uint) +0:27 'out_u1' (temp uint) +0:27 AtomicAnd (temp uint) +0:27 'gs_ua' (temp uint) +0:27 'gs_ub' (temp uint) +0:28 move second child to first child (temp uint) +0:28 'out_u1' (temp uint) +0:28 AtomicCompSwap (temp uint) +0:28 'gs_ua' (temp uint) +0:28 'gs_ub' (temp uint) +0:28 'gs_uc' (temp uint) +0:29 move second child to first child (temp uint) +0:29 'out_u1' (temp uint) +0:29 AtomicExchange (temp uint) +0:29 'gs_ua' (temp uint) +0:29 'gs_ub' (temp uint) +0:30 AtomicMax (global void) +0:30 'gs_ua' (temp uint) +0:30 'gs_ub' (temp uint) +0:31 move second child to first child (temp uint) +0:31 'out_u1' (temp uint) +0:31 AtomicMax (temp uint) +0:31 'gs_ua' (temp uint) +0:31 'gs_ub' (temp uint) +0:32 AtomicMin (global void) +0:32 'gs_ua' (temp uint) +0:32 'gs_ub' (temp uint) +0:33 move second child to first child (temp uint) +0:33 'out_u1' (temp uint) +0:33 AtomicMin (temp uint) +0:33 'gs_ua' (temp uint) +0:33 'gs_ub' (temp uint) +0:34 AtomicOr (global void) +0:34 'gs_ua' (temp uint) +0:34 'gs_ub' (temp uint) +0:35 move second child to first child (temp uint) +0:35 'out_u1' (temp uint) +0:35 AtomicOr (temp uint) +0:35 'gs_ua' (temp uint) +0:35 'gs_ub' (temp uint) +0:36 AtomicXor (global void) +0:36 'gs_ua' (temp uint) +0:36 'gs_ub' (temp uint) +0:37 move second child to first child (temp uint) +0:37 'out_u1' (temp uint) +0:37 AtomicXor (temp uint) +0:37 'gs_ua' (temp uint) +0:37 'gs_ub' (temp uint) +0:41 Branch: Return with expression +0:41 Constant: +0:41 0.000000 +0:50 Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:45 Function Parameters: +0:45 'inF0' (temp 1-component vector of float) +0:45 'inF1' (temp 1-component vector of float) +0:45 'inF2' (temp 1-component vector of float) +0:? Sequence +0:47 Branch: Return with expression +0:47 Constant: +0:47 0.000000 +0:77 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:51 Function Parameters: +0:51 'inF0' (temp 2-component vector of float) +0:51 'inF1' (temp 2-component vector of float) +0:51 'inF2' (temp 2-component vector of float) +0:51 'inU0' (temp 2-component vector of uint) +0:51 'inU1' (temp 2-component vector of uint) +0:? Sequence +0:55 all (global bool) +0:55 'inF0' (temp 2-component vector of float) +0:58 AtomicAdd (global void) +0:58 'gs_ua2' (temp 2-component vector of uint) +0:58 'gs_ub2' (temp 2-component vector of uint) +0:59 move second child to first child (temp 2-component vector of uint) +0:59 'out_u2' (temp 2-component vector of uint) +0:59 AtomicAdd (temp 2-component vector of uint) +0:59 'gs_ua2' (temp 2-component vector of uint) +0:59 'gs_ub2' (temp 2-component vector of uint) +0:60 AtomicAnd (global void) +0:60 'gs_ua2' (temp 2-component vector of uint) +0:60 'gs_ub2' (temp 2-component vector of uint) +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'out_u2' (temp 2-component vector of uint) +0:61 AtomicAnd (temp 2-component vector of uint) +0:61 'gs_ua2' (temp 2-component vector of uint) +0:61 'gs_ub2' (temp 2-component vector of uint) +0:62 move second child to first child (temp 2-component vector of uint) +0:62 'out_u2' (temp 2-component vector of uint) +0:62 AtomicCompSwap (temp 2-component vector of uint) +0:62 'gs_ua2' (temp 2-component vector of uint) +0:62 'gs_ub2' (temp 2-component vector of uint) +0:62 'gs_uc2' (temp 2-component vector of uint) +0:63 move second child to first child (temp 2-component vector of uint) +0:63 'out_u2' (temp 2-component vector of uint) +0:63 AtomicExchange (temp 2-component vector of uint) +0:63 'gs_ua2' (temp 2-component vector of uint) +0:63 'gs_ub2' (temp 2-component vector of uint) +0:64 AtomicMax (global void) +0:64 'gs_ua2' (temp 2-component vector of uint) +0:64 'gs_ub2' (temp 2-component vector of uint) +0:65 move second child to first child (temp 2-component vector of uint) +0:65 'out_u2' (temp 2-component vector of uint) +0:65 AtomicMax (temp 2-component vector of uint) +0:65 'gs_ua2' (temp 2-component vector of uint) +0:65 'gs_ub2' (temp 2-component vector of uint) +0:66 AtomicMin (global void) +0:66 'gs_ua2' (temp 2-component vector of uint) +0:66 'gs_ub2' (temp 2-component vector of uint) +0:67 move second child to first child (temp 2-component vector of uint) +0:67 'out_u2' (temp 2-component vector of uint) +0:67 AtomicMin (temp 2-component vector of uint) +0:67 'gs_ua2' (temp 2-component vector of uint) +0:67 'gs_ub2' (temp 2-component vector of uint) +0:68 AtomicOr (global void) +0:68 'gs_ua2' (temp 2-component vector of uint) +0:68 'gs_ub2' (temp 2-component vector of uint) +0:69 move second child to first child (temp 2-component vector of uint) +0:69 'out_u2' (temp 2-component vector of uint) +0:69 AtomicOr (temp 2-component vector of uint) +0:69 'gs_ua2' (temp 2-component vector of uint) +0:69 'gs_ub2' (temp 2-component vector of uint) +0:70 AtomicXor (global void) +0:70 'gs_ua2' (temp 2-component vector of uint) +0:70 'gs_ub2' (temp 2-component vector of uint) +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'out_u2' (temp 2-component vector of uint) +0:71 AtomicXor (temp 2-component vector of uint) +0:71 'gs_ua2' (temp 2-component vector of uint) +0:71 'gs_ub2' (temp 2-component vector of uint) +0:74 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:104 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:78 Function Parameters: +0:78 'inF0' (temp 3-component vector of float) +0:78 'inF1' (temp 3-component vector of float) +0:78 'inF2' (temp 3-component vector of float) +0:78 'inU0' (temp 3-component vector of uint) +0:78 'inU1' (temp 3-component vector of uint) +0:? Sequence +0:82 all (global bool) +0:82 'inF0' (temp 3-component vector of float) +0:85 AtomicAdd (global void) +0:85 'gs_ua3' (temp 3-component vector of uint) +0:85 'gs_ub3' (temp 3-component vector of uint) +0:86 move second child to first child (temp 3-component vector of uint) +0:86 'out_u3' (temp 3-component vector of uint) +0:86 AtomicAdd (temp 3-component vector of uint) +0:86 'gs_ua3' (temp 3-component vector of uint) +0:86 'gs_ub3' (temp 3-component vector of uint) +0:87 AtomicAnd (global void) +0:87 'gs_ua3' (temp 3-component vector of uint) +0:87 'gs_ub3' (temp 3-component vector of uint) +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'out_u3' (temp 3-component vector of uint) +0:88 AtomicAnd (temp 3-component vector of uint) +0:88 'gs_ua3' (temp 3-component vector of uint) +0:88 'gs_ub3' (temp 3-component vector of uint) +0:89 move second child to first child (temp 3-component vector of uint) +0:89 'out_u3' (temp 3-component vector of uint) +0:89 AtomicCompSwap (temp 3-component vector of uint) +0:89 'gs_ua3' (temp 3-component vector of uint) +0:89 'gs_ub3' (temp 3-component vector of uint) +0:89 'gs_uc3' (temp 3-component vector of uint) +0:90 move second child to first child (temp 3-component vector of uint) +0:90 'out_u3' (temp 3-component vector of uint) +0:90 AtomicExchange (temp 3-component vector of uint) +0:90 'gs_ua3' (temp 3-component vector of uint) +0:90 'gs_ub3' (temp 3-component vector of uint) +0:91 AtomicMax (global void) +0:91 'gs_ua3' (temp 3-component vector of uint) +0:91 'gs_ub3' (temp 3-component vector of uint) +0:92 move second child to first child (temp 3-component vector of uint) +0:92 'out_u3' (temp 3-component vector of uint) +0:92 AtomicMax (temp 3-component vector of uint) +0:92 'gs_ua3' (temp 3-component vector of uint) +0:92 'gs_ub3' (temp 3-component vector of uint) +0:93 AtomicMin (global void) +0:93 'gs_ua3' (temp 3-component vector of uint) +0:93 'gs_ub3' (temp 3-component vector of uint) +0:94 move second child to first child (temp 3-component vector of uint) +0:94 'out_u3' (temp 3-component vector of uint) +0:94 AtomicMin (temp 3-component vector of uint) +0:94 'gs_ua3' (temp 3-component vector of uint) +0:94 'gs_ub3' (temp 3-component vector of uint) +0:95 AtomicOr (global void) +0:95 'gs_ua3' (temp 3-component vector of uint) +0:95 'gs_ub3' (temp 3-component vector of uint) +0:96 move second child to first child (temp 3-component vector of uint) +0:96 'out_u3' (temp 3-component vector of uint) +0:96 AtomicOr (temp 3-component vector of uint) +0:96 'gs_ua3' (temp 3-component vector of uint) +0:96 'gs_ub3' (temp 3-component vector of uint) +0:97 AtomicXor (global void) +0:97 'gs_ua3' (temp 3-component vector of uint) +0:97 'gs_ub3' (temp 3-component vector of uint) +0:98 move second child to first child (temp 3-component vector of uint) +0:98 'out_u3' (temp 3-component vector of uint) +0:98 AtomicXor (temp 3-component vector of uint) +0:98 'gs_ua3' (temp 3-component vector of uint) +0:98 'gs_ub3' (temp 3-component vector of uint) +0:101 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:105 Function Parameters: +0:105 'inF0' (temp 4-component vector of float) +0:105 'inF1' (temp 4-component vector of float) +0:105 'inF2' (temp 4-component vector of float) +0:105 'inU0' (temp 4-component vector of uint) +0:105 'inU1' (temp 4-component vector of uint) +0:? Sequence +0:109 all (global bool) +0:109 'inF0' (temp 4-component vector of float) +0:112 AtomicAdd (global void) +0:112 'gs_ua4' (temp 4-component vector of uint) +0:112 'gs_ub4' (temp 4-component vector of uint) +0:113 move second child to first child (temp 4-component vector of uint) +0:113 'out_u4' (temp 4-component vector of uint) +0:113 AtomicAdd (temp 4-component vector of uint) +0:113 'gs_ua4' (temp 4-component vector of uint) +0:113 'gs_ub4' (temp 4-component vector of uint) +0:114 AtomicAnd (global void) +0:114 'gs_ua4' (temp 4-component vector of uint) +0:114 'gs_ub4' (temp 4-component vector of uint) +0:115 move second child to first child (temp 4-component vector of uint) +0:115 'out_u4' (temp 4-component vector of uint) +0:115 AtomicAnd (temp 4-component vector of uint) +0:115 'gs_ua4' (temp 4-component vector of uint) +0:115 'gs_ub4' (temp 4-component vector of uint) +0:116 move second child to first child (temp 4-component vector of uint) +0:116 'out_u4' (temp 4-component vector of uint) +0:116 AtomicCompSwap (temp 4-component vector of uint) +0:116 'gs_ua4' (temp 4-component vector of uint) +0:116 'gs_ub4' (temp 4-component vector of uint) +0:116 'gs_uc4' (temp 4-component vector of uint) +0:117 move second child to first child (temp 4-component vector of uint) +0:117 'out_u4' (temp 4-component vector of uint) +0:117 AtomicExchange (temp 4-component vector of uint) +0:117 'gs_ua4' (temp 4-component vector of uint) +0:117 'gs_ub4' (temp 4-component vector of uint) +0:118 AtomicMax (global void) +0:118 'gs_ua4' (temp 4-component vector of uint) +0:118 'gs_ub4' (temp 4-component vector of uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'out_u4' (temp 4-component vector of uint) +0:119 AtomicMax (temp 4-component vector of uint) +0:119 'gs_ua4' (temp 4-component vector of uint) +0:119 'gs_ub4' (temp 4-component vector of uint) +0:120 AtomicMin (global void) +0:120 'gs_ua4' (temp 4-component vector of uint) +0:120 'gs_ub4' (temp 4-component vector of uint) +0:121 move second child to first child (temp 4-component vector of uint) +0:121 'out_u4' (temp 4-component vector of uint) +0:121 AtomicMin (temp 4-component vector of uint) +0:121 'gs_ua4' (temp 4-component vector of uint) +0:121 'gs_ub4' (temp 4-component vector of uint) +0:122 AtomicOr (global void) +0:122 'gs_ua4' (temp 4-component vector of uint) +0:122 'gs_ub4' (temp 4-component vector of uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'out_u4' (temp 4-component vector of uint) +0:123 AtomicOr (temp 4-component vector of uint) +0:123 'gs_ua4' (temp 4-component vector of uint) +0:123 'gs_ub4' (temp 4-component vector of uint) +0:124 AtomicXor (global void) +0:124 'gs_ua4' (temp 4-component vector of uint) +0:124 'gs_ub4' (temp 4-component vector of uint) +0:125 move second child to first child (temp 4-component vector of uint) +0:125 'out_u4' (temp 4-component vector of uint) +0:125 AtomicXor (temp 4-component vector of uint) +0:125 'gs_ua4' (temp 4-component vector of uint) +0:125 'gs_ub4' (temp 4-component vector of uint) +0:128 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? Linker Objects +0:? 'gs_ua' (temp uint) +0:? 'gs_ub' (temp uint) +0:? 'gs_uc' (temp uint) +0:? 'gs_ua2' (temp 2-component vector of uint) +0:? 'gs_ub2' (temp 2-component vector of uint) +0:? 'gs_uc2' (temp 2-component vector of uint) +0:? 'gs_ua3' (temp 3-component vector of uint) +0:? 'gs_ub3' (temp 3-component vector of uint) +0:? 'gs_uc3' (temp 3-component vector of uint) +0:? 'gs_ua4' (temp 4-component vector of uint) +0:? 'gs_ub4' (temp 4-component vector of uint) +0:? 'gs_uc4' (temp 4-component vector of uint) + + +Linked compute stage: + + +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:44 Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:17 Function Parameters: +0:17 'inF0' (temp float) +0:17 'inF1' (temp float) +0:17 'inF2' (temp float) +0:17 'inU0' (temp uint) +0:17 'inU1' (temp uint) +0:? Sequence +0:21 all (global bool) +0:21 'inF0' (temp float) +0:24 AtomicAdd (global void) +0:24 'gs_ua' (temp uint) +0:24 'gs_ub' (temp uint) +0:25 move second child to first child (temp uint) +0:25 'out_u1' (temp uint) +0:25 AtomicAdd (temp uint) +0:25 'gs_ua' (temp uint) +0:25 'gs_ub' (temp uint) +0:26 AtomicAnd (global void) +0:26 'gs_ua' (temp uint) +0:26 'gs_ub' (temp uint) +0:27 move second child to first child (temp uint) +0:27 'out_u1' (temp uint) +0:27 AtomicAnd (temp uint) +0:27 'gs_ua' (temp uint) +0:27 'gs_ub' (temp uint) +0:28 move second child to first child (temp uint) +0:28 'out_u1' (temp uint) +0:28 AtomicCompSwap (temp uint) +0:28 'gs_ua' (temp uint) +0:28 'gs_ub' (temp uint) +0:28 'gs_uc' (temp uint) +0:29 move second child to first child (temp uint) +0:29 'out_u1' (temp uint) +0:29 AtomicExchange (temp uint) +0:29 'gs_ua' (temp uint) +0:29 'gs_ub' (temp uint) +0:30 AtomicMax (global void) +0:30 'gs_ua' (temp uint) +0:30 'gs_ub' (temp uint) +0:31 move second child to first child (temp uint) +0:31 'out_u1' (temp uint) +0:31 AtomicMax (temp uint) +0:31 'gs_ua' (temp uint) +0:31 'gs_ub' (temp uint) +0:32 AtomicMin (global void) +0:32 'gs_ua' (temp uint) +0:32 'gs_ub' (temp uint) +0:33 move second child to first child (temp uint) +0:33 'out_u1' (temp uint) +0:33 AtomicMin (temp uint) +0:33 'gs_ua' (temp uint) +0:33 'gs_ub' (temp uint) +0:34 AtomicOr (global void) +0:34 'gs_ua' (temp uint) +0:34 'gs_ub' (temp uint) +0:35 move second child to first child (temp uint) +0:35 'out_u1' (temp uint) +0:35 AtomicOr (temp uint) +0:35 'gs_ua' (temp uint) +0:35 'gs_ub' (temp uint) +0:36 AtomicXor (global void) +0:36 'gs_ua' (temp uint) +0:36 'gs_ub' (temp uint) +0:37 move second child to first child (temp uint) +0:37 'out_u1' (temp uint) +0:37 AtomicXor (temp uint) +0:37 'gs_ua' (temp uint) +0:37 'gs_ub' (temp uint) +0:41 Branch: Return with expression +0:41 Constant: +0:41 0.000000 +0:50 Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:45 Function Parameters: +0:45 'inF0' (temp 1-component vector of float) +0:45 'inF1' (temp 1-component vector of float) +0:45 'inF2' (temp 1-component vector of float) +0:? Sequence +0:47 Branch: Return with expression +0:47 Constant: +0:47 0.000000 +0:77 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:51 Function Parameters: +0:51 'inF0' (temp 2-component vector of float) +0:51 'inF1' (temp 2-component vector of float) +0:51 'inF2' (temp 2-component vector of float) +0:51 'inU0' (temp 2-component vector of uint) +0:51 'inU1' (temp 2-component vector of uint) +0:? Sequence +0:55 all (global bool) +0:55 'inF0' (temp 2-component vector of float) +0:58 AtomicAdd (global void) +0:58 'gs_ua2' (temp 2-component vector of uint) +0:58 'gs_ub2' (temp 2-component vector of uint) +0:59 move second child to first child (temp 2-component vector of uint) +0:59 'out_u2' (temp 2-component vector of uint) +0:59 AtomicAdd (temp 2-component vector of uint) +0:59 'gs_ua2' (temp 2-component vector of uint) +0:59 'gs_ub2' (temp 2-component vector of uint) +0:60 AtomicAnd (global void) +0:60 'gs_ua2' (temp 2-component vector of uint) +0:60 'gs_ub2' (temp 2-component vector of uint) +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'out_u2' (temp 2-component vector of uint) +0:61 AtomicAnd (temp 2-component vector of uint) +0:61 'gs_ua2' (temp 2-component vector of uint) +0:61 'gs_ub2' (temp 2-component vector of uint) +0:62 move second child to first child (temp 2-component vector of uint) +0:62 'out_u2' (temp 2-component vector of uint) +0:62 AtomicCompSwap (temp 2-component vector of uint) +0:62 'gs_ua2' (temp 2-component vector of uint) +0:62 'gs_ub2' (temp 2-component vector of uint) +0:62 'gs_uc2' (temp 2-component vector of uint) +0:63 move second child to first child (temp 2-component vector of uint) +0:63 'out_u2' (temp 2-component vector of uint) +0:63 AtomicExchange (temp 2-component vector of uint) +0:63 'gs_ua2' (temp 2-component vector of uint) +0:63 'gs_ub2' (temp 2-component vector of uint) +0:64 AtomicMax (global void) +0:64 'gs_ua2' (temp 2-component vector of uint) +0:64 'gs_ub2' (temp 2-component vector of uint) +0:65 move second child to first child (temp 2-component vector of uint) +0:65 'out_u2' (temp 2-component vector of uint) +0:65 AtomicMax (temp 2-component vector of uint) +0:65 'gs_ua2' (temp 2-component vector of uint) +0:65 'gs_ub2' (temp 2-component vector of uint) +0:66 AtomicMin (global void) +0:66 'gs_ua2' (temp 2-component vector of uint) +0:66 'gs_ub2' (temp 2-component vector of uint) +0:67 move second child to first child (temp 2-component vector of uint) +0:67 'out_u2' (temp 2-component vector of uint) +0:67 AtomicMin (temp 2-component vector of uint) +0:67 'gs_ua2' (temp 2-component vector of uint) +0:67 'gs_ub2' (temp 2-component vector of uint) +0:68 AtomicOr (global void) +0:68 'gs_ua2' (temp 2-component vector of uint) +0:68 'gs_ub2' (temp 2-component vector of uint) +0:69 move second child to first child (temp 2-component vector of uint) +0:69 'out_u2' (temp 2-component vector of uint) +0:69 AtomicOr (temp 2-component vector of uint) +0:69 'gs_ua2' (temp 2-component vector of uint) +0:69 'gs_ub2' (temp 2-component vector of uint) +0:70 AtomicXor (global void) +0:70 'gs_ua2' (temp 2-component vector of uint) +0:70 'gs_ub2' (temp 2-component vector of uint) +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'out_u2' (temp 2-component vector of uint) +0:71 AtomicXor (temp 2-component vector of uint) +0:71 'gs_ua2' (temp 2-component vector of uint) +0:71 'gs_ub2' (temp 2-component vector of uint) +0:74 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:104 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:78 Function Parameters: +0:78 'inF0' (temp 3-component vector of float) +0:78 'inF1' (temp 3-component vector of float) +0:78 'inF2' (temp 3-component vector of float) +0:78 'inU0' (temp 3-component vector of uint) +0:78 'inU1' (temp 3-component vector of uint) +0:? Sequence +0:82 all (global bool) +0:82 'inF0' (temp 3-component vector of float) +0:85 AtomicAdd (global void) +0:85 'gs_ua3' (temp 3-component vector of uint) +0:85 'gs_ub3' (temp 3-component vector of uint) +0:86 move second child to first child (temp 3-component vector of uint) +0:86 'out_u3' (temp 3-component vector of uint) +0:86 AtomicAdd (temp 3-component vector of uint) +0:86 'gs_ua3' (temp 3-component vector of uint) +0:86 'gs_ub3' (temp 3-component vector of uint) +0:87 AtomicAnd (global void) +0:87 'gs_ua3' (temp 3-component vector of uint) +0:87 'gs_ub3' (temp 3-component vector of uint) +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'out_u3' (temp 3-component vector of uint) +0:88 AtomicAnd (temp 3-component vector of uint) +0:88 'gs_ua3' (temp 3-component vector of uint) +0:88 'gs_ub3' (temp 3-component vector of uint) +0:89 move second child to first child (temp 3-component vector of uint) +0:89 'out_u3' (temp 3-component vector of uint) +0:89 AtomicCompSwap (temp 3-component vector of uint) +0:89 'gs_ua3' (temp 3-component vector of uint) +0:89 'gs_ub3' (temp 3-component vector of uint) +0:89 'gs_uc3' (temp 3-component vector of uint) +0:90 move second child to first child (temp 3-component vector of uint) +0:90 'out_u3' (temp 3-component vector of uint) +0:90 AtomicExchange (temp 3-component vector of uint) +0:90 'gs_ua3' (temp 3-component vector of uint) +0:90 'gs_ub3' (temp 3-component vector of uint) +0:91 AtomicMax (global void) +0:91 'gs_ua3' (temp 3-component vector of uint) +0:91 'gs_ub3' (temp 3-component vector of uint) +0:92 move second child to first child (temp 3-component vector of uint) +0:92 'out_u3' (temp 3-component vector of uint) +0:92 AtomicMax (temp 3-component vector of uint) +0:92 'gs_ua3' (temp 3-component vector of uint) +0:92 'gs_ub3' (temp 3-component vector of uint) +0:93 AtomicMin (global void) +0:93 'gs_ua3' (temp 3-component vector of uint) +0:93 'gs_ub3' (temp 3-component vector of uint) +0:94 move second child to first child (temp 3-component vector of uint) +0:94 'out_u3' (temp 3-component vector of uint) +0:94 AtomicMin (temp 3-component vector of uint) +0:94 'gs_ua3' (temp 3-component vector of uint) +0:94 'gs_ub3' (temp 3-component vector of uint) +0:95 AtomicOr (global void) +0:95 'gs_ua3' (temp 3-component vector of uint) +0:95 'gs_ub3' (temp 3-component vector of uint) +0:96 move second child to first child (temp 3-component vector of uint) +0:96 'out_u3' (temp 3-component vector of uint) +0:96 AtomicOr (temp 3-component vector of uint) +0:96 'gs_ua3' (temp 3-component vector of uint) +0:96 'gs_ub3' (temp 3-component vector of uint) +0:97 AtomicXor (global void) +0:97 'gs_ua3' (temp 3-component vector of uint) +0:97 'gs_ub3' (temp 3-component vector of uint) +0:98 move second child to first child (temp 3-component vector of uint) +0:98 'out_u3' (temp 3-component vector of uint) +0:98 AtomicXor (temp 3-component vector of uint) +0:98 'gs_ua3' (temp 3-component vector of uint) +0:98 'gs_ub3' (temp 3-component vector of uint) +0:101 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:105 Function Parameters: +0:105 'inF0' (temp 4-component vector of float) +0:105 'inF1' (temp 4-component vector of float) +0:105 'inF2' (temp 4-component vector of float) +0:105 'inU0' (temp 4-component vector of uint) +0:105 'inU1' (temp 4-component vector of uint) +0:? Sequence +0:109 all (global bool) +0:109 'inF0' (temp 4-component vector of float) +0:112 AtomicAdd (global void) +0:112 'gs_ua4' (temp 4-component vector of uint) +0:112 'gs_ub4' (temp 4-component vector of uint) +0:113 move second child to first child (temp 4-component vector of uint) +0:113 'out_u4' (temp 4-component vector of uint) +0:113 AtomicAdd (temp 4-component vector of uint) +0:113 'gs_ua4' (temp 4-component vector of uint) +0:113 'gs_ub4' (temp 4-component vector of uint) +0:114 AtomicAnd (global void) +0:114 'gs_ua4' (temp 4-component vector of uint) +0:114 'gs_ub4' (temp 4-component vector of uint) +0:115 move second child to first child (temp 4-component vector of uint) +0:115 'out_u4' (temp 4-component vector of uint) +0:115 AtomicAnd (temp 4-component vector of uint) +0:115 'gs_ua4' (temp 4-component vector of uint) +0:115 'gs_ub4' (temp 4-component vector of uint) +0:116 move second child to first child (temp 4-component vector of uint) +0:116 'out_u4' (temp 4-component vector of uint) +0:116 AtomicCompSwap (temp 4-component vector of uint) +0:116 'gs_ua4' (temp 4-component vector of uint) +0:116 'gs_ub4' (temp 4-component vector of uint) +0:116 'gs_uc4' (temp 4-component vector of uint) +0:117 move second child to first child (temp 4-component vector of uint) +0:117 'out_u4' (temp 4-component vector of uint) +0:117 AtomicExchange (temp 4-component vector of uint) +0:117 'gs_ua4' (temp 4-component vector of uint) +0:117 'gs_ub4' (temp 4-component vector of uint) +0:118 AtomicMax (global void) +0:118 'gs_ua4' (temp 4-component vector of uint) +0:118 'gs_ub4' (temp 4-component vector of uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'out_u4' (temp 4-component vector of uint) +0:119 AtomicMax (temp 4-component vector of uint) +0:119 'gs_ua4' (temp 4-component vector of uint) +0:119 'gs_ub4' (temp 4-component vector of uint) +0:120 AtomicMin (global void) +0:120 'gs_ua4' (temp 4-component vector of uint) +0:120 'gs_ub4' (temp 4-component vector of uint) +0:121 move second child to first child (temp 4-component vector of uint) +0:121 'out_u4' (temp 4-component vector of uint) +0:121 AtomicMin (temp 4-component vector of uint) +0:121 'gs_ua4' (temp 4-component vector of uint) +0:121 'gs_ub4' (temp 4-component vector of uint) +0:122 AtomicOr (global void) +0:122 'gs_ua4' (temp 4-component vector of uint) +0:122 'gs_ub4' (temp 4-component vector of uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'out_u4' (temp 4-component vector of uint) +0:123 AtomicOr (temp 4-component vector of uint) +0:123 'gs_ua4' (temp 4-component vector of uint) +0:123 'gs_ub4' (temp 4-component vector of uint) +0:124 AtomicXor (global void) +0:124 'gs_ua4' (temp 4-component vector of uint) +0:124 'gs_ub4' (temp 4-component vector of uint) +0:125 move second child to first child (temp 4-component vector of uint) +0:125 'out_u4' (temp 4-component vector of uint) +0:125 AtomicXor (temp 4-component vector of uint) +0:125 'gs_ua4' (temp 4-component vector of uint) +0:125 'gs_ub4' (temp 4-component vector of uint) +0:128 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? Linker Objects +0:? 'gs_ua' (temp uint) +0:? 'gs_ub' (temp uint) +0:? 'gs_uc' (temp uint) +0:? 'gs_ua2' (temp 2-component vector of uint) +0:? 'gs_ub2' (temp 2-component vector of uint) +0:? 'gs_uc2' (temp 2-component vector of uint) +0:? 'gs_ua3' (temp 3-component vector of uint) +0:? 'gs_ub3' (temp 3-component vector of uint) +0:? 'gs_uc3' (temp 3-component vector of uint) +0:? 'gs_ua4' (temp 4-component vector of uint) +0:? 'gs_ub4' (temp 4-component vector of uint) +0:? 'gs_uc4' (temp 4-component vector of uint) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 182 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 450 + Name 4 "ComputeShaderFunction" + Name 8 "inF0" + Name 14 "gs_ua" + Name 15 "gs_ub" + Name 20 "out_u1" + Name 28 "gs_uc" + Name 54 "inF0" + Name 59 "gs_ua2" + Name 60 "gs_ub2" + Name 63 "out_u2" + Name 71 "gs_uc2" + Name 98 "inF0" + Name 103 "gs_ua3" + Name 104 "gs_ub3" + Name 107 "out_u3" + Name 115 "gs_uc3" + Name 141 "inF0" + Name 146 "gs_ua4" + Name 147 "gs_ub4" + Name 150 "out_u4" + Name 158 "gs_uc4" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 10: TypeBool + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 17: 12(int) Constant 1 + 18: 12(int) Constant 0 + 49: 6(float) Constant 0 + 52: TypeVector 6(float) 2 + 53: TypePointer Function 52(fvec2) + 57: TypeVector 12(int) 2 + 58: TypePointer Function 57(ivec2) + 92: 6(float) Constant 1065353216 + 93: 6(float) Constant 1073741824 + 94: 52(fvec2) ConstantComposite 92 93 + 96: TypeVector 6(float) 3 + 97: TypePointer Function 96(fvec3) + 101: TypeVector 12(int) 3 + 102: TypePointer Function 101(ivec3) + 136: 6(float) Constant 1077936128 + 137: 96(fvec3) ConstantComposite 92 93 136 + 139: TypeVector 6(float) 4 + 140: TypePointer Function 139(fvec4) + 144: TypeVector 12(int) 4 + 145: TypePointer Function 144(ivec4) + 179: 6(float) Constant 1082130432 + 180: 139(fvec4) ConstantComposite 92 93 136 179 +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + 8(inF0): 7(ptr) Variable Function + 14(gs_ua): 13(ptr) Variable Function + 15(gs_ub): 13(ptr) Variable Function + 20(out_u1): 13(ptr) Variable Function + 28(gs_uc): 13(ptr) Variable Function + 54(inF0): 53(ptr) Variable Function + 59(gs_ua2): 58(ptr) Variable Function + 60(gs_ub2): 58(ptr) Variable Function + 63(out_u2): 58(ptr) Variable Function + 71(gs_uc2): 58(ptr) Variable Function + 98(inF0): 97(ptr) Variable Function + 103(gs_ua3): 102(ptr) Variable Function + 104(gs_ub3): 102(ptr) Variable Function + 107(out_u3): 102(ptr) Variable Function + 115(gs_uc3): 102(ptr) Variable Function + 141(inF0): 140(ptr) Variable Function + 146(gs_ua4): 145(ptr) Variable Function + 147(gs_ub4): 145(ptr) Variable Function + 150(out_u4): 145(ptr) Variable Function + 158(gs_uc4): 145(ptr) Variable Function + 9: 6(float) Load 8(inF0) + 11: 10(bool) All 9 + 16: 12(int) Load 15(gs_ub) + 19: 2 AtomicIAdd 14(gs_ua) 17 18 16 + 21: 12(int) Load 15(gs_ub) + 22: 12(int) AtomicIAdd 14(gs_ua) 17 18 21 + Store 20(out_u1) 22 + 23: 12(int) Load 15(gs_ub) + 24: 2 AtomicAnd 14(gs_ua) 17 18 23 + 25: 12(int) Load 15(gs_ub) + 26: 12(int) AtomicAnd 14(gs_ua) 17 18 25 + Store 20(out_u1) 26 + 27: 12(int) Load 15(gs_ub) + 29: 12(int) Load 28(gs_uc) + 30: 12(int) AtomicCompareExchange 14(gs_ua) 17 18 18 29 27 + Store 20(out_u1) 30 + 31: 12(int) Load 15(gs_ub) + 32: 12(int) AtomicExchange 14(gs_ua) 17 18 31 + Store 20(out_u1) 32 + 33: 12(int) Load 15(gs_ub) + 34: 2 AtomicSMax 14(gs_ua) 17 18 33 + 35: 12(int) Load 15(gs_ub) + 36: 12(int) AtomicUMax 14(gs_ua) 17 18 35 + Store 20(out_u1) 36 + 37: 12(int) Load 15(gs_ub) + 38: 2 AtomicSMin 14(gs_ua) 17 18 37 + 39: 12(int) Load 15(gs_ub) + 40: 12(int) AtomicUMin 14(gs_ua) 17 18 39 + Store 20(out_u1) 40 + 41: 12(int) Load 15(gs_ub) + 42: 2 AtomicOr 14(gs_ua) 17 18 41 + 43: 12(int) Load 15(gs_ub) + 44: 12(int) AtomicOr 14(gs_ua) 17 18 43 + Store 20(out_u1) 44 + 45: 12(int) Load 15(gs_ub) + 46: 2 AtomicXor 14(gs_ua) 17 18 45 + 47: 12(int) Load 15(gs_ub) + 48: 12(int) AtomicXor 14(gs_ua) 17 18 47 + Store 20(out_u1) 48 + ReturnValue 49 + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index e27b11a3..80ac3dd5 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2,1055 +2,1087 @@ hlsl.intrinsics.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:66 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float) -0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) +0:87 Function Definition: PixelShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:17 Function Parameters: +0:17 'inF0' (temp float) +0:17 'inF1' (temp float) +0:17 'inF2' (temp float) +0:17 'inU0' (temp uint) +0:17 'inU1' (temp uint) 0:? Sequence -0:3 all (global bool) -0:3 'inF0' (temp float) -0:4 Absolute value (global float) -0:4 'inF0' (temp float) -0:5 arc cosine (global float) -0:5 'inF0' (temp float) -0:6 any (global bool) -0:6 'inF0' (temp float) -0:7 arc sine (global float) -0:7 'inF0' (temp float) -0:8 arc tangent (global float) -0:8 'inF0' (temp float) -0:9 arc tangent (global float) -0:9 'inF0' (temp float) -0:9 'inF1' (temp float) -0:10 Ceiling (global float) -0:10 'inF0' (temp float) -0:11 clamp (global float) -0:11 'inF0' (temp float) -0:11 'inF1' (temp float) -0:11 'inF2' (temp float) -0:12 Test condition and select (temp void) -0:12 Condition -0:12 Compare Less Than (temp bool) -0:12 'inF0' (temp float) -0:12 Constant: -0:12 0.000000 -0:12 true case -0:12 Branch: Kill -0:13 cosine (global float) -0:13 'inF0' (temp float) -0:14 hyp. cosine (global float) -0:14 'inF0' (temp float) -0:15 bitCount (global uint) -0:15 Constant: -0:15 7 (const uint) -0:16 dPdx (global float) -0:16 'inF0' (temp float) -0:17 dPdxCoarse (global float) -0:17 'inF0' (temp float) -0:18 dPdxFine (global float) -0:18 'inF0' (temp float) -0:19 dPdy (global float) -0:19 'inF0' (temp float) -0:20 dPdyCoarse (global float) +0:20 all (global bool) 0:20 'inF0' (temp float) -0:21 dPdyFine (global float) +0:21 Absolute value (global float) 0:21 'inF0' (temp float) -0:22 degrees (global float) +0:22 arc cosine (global float) 0:22 'inF0' (temp float) -0:26 exp (global float) +0:23 any (global bool) +0:23 'inF0' (temp float) +0:24 arc sine (global float) +0:24 'inF0' (temp float) +0:25 floatBitsToInt (global int) +0:25 'inF0' (temp float) +0:26 floatBitsToUint (global uint) 0:26 'inF0' (temp float) -0:27 exp2 (global float) -0:27 'inF0' (temp float) -0:28 findMSB (global int) -0:28 Constant: -0:28 7 (const int) -0:29 findLSB (global int) -0:29 Constant: -0:29 7 (const int) -0:30 Floor (global float) +0:27 intBitsToFloat (global float) +0:27 'inU0' (temp uint) +0:29 arc tangent (global float) +0:29 'inF0' (temp float) +0:30 arc tangent (global float) 0:30 'inF0' (temp float) -0:32 mod (global float) +0:30 'inF1' (temp float) +0:31 Ceiling (global float) +0:31 'inF0' (temp float) +0:32 clamp (global float) 0:32 'inF0' (temp float) 0:32 'inF1' (temp float) -0:33 Fraction (global float) -0:33 'inF0' (temp float) -0:34 frexp (global float) +0:32 'inF2' (temp float) +0:33 Test condition and select (temp void) +0:33 Condition +0:33 Compare Less Than (temp bool) +0:33 'inF0' (temp float) +0:33 Constant: +0:33 0.000000 +0:33 true case +0:33 Branch: Kill +0:34 cosine (global float) 0:34 'inF0' (temp float) -0:34 'inF1' (temp float) -0:35 fwidth (global float) +0:35 hyp. cosine (global float) 0:35 'inF0' (temp float) -0:36 isinf (global bool) -0:36 'inF0' (temp float) -0:37 isnan (global bool) +0:36 bitCount (global uint) +0:36 Constant: +0:36 7 (const uint) +0:37 dPdx (global float) 0:37 'inF0' (temp float) -0:38 ldexp (global float) +0:38 dPdxCoarse (global float) 0:38 'inF0' (temp float) -0:38 'inF1' (temp float) -0:39 log (global float) +0:39 dPdxFine (global float) 0:39 'inF0' (temp float) -0:40 component-wise multiply (temp float) -0:40 log2 (temp float) -0:40 'inF0' (temp float) -0:40 Constant: -0:40 0.301030 -0:41 log2 (global float) +0:40 dPdy (global float) +0:40 'inF0' (temp float) +0:41 dPdyCoarse (global float) 0:41 'inF0' (temp float) -0:42 max (global float) +0:42 dPdyFine (global float) 0:42 'inF0' (temp float) -0:42 'inF1' (temp float) -0:43 min (global float) +0:43 degrees (global float) 0:43 'inF0' (temp float) -0:43 'inF1' (temp float) -0:44 pow (global float) -0:44 'inF0' (temp float) -0:44 'inF1' (temp float) -0:45 radians (global float) -0:45 'inF0' (temp float) -0:46 divide (temp float) -0:46 Constant: -0:46 1.000000 -0:46 'inF0' (temp float) -0:47 bitFieldReverse (global uint) -0:47 Constant: -0:47 2 (const uint) -0:48 roundEven (global float) +0:47 exp (global float) +0:47 'inF0' (temp float) +0:48 exp2 (global float) 0:48 'inF0' (temp float) -0:49 inverse sqrt (global float) -0:49 'inF0' (temp float) -0:50 clamp (global float) -0:50 'inF0' (temp float) +0:49 findMSB (global int) +0:49 Constant: +0:49 7 (const int) +0:50 findLSB (global int) 0:50 Constant: -0:50 0.000000 -0:50 Constant: -0:50 1.000000 -0:51 Sign (global float) +0:50 7 (const int) +0:51 Floor (global float) 0:51 'inF0' (temp float) -0:52 sine (global float) -0:52 'inF0' (temp float) -0:53 Sequence -0:53 move second child to first child (temp float) -0:53 'inF1' (temp float) -0:53 sine (temp float) -0:53 'inF0' (temp float) -0:53 move second child to first child (temp float) -0:53 'inF2' (temp float) -0:53 cosine (temp float) -0:53 'inF0' (temp float) -0:54 hyp. sine (global float) +0:53 mod (global float) +0:53 'inF0' (temp float) +0:53 'inF1' (temp float) +0:54 Fraction (global float) 0:54 'inF0' (temp float) -0:55 smoothstep (global float) +0:55 frexp (global float) 0:55 'inF0' (temp float) 0:55 'inF1' (temp float) -0:55 'inF2' (temp float) -0:56 sqrt (global float) +0:56 fwidth (global float) 0:56 'inF0' (temp float) -0:57 step (global float) +0:57 isinf (global bool) 0:57 'inF0' (temp float) -0:57 'inF1' (temp float) -0:58 tangent (global float) +0:58 isnan (global bool) 0:58 'inF0' (temp float) -0:59 hyp. tangent (global float) +0:59 ldexp (global float) 0:59 'inF0' (temp float) -0:61 trunc (global float) -0:61 'inF0' (temp float) -0:63 Branch: Return with expression -0:63 Constant: -0:63 0.000000 -0:72 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:67 Function Parameters: -0:67 'inF0' (temp 1-component vector of float) -0:67 'inF1' (temp 1-component vector of float) -0:67 'inF2' (temp 1-component vector of float) +0:59 'inF1' (temp float) +0:60 log (global float) +0:60 'inF0' (temp float) +0:61 component-wise multiply (temp float) +0:61 log2 (temp float) +0:61 'inF0' (temp float) +0:61 Constant: +0:61 0.301030 +0:62 log2 (global float) +0:62 'inF0' (temp float) +0:63 max (global float) +0:63 'inF0' (temp float) +0:63 'inF1' (temp float) +0:64 min (global float) +0:64 'inF0' (temp float) +0:64 'inF1' (temp float) +0:65 pow (global float) +0:65 'inF0' (temp float) +0:65 'inF1' (temp float) +0:66 radians (global float) +0:66 'inF0' (temp float) +0:67 divide (temp float) +0:67 Constant: +0:67 1.000000 +0:67 'inF0' (temp float) +0:68 bitFieldReverse (global uint) +0:68 Constant: +0:68 2 (const uint) +0:69 roundEven (global float) +0:69 'inF0' (temp float) +0:70 inverse sqrt (global float) +0:70 'inF0' (temp float) +0:71 clamp (temp float) +0:71 'inF0' (temp float) +0:71 Constant: +0:71 0.000000 +0:71 Constant: +0:71 1.000000 +0:72 Sign (global float) +0:72 'inF0' (temp float) +0:73 sine (global float) +0:73 'inF0' (temp float) +0:74 Sequence +0:74 move second child to first child (temp float) +0:74 'inF1' (temp float) +0:74 sine (temp float) +0:74 'inF0' (temp float) +0:74 move second child to first child (temp float) +0:74 'inF2' (temp float) +0:74 cosine (temp float) +0:74 'inF0' (temp float) +0:75 hyp. sine (global float) +0:75 'inF0' (temp float) +0:76 smoothstep (global float) +0:76 'inF0' (temp float) +0:76 'inF1' (temp float) +0:76 'inF2' (temp float) +0:77 sqrt (global float) +0:77 'inF0' (temp float) +0:78 step (global float) +0:78 'inF0' (temp float) +0:78 'inF1' (temp float) +0:79 tangent (global float) +0:79 'inF0' (temp float) +0:80 hyp. tangent (global float) +0:80 'inF0' (temp float) +0:82 trunc (global float) +0:82 'inF0' (temp float) +0:84 Branch: Return with expression +0:84 Constant: +0:84 0.000000 +0:93 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:88 Function Parameters: +0:88 'inF0' (temp 1-component vector of float) +0:88 'inF1' (temp 1-component vector of float) +0:88 'inF2' (temp 1-component vector of float) 0:? Sequence -0:69 Branch: Return with expression -0:69 Constant: -0:69 0.000000 -0:145 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) -0:73 Function Parameters: -0:73 'inF0' (temp 2-component vector of float) -0:73 'inF1' (temp 2-component vector of float) -0:73 'inF2' (temp 2-component vector of float) +0:90 Branch: Return with expression +0:90 Constant: +0:90 0.000000 +0:172 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:94 Function Parameters: +0:94 'inF0' (temp 2-component vector of float) +0:94 'inF1' (temp 2-component vector of float) +0:94 'inF2' (temp 2-component vector of float) +0:94 'inU0' (temp 2-component vector of uint) +0:94 'inU1' (temp 2-component vector of uint) 0:? Sequence -0:74 all (global bool) -0:74 'inF0' (temp 2-component vector of float) -0:75 Absolute value (global 2-component vector of float) -0:75 'inF0' (temp 2-component vector of float) -0:76 arc cosine (global 2-component vector of float) -0:76 'inF0' (temp 2-component vector of float) -0:77 any (global bool) -0:77 'inF0' (temp 2-component vector of float) -0:78 arc sine (global 2-component vector of float) -0:78 'inF0' (temp 2-component vector of float) -0:79 arc tangent (global 2-component vector of float) -0:79 'inF0' (temp 2-component vector of float) -0:80 arc tangent (global 2-component vector of float) -0:80 'inF0' (temp 2-component vector of float) -0:80 'inF1' (temp 2-component vector of float) -0:81 Ceiling (global 2-component vector of float) -0:81 'inF0' (temp 2-component vector of float) -0:82 clamp (global 2-component vector of float) -0:82 'inF0' (temp 2-component vector of float) -0:82 'inF1' (temp 2-component vector of float) -0:82 'inF2' (temp 2-component vector of float) -0:83 Test condition and select (temp void) -0:83 Condition -0:83 any (temp bool) -0:83 Compare Less Than (temp 2-component vector of bool) -0:83 'inF0' (temp 2-component vector of float) -0:83 Constant: -0:83 0.000000 -0:83 0.000000 -0:83 true case -0:83 Branch: Kill -0:84 cosine (global 2-component vector of float) -0:84 'inF0' (temp 2-component vector of float) -0:85 hyp. cosine (global 2-component vector of float) -0:85 'inF0' (temp 2-component vector of float) +0:97 all (global bool) +0:97 'inF0' (temp 2-component vector of float) +0:98 Absolute value (global 2-component vector of float) +0:98 'inF0' (temp 2-component vector of float) +0:99 arc cosine (global 2-component vector of float) +0:99 'inF0' (temp 2-component vector of float) +0:100 any (global bool) +0:100 'inF0' (temp 2-component vector of float) +0:101 arc sine (global 2-component vector of float) +0:101 'inF0' (temp 2-component vector of float) +0:102 floatBitsToInt (global 2-component vector of int) +0:102 'inF0' (temp 2-component vector of float) +0:103 floatBitsToUint (global 2-component vector of uint) +0:103 'inF0' (temp 2-component vector of float) +0:104 intBitsToFloat (global 2-component vector of float) +0:104 'inU0' (temp 2-component vector of uint) +0:106 arc tangent (global 2-component vector of float) +0:106 'inF0' (temp 2-component vector of float) +0:107 arc tangent (global 2-component vector of float) +0:107 'inF0' (temp 2-component vector of float) +0:107 'inF1' (temp 2-component vector of float) +0:108 Ceiling (global 2-component vector of float) +0:108 'inF0' (temp 2-component vector of float) +0:109 clamp (global 2-component vector of float) +0:109 'inF0' (temp 2-component vector of float) +0:109 'inF1' (temp 2-component vector of float) +0:109 'inF2' (temp 2-component vector of float) +0:110 Test condition and select (temp void) +0:110 Condition +0:110 any (temp bool) +0:110 Compare Less Than (temp 2-component vector of bool) +0:110 'inF0' (temp 2-component vector of float) +0:110 Constant: +0:110 0.000000 +0:110 0.000000 +0:110 true case +0:110 Branch: Kill +0:111 cosine (global 2-component vector of float) +0:111 'inF0' (temp 2-component vector of float) +0:112 hyp. cosine (global 2-component vector of float) +0:112 'inF0' (temp 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:87 dPdx (global 2-component vector of float) -0:87 'inF0' (temp 2-component vector of float) -0:88 dPdxCoarse (global 2-component vector of float) -0:88 'inF0' (temp 2-component vector of float) -0:89 dPdxFine (global 2-component vector of float) -0:89 'inF0' (temp 2-component vector of float) -0:90 dPdy (global 2-component vector of float) -0:90 'inF0' (temp 2-component vector of float) -0:91 dPdyCoarse (global 2-component vector of float) -0:91 'inF0' (temp 2-component vector of float) -0:92 dPdyFine (global 2-component vector of float) -0:92 'inF0' (temp 2-component vector of float) -0:93 degrees (global 2-component vector of float) -0:93 'inF0' (temp 2-component vector of float) -0:94 distance (global float) -0:94 'inF0' (temp 2-component vector of float) -0:94 'inF1' (temp 2-component vector of float) -0:95 dot-product (global float) -0:95 'inF0' (temp 2-component vector of float) -0:95 'inF1' (temp 2-component vector of float) -0:99 exp (global 2-component vector of float) -0:99 'inF0' (temp 2-component vector of float) -0:100 exp2 (global 2-component vector of float) -0:100 'inF0' (temp 2-component vector of float) -0:101 face-forward (global 2-component vector of float) -0:101 'inF0' (temp 2-component vector of float) -0:101 'inF1' (temp 2-component vector of float) -0:101 'inF2' (temp 2-component vector of float) -0:102 findMSB (global int) -0:102 Constant: -0:102 7 (const int) -0:103 findLSB (global int) -0:103 Constant: -0:103 7 (const int) -0:104 Floor (global 2-component vector of float) -0:104 'inF0' (temp 2-component vector of float) -0:106 mod (global 2-component vector of float) -0:106 'inF0' (temp 2-component vector of float) -0:106 'inF1' (temp 2-component vector of float) -0:107 Fraction (global 2-component vector of float) -0:107 'inF0' (temp 2-component vector of float) -0:108 frexp (global 2-component vector of float) -0:108 'inF0' (temp 2-component vector of float) -0:108 'inF1' (temp 2-component vector of float) -0:109 fwidth (global 2-component vector of float) -0:109 'inF0' (temp 2-component vector of float) -0:110 isinf (global 2-component vector of bool) -0:110 'inF0' (temp 2-component vector of float) -0:111 isnan (global 2-component vector of bool) -0:111 'inF0' (temp 2-component vector of float) -0:112 ldexp (global 2-component vector of float) -0:112 'inF0' (temp 2-component vector of float) -0:112 'inF1' (temp 2-component vector of float) -0:113 length (global float) -0:113 'inF0' (temp 2-component vector of float) -0:114 log (global 2-component vector of float) +0:114 dPdx (global 2-component vector of float) 0:114 'inF0' (temp 2-component vector of float) -0:115 vector-scale (temp 2-component vector of float) -0:115 log2 (temp 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) -0:115 Constant: -0:115 0.301030 -0:116 log2 (global 2-component vector of float) +0:115 dPdxCoarse (global 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:116 dPdxFine (global 2-component vector of float) 0:116 'inF0' (temp 2-component vector of float) -0:117 max (global 2-component vector of float) +0:117 dPdy (global 2-component vector of float) 0:117 'inF0' (temp 2-component vector of float) -0:117 'inF1' (temp 2-component vector of float) -0:118 min (global 2-component vector of float) +0:118 dPdyCoarse (global 2-component vector of float) 0:118 'inF0' (temp 2-component vector of float) -0:118 'inF1' (temp 2-component vector of float) -0:119 normalize (global 2-component vector of float) +0:119 dPdyFine (global 2-component vector of float) 0:119 'inF0' (temp 2-component vector of float) -0:120 pow (global 2-component vector of float) +0:120 degrees (global 2-component vector of float) 0:120 'inF0' (temp 2-component vector of float) -0:120 'inF1' (temp 2-component vector of float) -0:121 radians (global 2-component vector of float) +0:121 distance (global float) 0:121 'inF0' (temp 2-component vector of float) -0:122 divide (temp 2-component vector of float) -0:122 Constant: -0:122 1.000000 +0:121 'inF1' (temp 2-component vector of float) +0:122 dot-product (global float) 0:122 'inF0' (temp 2-component vector of float) -0:123 reflect (global 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) -0:123 'inF1' (temp 2-component vector of float) -0:124 refract (global 2-component vector of float) -0:124 'inF0' (temp 2-component vector of float) -0:124 'inF1' (temp 2-component vector of float) -0:124 Constant: -0:124 2.000000 +0:122 'inF1' (temp 2-component vector of float) +0:126 exp (global 2-component vector of float) +0:126 'inF0' (temp 2-component vector of float) +0:127 exp2 (global 2-component vector of float) +0:127 'inF0' (temp 2-component vector of float) +0:128 face-forward (global 2-component vector of float) +0:128 'inF0' (temp 2-component vector of float) +0:128 'inF1' (temp 2-component vector of float) +0:128 'inF2' (temp 2-component vector of float) +0:129 findMSB (global int) +0:129 Constant: +0:129 7 (const int) +0:130 findLSB (global int) +0:130 Constant: +0:130 7 (const int) +0:131 Floor (global 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:133 mod (global 2-component vector of float) +0:133 'inF0' (temp 2-component vector of float) +0:133 'inF1' (temp 2-component vector of float) +0:134 Fraction (global 2-component vector of float) +0:134 'inF0' (temp 2-component vector of float) +0:135 frexp (global 2-component vector of float) +0:135 'inF0' (temp 2-component vector of float) +0:135 'inF1' (temp 2-component vector of float) +0:136 fwidth (global 2-component vector of float) +0:136 'inF0' (temp 2-component vector of float) +0:137 isinf (global 2-component vector of bool) +0:137 'inF0' (temp 2-component vector of float) +0:138 isnan (global 2-component vector of bool) +0:138 'inF0' (temp 2-component vector of float) +0:139 ldexp (global 2-component vector of float) +0:139 'inF0' (temp 2-component vector of float) +0:139 'inF1' (temp 2-component vector of float) +0:140 length (global float) +0:140 'inF0' (temp 2-component vector of float) +0:141 log (global 2-component vector of float) +0:141 'inF0' (temp 2-component vector of float) +0:142 vector-scale (temp 2-component vector of float) +0:142 log2 (temp 2-component vector of float) +0:142 'inF0' (temp 2-component vector of float) +0:142 Constant: +0:142 0.301030 +0:143 log2 (global 2-component vector of float) +0:143 'inF0' (temp 2-component vector of float) +0:144 max (global 2-component vector of float) +0:144 'inF0' (temp 2-component vector of float) +0:144 'inF1' (temp 2-component vector of float) +0:145 min (global 2-component vector of float) +0:145 'inF0' (temp 2-component vector of float) +0:145 'inF1' (temp 2-component vector of float) +0:146 normalize (global 2-component vector of float) +0:146 'inF0' (temp 2-component vector of float) +0:147 pow (global 2-component vector of float) +0:147 'inF0' (temp 2-component vector of float) +0:147 'inF1' (temp 2-component vector of float) +0:148 radians (global 2-component vector of float) +0:148 'inF0' (temp 2-component vector of float) +0:149 divide (temp 2-component vector of float) +0:149 Constant: +0:149 1.000000 +0:149 'inF0' (temp 2-component vector of float) +0:150 reflect (global 2-component vector of float) +0:150 'inF0' (temp 2-component vector of float) +0:150 'inF1' (temp 2-component vector of float) +0:151 refract (global 2-component vector of float) +0:151 'inF0' (temp 2-component vector of float) +0:151 'inF1' (temp 2-component vector of float) +0:151 Constant: +0:151 2.000000 0:? bitFieldReverse (global 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:126 roundEven (global 2-component vector of float) -0:126 'inF0' (temp 2-component vector of float) -0:127 inverse sqrt (global 2-component vector of float) -0:127 'inF0' (temp 2-component vector of float) -0:128 clamp (global 2-component vector of float) -0:128 'inF0' (temp 2-component vector of float) -0:128 Constant: -0:128 0.000000 -0:128 Constant: -0:128 1.000000 -0:129 Sign (global 2-component vector of float) -0:129 'inF0' (temp 2-component vector of float) -0:130 sine (global 2-component vector of float) -0:130 'inF0' (temp 2-component vector of float) -0:131 Sequence -0:131 move second child to first child (temp 2-component vector of float) -0:131 'inF1' (temp 2-component vector of float) -0:131 sine (temp 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) -0:131 move second child to first child (temp 2-component vector of float) -0:131 'inF2' (temp 2-component vector of float) -0:131 cosine (temp 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) -0:132 hyp. sine (global 2-component vector of float) -0:132 'inF0' (temp 2-component vector of float) -0:133 smoothstep (global 2-component vector of float) -0:133 'inF0' (temp 2-component vector of float) -0:133 'inF1' (temp 2-component vector of float) -0:133 'inF2' (temp 2-component vector of float) -0:134 sqrt (global 2-component vector of float) -0:134 'inF0' (temp 2-component vector of float) -0:135 step (global 2-component vector of float) -0:135 'inF0' (temp 2-component vector of float) -0:135 'inF1' (temp 2-component vector of float) -0:136 tangent (global 2-component vector of float) -0:136 'inF0' (temp 2-component vector of float) -0:137 hyp. tangent (global 2-component vector of float) -0:137 'inF0' (temp 2-component vector of float) -0:139 trunc (global 2-component vector of float) -0:139 'inF0' (temp 2-component vector of float) -0:142 Branch: Return with expression +0:153 roundEven (global 2-component vector of float) +0:153 'inF0' (temp 2-component vector of float) +0:154 inverse sqrt (global 2-component vector of float) +0:154 'inF0' (temp 2-component vector of float) +0:155 clamp (temp 2-component vector of float) +0:155 'inF0' (temp 2-component vector of float) +0:155 Constant: +0:155 0.000000 +0:155 Constant: +0:155 1.000000 +0:156 Sign (global 2-component vector of float) +0:156 'inF0' (temp 2-component vector of float) +0:157 sine (global 2-component vector of float) +0:157 'inF0' (temp 2-component vector of float) +0:158 Sequence +0:158 move second child to first child (temp 2-component vector of float) +0:158 'inF1' (temp 2-component vector of float) +0:158 sine (temp 2-component vector of float) +0:158 'inF0' (temp 2-component vector of float) +0:158 move second child to first child (temp 2-component vector of float) +0:158 'inF2' (temp 2-component vector of float) +0:158 cosine (temp 2-component vector of float) +0:158 'inF0' (temp 2-component vector of float) +0:159 hyp. sine (global 2-component vector of float) +0:159 'inF0' (temp 2-component vector of float) +0:160 smoothstep (global 2-component vector of float) +0:160 'inF0' (temp 2-component vector of float) +0:160 'inF1' (temp 2-component vector of float) +0:160 'inF2' (temp 2-component vector of float) +0:161 sqrt (global 2-component vector of float) +0:161 'inF0' (temp 2-component vector of float) +0:162 step (global 2-component vector of float) +0:162 'inF0' (temp 2-component vector of float) +0:162 'inF1' (temp 2-component vector of float) +0:163 tangent (global 2-component vector of float) +0:163 'inF0' (temp 2-component vector of float) +0:164 hyp. tangent (global 2-component vector of float) +0:164 'inF0' (temp 2-component vector of float) +0:166 trunc (global 2-component vector of float) +0:166 'inF0' (temp 2-component vector of float) +0:169 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:219 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) -0:146 Function Parameters: -0:146 'inF0' (temp 3-component vector of float) -0:146 'inF1' (temp 3-component vector of float) -0:146 'inF2' (temp 3-component vector of float) +0:252 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:173 Function Parameters: +0:173 'inF0' (temp 3-component vector of float) +0:173 'inF1' (temp 3-component vector of float) +0:173 'inF2' (temp 3-component vector of float) +0:173 'inU0' (temp 3-component vector of uint) +0:173 'inU1' (temp 3-component vector of uint) 0:? Sequence -0:147 all (global bool) -0:147 'inF0' (temp 3-component vector of float) -0:148 Absolute value (global 3-component vector of float) -0:148 'inF0' (temp 3-component vector of float) -0:149 arc cosine (global 3-component vector of float) -0:149 'inF0' (temp 3-component vector of float) -0:150 any (global bool) -0:150 'inF0' (temp 3-component vector of float) -0:151 arc sine (global 3-component vector of float) -0:151 'inF0' (temp 3-component vector of float) -0:152 arc tangent (global 3-component vector of float) -0:152 'inF0' (temp 3-component vector of float) -0:153 arc tangent (global 3-component vector of float) -0:153 'inF0' (temp 3-component vector of float) -0:153 'inF1' (temp 3-component vector of float) -0:154 Ceiling (global 3-component vector of float) -0:154 'inF0' (temp 3-component vector of float) -0:155 clamp (global 3-component vector of float) -0:155 'inF0' (temp 3-component vector of float) -0:155 'inF1' (temp 3-component vector of float) -0:155 'inF2' (temp 3-component vector of float) -0:156 Test condition and select (temp void) -0:156 Condition -0:156 any (temp bool) -0:156 Compare Less Than (temp 3-component vector of bool) -0:156 'inF0' (temp 3-component vector of float) -0:156 Constant: -0:156 0.000000 -0:156 0.000000 -0:156 0.000000 -0:156 true case -0:156 Branch: Kill -0:157 cosine (global 3-component vector of float) -0:157 'inF0' (temp 3-component vector of float) -0:158 hyp. cosine (global 3-component vector of float) -0:158 'inF0' (temp 3-component vector of float) +0:176 all (global bool) +0:176 'inF0' (temp 3-component vector of float) +0:177 Absolute value (global 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) +0:178 arc cosine (global 3-component vector of float) +0:178 'inF0' (temp 3-component vector of float) +0:179 any (global bool) +0:179 'inF0' (temp 3-component vector of float) +0:180 arc sine (global 3-component vector of float) +0:180 'inF0' (temp 3-component vector of float) +0:181 floatBitsToInt (global 3-component vector of int) +0:181 'inF0' (temp 3-component vector of float) +0:182 floatBitsToUint (global 3-component vector of uint) +0:182 'inF0' (temp 3-component vector of float) +0:183 intBitsToFloat (global 3-component vector of float) +0:183 'inU0' (temp 3-component vector of uint) +0:185 arc tangent (global 3-component vector of float) +0:185 'inF0' (temp 3-component vector of float) +0:186 arc tangent (global 3-component vector of float) +0:186 'inF0' (temp 3-component vector of float) +0:186 'inF1' (temp 3-component vector of float) +0:187 Ceiling (global 3-component vector of float) +0:187 'inF0' (temp 3-component vector of float) +0:188 clamp (global 3-component vector of float) +0:188 'inF0' (temp 3-component vector of float) +0:188 'inF1' (temp 3-component vector of float) +0:188 'inF2' (temp 3-component vector of float) +0:189 Test condition and select (temp void) +0:189 Condition +0:189 any (temp bool) +0:189 Compare Less Than (temp 3-component vector of bool) +0:189 'inF0' (temp 3-component vector of float) +0:189 Constant: +0:189 0.000000 +0:189 0.000000 +0:189 0.000000 +0:189 true case +0:189 Branch: Kill +0:190 cosine (global 3-component vector of float) +0:190 'inF0' (temp 3-component vector of float) +0:191 hyp. cosine (global 3-component vector of float) +0:191 'inF0' (temp 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:160 cross-product (global 3-component vector of float) -0:160 'inF0' (temp 3-component vector of float) -0:160 'inF1' (temp 3-component vector of float) -0:161 dPdx (global 3-component vector of float) -0:161 'inF0' (temp 3-component vector of float) -0:162 dPdxCoarse (global 3-component vector of float) -0:162 'inF0' (temp 3-component vector of float) -0:163 dPdxFine (global 3-component vector of float) -0:163 'inF0' (temp 3-component vector of float) -0:164 dPdy (global 3-component vector of float) -0:164 'inF0' (temp 3-component vector of float) -0:165 dPdyCoarse (global 3-component vector of float) -0:165 'inF0' (temp 3-component vector of float) -0:166 dPdyFine (global 3-component vector of float) -0:166 'inF0' (temp 3-component vector of float) -0:167 degrees (global 3-component vector of float) -0:167 'inF0' (temp 3-component vector of float) -0:168 distance (global float) -0:168 'inF0' (temp 3-component vector of float) -0:168 'inF1' (temp 3-component vector of float) -0:169 dot-product (global float) -0:169 'inF0' (temp 3-component vector of float) -0:169 'inF1' (temp 3-component vector of float) -0:173 exp (global 3-component vector of float) -0:173 'inF0' (temp 3-component vector of float) -0:174 exp2 (global 3-component vector of float) -0:174 'inF0' (temp 3-component vector of float) -0:175 face-forward (global 3-component vector of float) -0:175 'inF0' (temp 3-component vector of float) -0:175 'inF1' (temp 3-component vector of float) -0:175 'inF2' (temp 3-component vector of float) -0:176 findMSB (global int) -0:176 Constant: -0:176 7 (const int) -0:177 findLSB (global int) -0:177 Constant: -0:177 7 (const int) -0:178 Floor (global 3-component vector of float) -0:178 'inF0' (temp 3-component vector of float) -0:180 mod (global 3-component vector of float) -0:180 'inF0' (temp 3-component vector of float) -0:180 'inF1' (temp 3-component vector of float) -0:181 Fraction (global 3-component vector of float) -0:181 'inF0' (temp 3-component vector of float) -0:182 frexp (global 3-component vector of float) -0:182 'inF0' (temp 3-component vector of float) -0:182 'inF1' (temp 3-component vector of float) -0:183 fwidth (global 3-component vector of float) -0:183 'inF0' (temp 3-component vector of float) -0:184 isinf (global 3-component vector of bool) -0:184 'inF0' (temp 3-component vector of float) -0:185 isnan (global 3-component vector of bool) -0:185 'inF0' (temp 3-component vector of float) -0:186 ldexp (global 3-component vector of float) -0:186 'inF0' (temp 3-component vector of float) -0:186 'inF1' (temp 3-component vector of float) -0:187 length (global float) -0:187 'inF0' (temp 3-component vector of float) -0:188 log (global 3-component vector of float) -0:188 'inF0' (temp 3-component vector of float) -0:189 vector-scale (temp 3-component vector of float) -0:189 log2 (temp 3-component vector of float) -0:189 'inF0' (temp 3-component vector of float) -0:189 Constant: -0:189 0.301030 -0:190 log2 (global 3-component vector of float) -0:190 'inF0' (temp 3-component vector of float) -0:191 max (global 3-component vector of float) -0:191 'inF0' (temp 3-component vector of float) -0:191 'inF1' (temp 3-component vector of float) -0:192 min (global 3-component vector of float) -0:192 'inF0' (temp 3-component vector of float) -0:192 'inF1' (temp 3-component vector of float) -0:193 normalize (global 3-component vector of float) +0:193 cross-product (global 3-component vector of float) 0:193 'inF0' (temp 3-component vector of float) -0:194 pow (global 3-component vector of float) +0:193 'inF1' (temp 3-component vector of float) +0:194 dPdx (global 3-component vector of float) 0:194 'inF0' (temp 3-component vector of float) -0:194 'inF1' (temp 3-component vector of float) -0:195 radians (global 3-component vector of float) +0:195 dPdxCoarse (global 3-component vector of float) 0:195 'inF0' (temp 3-component vector of float) -0:196 divide (temp 3-component vector of float) -0:196 Constant: -0:196 1.000000 +0:196 dPdxFine (global 3-component vector of float) 0:196 'inF0' (temp 3-component vector of float) -0:197 reflect (global 3-component vector of float) +0:197 dPdy (global 3-component vector of float) 0:197 'inF0' (temp 3-component vector of float) -0:197 'inF1' (temp 3-component vector of float) -0:198 refract (global 3-component vector of float) +0:198 dPdyCoarse (global 3-component vector of float) 0:198 'inF0' (temp 3-component vector of float) -0:198 'inF1' (temp 3-component vector of float) -0:198 Constant: -0:198 2.000000 +0:199 dPdyFine (global 3-component vector of float) +0:199 'inF0' (temp 3-component vector of float) +0:200 degrees (global 3-component vector of float) +0:200 'inF0' (temp 3-component vector of float) +0:201 distance (global float) +0:201 'inF0' (temp 3-component vector of float) +0:201 'inF1' (temp 3-component vector of float) +0:202 dot-product (global float) +0:202 'inF0' (temp 3-component vector of float) +0:202 'inF1' (temp 3-component vector of float) +0:206 exp (global 3-component vector of float) +0:206 'inF0' (temp 3-component vector of float) +0:207 exp2 (global 3-component vector of float) +0:207 'inF0' (temp 3-component vector of float) +0:208 face-forward (global 3-component vector of float) +0:208 'inF0' (temp 3-component vector of float) +0:208 'inF1' (temp 3-component vector of float) +0:208 'inF2' (temp 3-component vector of float) +0:209 findMSB (global int) +0:209 Constant: +0:209 7 (const int) +0:210 findLSB (global int) +0:210 Constant: +0:210 7 (const int) +0:211 Floor (global 3-component vector of float) +0:211 'inF0' (temp 3-component vector of float) +0:213 mod (global 3-component vector of float) +0:213 'inF0' (temp 3-component vector of float) +0:213 'inF1' (temp 3-component vector of float) +0:214 Fraction (global 3-component vector of float) +0:214 'inF0' (temp 3-component vector of float) +0:215 frexp (global 3-component vector of float) +0:215 'inF0' (temp 3-component vector of float) +0:215 'inF1' (temp 3-component vector of float) +0:216 fwidth (global 3-component vector of float) +0:216 'inF0' (temp 3-component vector of float) +0:217 isinf (global 3-component vector of bool) +0:217 'inF0' (temp 3-component vector of float) +0:218 isnan (global 3-component vector of bool) +0:218 'inF0' (temp 3-component vector of float) +0:219 ldexp (global 3-component vector of float) +0:219 'inF0' (temp 3-component vector of float) +0:219 'inF1' (temp 3-component vector of float) +0:220 length (global float) +0:220 'inF0' (temp 3-component vector of float) +0:221 log (global 3-component vector of float) +0:221 'inF0' (temp 3-component vector of float) +0:222 vector-scale (temp 3-component vector of float) +0:222 log2 (temp 3-component vector of float) +0:222 'inF0' (temp 3-component vector of float) +0:222 Constant: +0:222 0.301030 +0:223 log2 (global 3-component vector of float) +0:223 'inF0' (temp 3-component vector of float) +0:224 max (global 3-component vector of float) +0:224 'inF0' (temp 3-component vector of float) +0:224 'inF1' (temp 3-component vector of float) +0:225 min (global 3-component vector of float) +0:225 'inF0' (temp 3-component vector of float) +0:225 'inF1' (temp 3-component vector of float) +0:226 normalize (global 3-component vector of float) +0:226 'inF0' (temp 3-component vector of float) +0:227 pow (global 3-component vector of float) +0:227 'inF0' (temp 3-component vector of float) +0:227 'inF1' (temp 3-component vector of float) +0:228 radians (global 3-component vector of float) +0:228 'inF0' (temp 3-component vector of float) +0:229 divide (temp 3-component vector of float) +0:229 Constant: +0:229 1.000000 +0:229 'inF0' (temp 3-component vector of float) +0:230 reflect (global 3-component vector of float) +0:230 'inF0' (temp 3-component vector of float) +0:230 'inF1' (temp 3-component vector of float) +0:231 refract (global 3-component vector of float) +0:231 'inF0' (temp 3-component vector of float) +0:231 'inF1' (temp 3-component vector of float) +0:231 Constant: +0:231 2.000000 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:200 roundEven (global 3-component vector of float) -0:200 'inF0' (temp 3-component vector of float) -0:201 inverse sqrt (global 3-component vector of float) -0:201 'inF0' (temp 3-component vector of float) -0:202 clamp (global 3-component vector of float) -0:202 'inF0' (temp 3-component vector of float) -0:202 Constant: -0:202 0.000000 -0:202 Constant: -0:202 1.000000 -0:203 Sign (global 3-component vector of float) -0:203 'inF0' (temp 3-component vector of float) -0:204 sine (global 3-component vector of float) -0:204 'inF0' (temp 3-component vector of float) -0:205 Sequence -0:205 move second child to first child (temp 3-component vector of float) -0:205 'inF1' (temp 3-component vector of float) -0:205 sine (temp 3-component vector of float) -0:205 'inF0' (temp 3-component vector of float) -0:205 move second child to first child (temp 3-component vector of float) -0:205 'inF2' (temp 3-component vector of float) -0:205 cosine (temp 3-component vector of float) -0:205 'inF0' (temp 3-component vector of float) -0:206 hyp. sine (global 3-component vector of float) -0:206 'inF0' (temp 3-component vector of float) -0:207 smoothstep (global 3-component vector of float) -0:207 'inF0' (temp 3-component vector of float) -0:207 'inF1' (temp 3-component vector of float) -0:207 'inF2' (temp 3-component vector of float) -0:208 sqrt (global 3-component vector of float) -0:208 'inF0' (temp 3-component vector of float) -0:209 step (global 3-component vector of float) -0:209 'inF0' (temp 3-component vector of float) -0:209 'inF1' (temp 3-component vector of float) -0:210 tangent (global 3-component vector of float) -0:210 'inF0' (temp 3-component vector of float) -0:211 hyp. tangent (global 3-component vector of float) -0:211 'inF0' (temp 3-component vector of float) -0:213 trunc (global 3-component vector of float) -0:213 'inF0' (temp 3-component vector of float) -0:216 Branch: Return with expression +0:233 roundEven (global 3-component vector of float) +0:233 'inF0' (temp 3-component vector of float) +0:234 inverse sqrt (global 3-component vector of float) +0:234 'inF0' (temp 3-component vector of float) +0:235 clamp (temp 3-component vector of float) +0:235 'inF0' (temp 3-component vector of float) +0:235 Constant: +0:235 0.000000 +0:235 Constant: +0:235 1.000000 +0:236 Sign (global 3-component vector of float) +0:236 'inF0' (temp 3-component vector of float) +0:237 sine (global 3-component vector of float) +0:237 'inF0' (temp 3-component vector of float) +0:238 Sequence +0:238 move second child to first child (temp 3-component vector of float) +0:238 'inF1' (temp 3-component vector of float) +0:238 sine (temp 3-component vector of float) +0:238 'inF0' (temp 3-component vector of float) +0:238 move second child to first child (temp 3-component vector of float) +0:238 'inF2' (temp 3-component vector of float) +0:238 cosine (temp 3-component vector of float) +0:238 'inF0' (temp 3-component vector of float) +0:239 hyp. sine (global 3-component vector of float) +0:239 'inF0' (temp 3-component vector of float) +0:240 smoothstep (global 3-component vector of float) +0:240 'inF0' (temp 3-component vector of float) +0:240 'inF1' (temp 3-component vector of float) +0:240 'inF2' (temp 3-component vector of float) +0:241 sqrt (global 3-component vector of float) +0:241 'inF0' (temp 3-component vector of float) +0:242 step (global 3-component vector of float) +0:242 'inF0' (temp 3-component vector of float) +0:242 'inF1' (temp 3-component vector of float) +0:243 tangent (global 3-component vector of float) +0:243 'inF0' (temp 3-component vector of float) +0:244 hyp. tangent (global 3-component vector of float) +0:244 'inF0' (temp 3-component vector of float) +0:246 trunc (global 3-component vector of float) +0:246 'inF0' (temp 3-component vector of float) +0:249 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:349 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) -0:220 Function Parameters: -0:220 'inF0' (temp 4-component vector of float) -0:220 'inF1' (temp 4-component vector of float) -0:220 'inF2' (temp 4-component vector of float) +0:393 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:253 Function Parameters: +0:253 'inF0' (temp 4-component vector of float) +0:253 'inF1' (temp 4-component vector of float) +0:253 'inF2' (temp 4-component vector of float) +0:253 'inU0' (temp 4-component vector of uint) +0:253 'inU1' (temp 4-component vector of uint) 0:? Sequence -0:221 all (global bool) -0:221 'inF0' (temp 4-component vector of float) -0:222 Absolute value (global 4-component vector of float) -0:222 'inF0' (temp 4-component vector of float) -0:223 arc cosine (global 4-component vector of float) -0:223 'inF0' (temp 4-component vector of float) -0:224 any (global bool) -0:224 'inF0' (temp 4-component vector of float) -0:225 arc sine (global 4-component vector of float) -0:225 'inF0' (temp 4-component vector of float) -0:226 arc tangent (global 4-component vector of float) -0:226 'inF0' (temp 4-component vector of float) -0:227 arc tangent (global 4-component vector of float) -0:227 'inF0' (temp 4-component vector of float) -0:227 'inF1' (temp 4-component vector of float) -0:228 Ceiling (global 4-component vector of float) -0:228 'inF0' (temp 4-component vector of float) -0:229 clamp (global 4-component vector of float) -0:229 'inF0' (temp 4-component vector of float) -0:229 'inF1' (temp 4-component vector of float) -0:229 'inF2' (temp 4-component vector of float) -0:230 Test condition and select (temp void) -0:230 Condition -0:230 any (temp bool) -0:230 Compare Less Than (temp 4-component vector of bool) -0:230 'inF0' (temp 4-component vector of float) -0:230 Constant: -0:230 0.000000 -0:230 0.000000 -0:230 0.000000 -0:230 0.000000 -0:230 true case -0:230 Branch: Kill -0:231 cosine (global 4-component vector of float) -0:231 'inF0' (temp 4-component vector of float) -0:232 hyp. cosine (global 4-component vector of float) -0:232 'inF0' (temp 4-component vector of float) +0:256 all (global bool) +0:256 'inF0' (temp 4-component vector of float) +0:257 Absolute value (global 4-component vector of float) +0:257 'inF0' (temp 4-component vector of float) +0:258 arc cosine (global 4-component vector of float) +0:258 'inF0' (temp 4-component vector of float) +0:259 any (global bool) +0:259 'inF0' (temp 4-component vector of float) +0:260 arc sine (global 4-component vector of float) +0:260 'inF0' (temp 4-component vector of float) +0:261 floatBitsToInt (global 4-component vector of int) +0:261 'inF0' (temp 4-component vector of float) +0:262 floatBitsToUint (global 4-component vector of uint) +0:262 'inF0' (temp 4-component vector of float) +0:263 intBitsToFloat (global 4-component vector of float) +0:263 'inU0' (temp 4-component vector of uint) +0:265 arc tangent (global 4-component vector of float) +0:265 'inF0' (temp 4-component vector of float) +0:266 arc tangent (global 4-component vector of float) +0:266 'inF0' (temp 4-component vector of float) +0:266 'inF1' (temp 4-component vector of float) +0:267 Ceiling (global 4-component vector of float) +0:267 'inF0' (temp 4-component vector of float) +0:268 clamp (global 4-component vector of float) +0:268 'inF0' (temp 4-component vector of float) +0:268 'inF1' (temp 4-component vector of float) +0:268 'inF2' (temp 4-component vector of float) +0:269 Test condition and select (temp void) +0:269 Condition +0:269 any (temp bool) +0:269 Compare Less Than (temp 4-component vector of bool) +0:269 'inF0' (temp 4-component vector of float) +0:269 Constant: +0:269 0.000000 +0:269 0.000000 +0:269 0.000000 +0:269 0.000000 +0:269 true case +0:269 Branch: Kill +0:270 cosine (global 4-component vector of float) +0:270 'inF0' (temp 4-component vector of float) +0:271 hyp. cosine (global 4-component vector of float) +0:271 'inF0' (temp 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:234 dPdx (global 4-component vector of float) -0:234 'inF0' (temp 4-component vector of float) -0:235 dPdxCoarse (global 4-component vector of float) -0:235 'inF0' (temp 4-component vector of float) -0:236 dPdxFine (global 4-component vector of float) -0:236 'inF0' (temp 4-component vector of float) -0:237 dPdy (global 4-component vector of float) -0:237 'inF0' (temp 4-component vector of float) -0:238 dPdyCoarse (global 4-component vector of float) -0:238 'inF0' (temp 4-component vector of float) -0:239 dPdyFine (global 4-component vector of float) -0:239 'inF0' (temp 4-component vector of float) -0:240 degrees (global 4-component vector of float) -0:240 'inF0' (temp 4-component vector of float) -0:241 distance (global float) -0:241 'inF0' (temp 4-component vector of float) -0:241 'inF1' (temp 4-component vector of float) -0:242 dot-product (global float) -0:242 'inF0' (temp 4-component vector of float) -0:242 'inF1' (temp 4-component vector of float) -0:243 Construct vec4 (temp float) -0:243 Constant: -0:243 1.000000 -0:243 component-wise multiply (temp float) -0:243 direct index (temp float) -0:243 'inF0' (temp 4-component vector of float) -0:243 Constant: -0:243 1 (const int) -0:243 direct index (temp float) -0:243 'inF1' (temp 4-component vector of float) -0:243 Constant: -0:243 1 (const int) -0:243 direct index (temp float) -0:243 'inF0' (temp 4-component vector of float) -0:243 Constant: -0:243 2 (const int) -0:243 direct index (temp float) -0:243 'inF1' (temp 4-component vector of float) -0:243 Constant: -0:243 3 (const int) -0:247 exp (global 4-component vector of float) -0:247 'inF0' (temp 4-component vector of float) -0:248 exp2 (global 4-component vector of float) -0:248 'inF0' (temp 4-component vector of float) -0:249 face-forward (global 4-component vector of float) -0:249 'inF0' (temp 4-component vector of float) -0:249 'inF1' (temp 4-component vector of float) -0:249 'inF2' (temp 4-component vector of float) -0:250 findMSB (global int) -0:250 Constant: -0:250 7 (const int) -0:251 findLSB (global int) -0:251 Constant: -0:251 7 (const int) -0:252 Floor (global 4-component vector of float) -0:252 'inF0' (temp 4-component vector of float) -0:254 mod (global 4-component vector of float) -0:254 'inF0' (temp 4-component vector of float) -0:254 'inF1' (temp 4-component vector of float) -0:255 Fraction (global 4-component vector of float) -0:255 'inF0' (temp 4-component vector of float) -0:256 frexp (global 4-component vector of float) -0:256 'inF0' (temp 4-component vector of float) -0:256 'inF1' (temp 4-component vector of float) -0:257 fwidth (global 4-component vector of float) -0:257 'inF0' (temp 4-component vector of float) -0:258 isinf (global 4-component vector of bool) -0:258 'inF0' (temp 4-component vector of float) -0:259 isnan (global 4-component vector of bool) -0:259 'inF0' (temp 4-component vector of float) -0:260 ldexp (global 4-component vector of float) -0:260 'inF0' (temp 4-component vector of float) -0:260 'inF1' (temp 4-component vector of float) -0:261 length (global float) -0:261 'inF0' (temp 4-component vector of float) -0:262 log (global 4-component vector of float) -0:262 'inF0' (temp 4-component vector of float) -0:263 vector-scale (temp 4-component vector of float) -0:263 log2 (temp 4-component vector of float) -0:263 'inF0' (temp 4-component vector of float) -0:263 Constant: -0:263 0.301030 -0:264 log2 (global 4-component vector of float) -0:264 'inF0' (temp 4-component vector of float) -0:265 max (global 4-component vector of float) -0:265 'inF0' (temp 4-component vector of float) -0:265 'inF1' (temp 4-component vector of float) -0:266 min (global 4-component vector of float) -0:266 'inF0' (temp 4-component vector of float) -0:266 'inF1' (temp 4-component vector of float) -0:267 normalize (global 4-component vector of float) -0:267 'inF0' (temp 4-component vector of float) -0:268 pow (global 4-component vector of float) -0:268 'inF0' (temp 4-component vector of float) -0:268 'inF1' (temp 4-component vector of float) -0:269 radians (global 4-component vector of float) -0:269 'inF0' (temp 4-component vector of float) -0:270 divide (temp 4-component vector of float) -0:270 Constant: -0:270 1.000000 -0:270 'inF0' (temp 4-component vector of float) -0:271 reflect (global 4-component vector of float) -0:271 'inF0' (temp 4-component vector of float) -0:271 'inF1' (temp 4-component vector of float) -0:272 refract (global 4-component vector of float) -0:272 'inF0' (temp 4-component vector of float) -0:272 'inF1' (temp 4-component vector of float) -0:272 Constant: -0:272 2.000000 +0:273 dPdx (global 4-component vector of float) +0:273 'inF0' (temp 4-component vector of float) +0:274 dPdxCoarse (global 4-component vector of float) +0:274 'inF0' (temp 4-component vector of float) +0:275 dPdxFine (global 4-component vector of float) +0:275 'inF0' (temp 4-component vector of float) +0:276 dPdy (global 4-component vector of float) +0:276 'inF0' (temp 4-component vector of float) +0:277 dPdyCoarse (global 4-component vector of float) +0:277 'inF0' (temp 4-component vector of float) +0:278 dPdyFine (global 4-component vector of float) +0:278 'inF0' (temp 4-component vector of float) +0:279 degrees (global 4-component vector of float) +0:279 'inF0' (temp 4-component vector of float) +0:280 distance (global float) +0:280 'inF0' (temp 4-component vector of float) +0:280 'inF1' (temp 4-component vector of float) +0:281 dot-product (global float) +0:281 'inF0' (temp 4-component vector of float) +0:281 'inF1' (temp 4-component vector of float) +0:282 Construct vec4 (temp float) +0:282 Constant: +0:282 1.000000 +0:282 component-wise multiply (temp float) +0:282 direct index (temp float) +0:282 'inF0' (temp 4-component vector of float) +0:282 Constant: +0:282 1 (const int) +0:282 direct index (temp float) +0:282 'inF1' (temp 4-component vector of float) +0:282 Constant: +0:282 1 (const int) +0:282 direct index (temp float) +0:282 'inF0' (temp 4-component vector of float) +0:282 Constant: +0:282 2 (const int) +0:282 direct index (temp float) +0:282 'inF1' (temp 4-component vector of float) +0:282 Constant: +0:282 3 (const int) +0:286 exp (global 4-component vector of float) +0:286 'inF0' (temp 4-component vector of float) +0:287 exp2 (global 4-component vector of float) +0:287 'inF0' (temp 4-component vector of float) +0:288 face-forward (global 4-component vector of float) +0:288 'inF0' (temp 4-component vector of float) +0:288 'inF1' (temp 4-component vector of float) +0:288 'inF2' (temp 4-component vector of float) +0:289 findMSB (global int) +0:289 Constant: +0:289 7 (const int) +0:290 findLSB (global int) +0:290 Constant: +0:290 7 (const int) +0:291 Floor (global 4-component vector of float) +0:291 'inF0' (temp 4-component vector of float) +0:293 mod (global 4-component vector of float) +0:293 'inF0' (temp 4-component vector of float) +0:293 'inF1' (temp 4-component vector of float) +0:294 Fraction (global 4-component vector of float) +0:294 'inF0' (temp 4-component vector of float) +0:295 frexp (global 4-component vector of float) +0:295 'inF0' (temp 4-component vector of float) +0:295 'inF1' (temp 4-component vector of float) +0:296 fwidth (global 4-component vector of float) +0:296 'inF0' (temp 4-component vector of float) +0:297 isinf (global 4-component vector of bool) +0:297 'inF0' (temp 4-component vector of float) +0:298 isnan (global 4-component vector of bool) +0:298 'inF0' (temp 4-component vector of float) +0:299 ldexp (global 4-component vector of float) +0:299 'inF0' (temp 4-component vector of float) +0:299 'inF1' (temp 4-component vector of float) +0:300 length (global float) +0:300 'inF0' (temp 4-component vector of float) +0:301 log (global 4-component vector of float) +0:301 'inF0' (temp 4-component vector of float) +0:302 vector-scale (temp 4-component vector of float) +0:302 log2 (temp 4-component vector of float) +0:302 'inF0' (temp 4-component vector of float) +0:302 Constant: +0:302 0.301030 +0:303 log2 (global 4-component vector of float) +0:303 'inF0' (temp 4-component vector of float) +0:304 max (global 4-component vector of float) +0:304 'inF0' (temp 4-component vector of float) +0:304 'inF1' (temp 4-component vector of float) +0:305 min (global 4-component vector of float) +0:305 'inF0' (temp 4-component vector of float) +0:305 'inF1' (temp 4-component vector of float) +0:306 normalize (global 4-component vector of float) +0:306 'inF0' (temp 4-component vector of float) +0:307 pow (global 4-component vector of float) +0:307 'inF0' (temp 4-component vector of float) +0:307 'inF1' (temp 4-component vector of float) +0:308 radians (global 4-component vector of float) +0:308 'inF0' (temp 4-component vector of float) +0:309 divide (temp 4-component vector of float) +0:309 Constant: +0:309 1.000000 +0:309 'inF0' (temp 4-component vector of float) +0:310 reflect (global 4-component vector of float) +0:310 'inF0' (temp 4-component vector of float) +0:310 'inF1' (temp 4-component vector of float) +0:311 refract (global 4-component vector of float) +0:311 'inF0' (temp 4-component vector of float) +0:311 'inF1' (temp 4-component vector of float) +0:311 Constant: +0:311 2.000000 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:274 roundEven (global 4-component vector of float) -0:274 'inF0' (temp 4-component vector of float) -0:275 inverse sqrt (global 4-component vector of float) -0:275 'inF0' (temp 4-component vector of float) -0:276 clamp (global 4-component vector of float) -0:276 'inF0' (temp 4-component vector of float) -0:276 Constant: -0:276 0.000000 -0:276 Constant: -0:276 1.000000 -0:277 Sign (global 4-component vector of float) -0:277 'inF0' (temp 4-component vector of float) -0:278 sine (global 4-component vector of float) -0:278 'inF0' (temp 4-component vector of float) -0:279 Sequence -0:279 move second child to first child (temp 4-component vector of float) -0:279 'inF1' (temp 4-component vector of float) -0:279 sine (temp 4-component vector of float) -0:279 'inF0' (temp 4-component vector of float) -0:279 move second child to first child (temp 4-component vector of float) -0:279 'inF2' (temp 4-component vector of float) -0:279 cosine (temp 4-component vector of float) -0:279 'inF0' (temp 4-component vector of float) -0:280 hyp. sine (global 4-component vector of float) -0:280 'inF0' (temp 4-component vector of float) -0:281 smoothstep (global 4-component vector of float) -0:281 'inF0' (temp 4-component vector of float) -0:281 'inF1' (temp 4-component vector of float) -0:281 'inF2' (temp 4-component vector of float) -0:282 sqrt (global 4-component vector of float) -0:282 'inF0' (temp 4-component vector of float) -0:283 step (global 4-component vector of float) -0:283 'inF0' (temp 4-component vector of float) -0:283 'inF1' (temp 4-component vector of float) -0:284 tangent (global 4-component vector of float) -0:284 'inF0' (temp 4-component vector of float) -0:285 hyp. tangent (global 4-component vector of float) -0:285 'inF0' (temp 4-component vector of float) -0:287 trunc (global 4-component vector of float) -0:287 'inF0' (temp 4-component vector of float) -0:290 Branch: Return with expression +0:313 roundEven (global 4-component vector of float) +0:313 'inF0' (temp 4-component vector of float) +0:314 inverse sqrt (global 4-component vector of float) +0:314 'inF0' (temp 4-component vector of float) +0:315 clamp (temp 4-component vector of float) +0:315 'inF0' (temp 4-component vector of float) +0:315 Constant: +0:315 0.000000 +0:315 Constant: +0:315 1.000000 +0:316 Sign (global 4-component vector of float) +0:316 'inF0' (temp 4-component vector of float) +0:317 sine (global 4-component vector of float) +0:317 'inF0' (temp 4-component vector of float) +0:318 Sequence +0:318 move second child to first child (temp 4-component vector of float) +0:318 'inF1' (temp 4-component vector of float) +0:318 sine (temp 4-component vector of float) +0:318 'inF0' (temp 4-component vector of float) +0:318 move second child to first child (temp 4-component vector of float) +0:318 'inF2' (temp 4-component vector of float) +0:318 cosine (temp 4-component vector of float) +0:318 'inF0' (temp 4-component vector of float) +0:319 hyp. sine (global 4-component vector of float) +0:319 'inF0' (temp 4-component vector of float) +0:320 smoothstep (global 4-component vector of float) +0:320 'inF0' (temp 4-component vector of float) +0:320 'inF1' (temp 4-component vector of float) +0:320 'inF2' (temp 4-component vector of float) +0:321 sqrt (global 4-component vector of float) +0:321 'inF0' (temp 4-component vector of float) +0:322 step (global 4-component vector of float) +0:322 'inF0' (temp 4-component vector of float) +0:322 'inF1' (temp 4-component vector of float) +0:323 tangent (global 4-component vector of float) +0:323 'inF0' (temp 4-component vector of float) +0:324 hyp. tangent (global 4-component vector of float) +0:324 'inF0' (temp 4-component vector of float) +0:326 trunc (global 4-component vector of float) +0:326 'inF0' (temp 4-component vector of float) +0:329 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:358 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:350 Function Parameters: -0:350 'inF0' (temp 2X2 matrix of float) -0:350 'inF1' (temp 2X2 matrix of float) -0:350 'inF2' (temp 2X2 matrix of float) +0:402 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:394 Function Parameters: +0:394 'inF0' (temp 2X2 matrix of float) +0:394 'inF1' (temp 2X2 matrix of float) +0:394 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:352 all (global bool) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Absolute value (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 arc cosine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 any (global bool) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 arc sine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 arc tangent (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 arc tangent (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 Ceiling (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Test condition and select (temp void) -0:352 Condition -0:352 any (temp bool) -0:352 Compare Less Than (temp 2X2 matrix of bool) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Constant: -0:352 0.000000 -0:352 0.000000 -0:352 0.000000 -0:352 0.000000 -0:352 true case -0:352 Branch: Kill -0:352 clamp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 'inF2' (temp 2X2 matrix of float) -0:352 cosine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 hyp. cosine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdx (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdxCoarse (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdxFine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdy (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdyCoarse (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdyFine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 degrees (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 determinant (global float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 exp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 exp2 (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 findMSB (global int) -0:352 Constant: -0:352 7 (const int) -0:352 findLSB (global int) -0:352 Constant: -0:352 7 (const int) -0:352 Floor (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 mod (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 Fraction (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 frexp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 fwidth (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 ldexp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 log (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 matrix-scale (temp 2X2 matrix of float) -0:352 log2 (temp 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Constant: -0:352 0.301030 -0:352 log2 (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 max (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 min (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 pow (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 radians (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 roundEven (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 inverse sqrt (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 clamp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Constant: -0:352 0.000000 -0:352 Constant: -0:352 1.000000 -0:352 Sign (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 sine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Sequence -0:352 move second child to first child (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 sine (temp 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 move second child to first child (temp 2X2 matrix of float) -0:352 'inF2' (temp 2X2 matrix of float) -0:352 cosine (temp 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 hyp. sine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 smoothstep (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 'inF2' (temp 2X2 matrix of float) -0:352 sqrt (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 step (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 tangent (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 hyp. tangent (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 transpose (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 trunc (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:355 Branch: Return with expression +0:396 all (global bool) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Absolute value (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 arc cosine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 any (global bool) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 arc sine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 arc tangent (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 arc tangent (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 Ceiling (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Test condition and select (temp void) +0:396 Condition +0:396 any (temp bool) +0:396 Compare Less Than (temp 2X2 matrix of bool) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Constant: +0:396 0.000000 +0:396 0.000000 +0:396 0.000000 +0:396 0.000000 +0:396 true case +0:396 Branch: Kill +0:396 clamp (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF2' (temp 2X2 matrix of float) +0:396 cosine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 hyp. cosine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdx (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdxCoarse (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdxFine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdy (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdyCoarse (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdyFine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 degrees (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 determinant (global float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 exp (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 exp2 (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 findMSB (global int) +0:396 Constant: +0:396 7 (const int) +0:396 findLSB (global int) +0:396 Constant: +0:396 7 (const int) +0:396 Floor (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 mod (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 Fraction (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 frexp (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 fwidth (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 ldexp (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 log (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 matrix-scale (temp 2X2 matrix of float) +0:396 log2 (temp 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Constant: +0:396 0.301030 +0:396 log2 (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 max (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 min (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 pow (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 radians (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 roundEven (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 inverse sqrt (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 clamp (temp 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Constant: +0:396 0.000000 +0:396 Constant: +0:396 1.000000 +0:396 Sign (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 sine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Sequence +0:396 move second child to first child (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 sine (temp 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 move second child to first child (temp 2X2 matrix of float) +0:396 'inF2' (temp 2X2 matrix of float) +0:396 cosine (temp 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 hyp. sine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 smoothstep (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF2' (temp 2X2 matrix of float) +0:396 sqrt (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 step (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 tangent (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 hyp. tangent (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 transpose (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 trunc (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:399 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:367 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:359 Function Parameters: -0:359 'inF0' (temp 3X3 matrix of float) -0:359 'inF1' (temp 3X3 matrix of float) -0:359 'inF2' (temp 3X3 matrix of float) +0:411 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:403 Function Parameters: +0:403 'inF0' (temp 3X3 matrix of float) +0:403 'inF1' (temp 3X3 matrix of float) +0:403 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:361 all (global bool) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Absolute value (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 arc cosine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 any (global bool) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 arc sine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 arc tangent (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 arc tangent (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 Ceiling (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Test condition and select (temp void) -0:361 Condition -0:361 any (temp bool) -0:361 Compare Less Than (temp 3X3 matrix of bool) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Constant: -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 true case -0:361 Branch: Kill -0:361 clamp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 'inF2' (temp 3X3 matrix of float) -0:361 cosine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 hyp. cosine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdx (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdxCoarse (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdxFine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdy (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdyCoarse (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdyFine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 degrees (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 determinant (global float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 exp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 exp2 (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 findMSB (global int) -0:361 Constant: -0:361 7 (const int) -0:361 findLSB (global int) -0:361 Constant: -0:361 7 (const int) -0:361 Floor (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 mod (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 Fraction (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 frexp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 fwidth (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 ldexp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 log (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 matrix-scale (temp 3X3 matrix of float) -0:361 log2 (temp 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Constant: -0:361 0.301030 -0:361 log2 (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 max (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 min (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 pow (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 radians (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 roundEven (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 inverse sqrt (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 clamp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Constant: -0:361 0.000000 -0:361 Constant: -0:361 1.000000 -0:361 Sign (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 sine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Sequence -0:361 move second child to first child (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 sine (temp 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 move second child to first child (temp 3X3 matrix of float) -0:361 'inF2' (temp 3X3 matrix of float) -0:361 cosine (temp 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 hyp. sine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 smoothstep (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 'inF2' (temp 3X3 matrix of float) -0:361 sqrt (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 step (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 tangent (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 hyp. tangent (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 transpose (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 trunc (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:364 Branch: Return with expression +0:405 all (global bool) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Absolute value (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 arc cosine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 any (global bool) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 arc sine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 arc tangent (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 arc tangent (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 Ceiling (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Test condition and select (temp void) +0:405 Condition +0:405 any (temp bool) +0:405 Compare Less Than (temp 3X3 matrix of bool) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Constant: +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 true case +0:405 Branch: Kill +0:405 clamp (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF2' (temp 3X3 matrix of float) +0:405 cosine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 hyp. cosine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdx (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdxCoarse (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdxFine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdy (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdyCoarse (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdyFine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 degrees (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 determinant (global float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 exp (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 exp2 (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 findMSB (global int) +0:405 Constant: +0:405 7 (const int) +0:405 findLSB (global int) +0:405 Constant: +0:405 7 (const int) +0:405 Floor (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 mod (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 Fraction (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 frexp (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 fwidth (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 ldexp (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 log (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 matrix-scale (temp 3X3 matrix of float) +0:405 log2 (temp 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Constant: +0:405 0.301030 +0:405 log2 (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 max (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 min (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 pow (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 radians (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 roundEven (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 inverse sqrt (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 clamp (temp 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Constant: +0:405 0.000000 +0:405 Constant: +0:405 1.000000 +0:405 Sign (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 sine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Sequence +0:405 move second child to first child (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 sine (temp 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 move second child to first child (temp 3X3 matrix of float) +0:405 'inF2' (temp 3X3 matrix of float) +0:405 cosine (temp 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 hyp. sine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 smoothstep (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF2' (temp 3X3 matrix of float) +0:405 sqrt (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 step (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 tangent (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 hyp. tangent (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 transpose (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 trunc (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:408 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -1061,165 +1093,165 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:388 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:368 Function Parameters: -0:368 'inF0' (temp 4X4 matrix of float) -0:368 'inF1' (temp 4X4 matrix of float) -0:368 'inF2' (temp 4X4 matrix of float) +0:432 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:412 Function Parameters: +0:412 'inF0' (temp 4X4 matrix of float) +0:412 'inF1' (temp 4X4 matrix of float) +0:412 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:370 all (global bool) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Absolute value (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 arc cosine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 any (global bool) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 arc sine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 arc tangent (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 arc tangent (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 Ceiling (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Test condition and select (temp void) -0:370 Condition -0:370 any (temp bool) -0:370 Compare Less Than (temp 4X4 matrix of bool) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Constant: -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 true case -0:370 Branch: Kill -0:370 clamp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 'inF2' (temp 4X4 matrix of float) -0:370 cosine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 hyp. cosine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdx (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdxCoarse (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdxFine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdy (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdyCoarse (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdyFine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 degrees (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 determinant (global float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 exp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 exp2 (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 findMSB (global int) -0:370 Constant: -0:370 7 (const int) -0:370 findLSB (global int) -0:370 Constant: -0:370 7 (const int) -0:370 Floor (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 mod (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 Fraction (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 frexp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 fwidth (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 ldexp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 log (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 matrix-scale (temp 4X4 matrix of float) -0:370 log2 (temp 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Constant: -0:370 0.301030 -0:370 log2 (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 max (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 min (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 pow (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 radians (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 roundEven (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 inverse sqrt (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 clamp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Constant: -0:370 0.000000 -0:370 Constant: -0:370 1.000000 -0:370 Sign (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 sine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Sequence -0:370 move second child to first child (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 sine (temp 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 move second child to first child (temp 4X4 matrix of float) -0:370 'inF2' (temp 4X4 matrix of float) -0:370 cosine (temp 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 hyp. sine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 smoothstep (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 'inF2' (temp 4X4 matrix of float) -0:370 sqrt (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 step (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 tangent (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 hyp. tangent (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 transpose (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 trunc (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:373 Branch: Return with expression +0:414 all (global bool) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Absolute value (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 arc cosine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 any (global bool) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 arc sine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 arc tangent (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 arc tangent (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 Ceiling (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Test condition and select (temp void) +0:414 Condition +0:414 any (temp bool) +0:414 Compare Less Than (temp 4X4 matrix of bool) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Constant: +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 true case +0:414 Branch: Kill +0:414 clamp (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF2' (temp 4X4 matrix of float) +0:414 cosine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 hyp. cosine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdx (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdxCoarse (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdxFine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdy (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdyCoarse (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdyFine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 degrees (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 determinant (global float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 exp (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 exp2 (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 findMSB (global int) +0:414 Constant: +0:414 7 (const int) +0:414 findLSB (global int) +0:414 Constant: +0:414 7 (const int) +0:414 Floor (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 mod (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 Fraction (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 frexp (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 fwidth (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 ldexp (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 log (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 matrix-scale (temp 4X4 matrix of float) +0:414 log2 (temp 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Constant: +0:414 0.301030 +0:414 log2 (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 max (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 min (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 pow (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 radians (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 roundEven (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 inverse sqrt (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 clamp (temp 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Constant: +0:414 0.000000 +0:414 Constant: +0:414 1.000000 +0:414 Sign (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 sine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Sequence +0:414 move second child to first child (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 sine (temp 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 move second child to first child (temp 4X4 matrix of float) +0:414 'inF2' (temp 4X4 matrix of float) +0:414 cosine (temp 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 hyp. sine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 smoothstep (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF2' (temp 4X4 matrix of float) +0:414 sqrt (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 step (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 tangent (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 hyp. tangent (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 transpose (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 trunc (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:417 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1237,169 +1269,181 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:395 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:391 Function Parameters: -0:391 'inF0' (temp float) -0:391 'inF1' (temp float) -0:391 'inFV0' (temp 2-component vector of float) -0:391 'inFV1' (temp 2-component vector of float) -0:391 'inFM0' (temp 2X2 matrix of float) -0:391 'inFM1' (temp 2X2 matrix of float) +0:439 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:435 Function Parameters: +0:435 'inF0' (temp float) +0:435 'inF1' (temp float) +0:435 'inFV0' (temp 2-component vector of float) +0:435 'inFV1' (temp 2-component vector of float) +0:435 'inFM0' (temp 2X2 matrix of float) +0:435 'inFM1' (temp 2X2 matrix of float) 0:? Sequence -0:392 move second child to first child (temp float) -0:392 'r0' (temp float) -0:392 component-wise multiply (temp float) -0:392 'inF0' (temp float) -0:392 'inF1' (temp float) -0:392 move second child to first child (temp 2-component vector of float) -0:392 'r1' (temp 2-component vector of float) -0:392 vector-scale (temp 2-component vector of float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 'inF0' (temp float) -0:392 move second child to first child (temp 2-component vector of float) -0:392 'r2' (temp 2-component vector of float) -0:392 vector-scale (temp 2-component vector of float) -0:392 'inF0' (temp float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 move second child to first child (temp float) -0:392 'r3' (temp float) -0:392 dot-product (global float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 'inFV1' (temp 2-component vector of float) -0:392 move second child to first child (temp 2-component vector of float) -0:392 'r4' (temp 2-component vector of float) -0:392 matrix-times-vector (temp 2-component vector of float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 move second child to first child (temp 2-component vector of float) -0:392 'r5' (temp 2-component vector of float) -0:392 vector-times-matrix (temp 2-component vector of float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 move second child to first child (temp 2X2 matrix of float) -0:392 'r6' (temp 2X2 matrix of float) -0:392 matrix-scale (temp 2X2 matrix of float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 'inF0' (temp float) -0:392 move second child to first child (temp 2X2 matrix of float) -0:392 'r7' (temp 2X2 matrix of float) -0:392 matrix-scale (temp 2X2 matrix of float) -0:392 'inF0' (temp float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 move second child to first child (temp 2X2 matrix of float) -0:392 'r8' (temp 2X2 matrix of float) -0:392 matrix-multiply (temp 2X2 matrix of float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 'inFM1' (temp 2X2 matrix of float) -0:402 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:398 Function Parameters: -0:398 'inF0' (temp float) -0:398 'inF1' (temp float) -0:398 'inFV0' (temp 3-component vector of float) -0:398 'inFV1' (temp 3-component vector of float) -0:398 'inFM0' (temp 3X3 matrix of float) -0:398 'inFM1' (temp 3X3 matrix of float) +0:436 move second child to first child (temp float) +0:436 'r0' (temp float) +0:436 component-wise multiply (temp float) +0:436 'inF0' (temp float) +0:436 'inF1' (temp float) +0:436 move second child to first child (temp 2-component vector of float) +0:436 'r1' (temp 2-component vector of float) +0:436 vector-scale (temp 2-component vector of float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 'inF0' (temp float) +0:436 move second child to first child (temp 2-component vector of float) +0:436 'r2' (temp 2-component vector of float) +0:436 vector-scale (temp 2-component vector of float) +0:436 'inF0' (temp float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 move second child to first child (temp float) +0:436 'r3' (temp float) +0:436 dot-product (global float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 'inFV1' (temp 2-component vector of float) +0:436 move second child to first child (temp 2-component vector of float) +0:436 'r4' (temp 2-component vector of float) +0:436 matrix-times-vector (temp 2-component vector of float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 move second child to first child (temp 2-component vector of float) +0:436 'r5' (temp 2-component vector of float) +0:436 vector-times-matrix (temp 2-component vector of float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 move second child to first child (temp 2X2 matrix of float) +0:436 'r6' (temp 2X2 matrix of float) +0:436 matrix-scale (temp 2X2 matrix of float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inF0' (temp float) +0:436 move second child to first child (temp 2X2 matrix of float) +0:436 'r7' (temp 2X2 matrix of float) +0:436 matrix-scale (temp 2X2 matrix of float) +0:436 'inF0' (temp float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 move second child to first child (temp 2X2 matrix of float) +0:436 'r8' (temp 2X2 matrix of float) +0:436 matrix-multiply (temp 2X2 matrix of float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inFM1' (temp 2X2 matrix of float) +0:446 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:442 Function Parameters: +0:442 'inF0' (temp float) +0:442 'inF1' (temp float) +0:442 'inFV0' (temp 3-component vector of float) +0:442 'inFV1' (temp 3-component vector of float) +0:442 'inFM0' (temp 3X3 matrix of float) +0:442 'inFM1' (temp 3X3 matrix of float) 0:? Sequence -0:399 move second child to first child (temp float) -0:399 'r0' (temp float) -0:399 component-wise multiply (temp float) -0:399 'inF0' (temp float) -0:399 'inF1' (temp float) -0:399 move second child to first child (temp 3-component vector of float) -0:399 'r1' (temp 3-component vector of float) -0:399 vector-scale (temp 3-component vector of float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 'inF0' (temp float) -0:399 move second child to first child (temp 3-component vector of float) -0:399 'r2' (temp 3-component vector of float) -0:399 vector-scale (temp 3-component vector of float) -0:399 'inF0' (temp float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 move second child to first child (temp float) -0:399 'r3' (temp float) -0:399 dot-product (global float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 'inFV1' (temp 3-component vector of float) -0:399 move second child to first child (temp 3-component vector of float) -0:399 'r4' (temp 3-component vector of float) -0:399 matrix-times-vector (temp 3-component vector of float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 move second child to first child (temp 3-component vector of float) -0:399 'r5' (temp 3-component vector of float) -0:399 vector-times-matrix (temp 3-component vector of float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 move second child to first child (temp 3X3 matrix of float) -0:399 'r6' (temp 3X3 matrix of float) -0:399 matrix-scale (temp 3X3 matrix of float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 'inF0' (temp float) -0:399 move second child to first child (temp 3X3 matrix of float) -0:399 'r7' (temp 3X3 matrix of float) -0:399 matrix-scale (temp 3X3 matrix of float) -0:399 'inF0' (temp float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 move second child to first child (temp 3X3 matrix of float) -0:399 'r8' (temp 3X3 matrix of float) -0:399 matrix-multiply (temp 3X3 matrix of float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 'inFM1' (temp 3X3 matrix of float) -0:408 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:405 Function Parameters: -0:405 'inF0' (temp float) -0:405 'inF1' (temp float) -0:405 'inFV0' (temp 4-component vector of float) -0:405 'inFV1' (temp 4-component vector of float) -0:405 'inFM0' (temp 4X4 matrix of float) -0:405 'inFM1' (temp 4X4 matrix of float) +0:443 move second child to first child (temp float) +0:443 'r0' (temp float) +0:443 component-wise multiply (temp float) +0:443 'inF0' (temp float) +0:443 'inF1' (temp float) +0:443 move second child to first child (temp 3-component vector of float) +0:443 'r1' (temp 3-component vector of float) +0:443 vector-scale (temp 3-component vector of float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 'inF0' (temp float) +0:443 move second child to first child (temp 3-component vector of float) +0:443 'r2' (temp 3-component vector of float) +0:443 vector-scale (temp 3-component vector of float) +0:443 'inF0' (temp float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 move second child to first child (temp float) +0:443 'r3' (temp float) +0:443 dot-product (global float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 'inFV1' (temp 3-component vector of float) +0:443 move second child to first child (temp 3-component vector of float) +0:443 'r4' (temp 3-component vector of float) +0:443 matrix-times-vector (temp 3-component vector of float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 move second child to first child (temp 3-component vector of float) +0:443 'r5' (temp 3-component vector of float) +0:443 vector-times-matrix (temp 3-component vector of float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 move second child to first child (temp 3X3 matrix of float) +0:443 'r6' (temp 3X3 matrix of float) +0:443 matrix-scale (temp 3X3 matrix of float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inF0' (temp float) +0:443 move second child to first child (temp 3X3 matrix of float) +0:443 'r7' (temp 3X3 matrix of float) +0:443 matrix-scale (temp 3X3 matrix of float) +0:443 'inF0' (temp float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 move second child to first child (temp 3X3 matrix of float) +0:443 'r8' (temp 3X3 matrix of float) +0:443 matrix-multiply (temp 3X3 matrix of float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inFM1' (temp 3X3 matrix of float) +0:452 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:449 Function Parameters: +0:449 'inF0' (temp float) +0:449 'inF1' (temp float) +0:449 'inFV0' (temp 4-component vector of float) +0:449 'inFV1' (temp 4-component vector of float) +0:449 'inFM0' (temp 4X4 matrix of float) +0:449 'inFM1' (temp 4X4 matrix of float) 0:? Sequence -0:406 move second child to first child (temp float) -0:406 'r0' (temp float) -0:406 component-wise multiply (temp float) -0:406 'inF0' (temp float) -0:406 'inF1' (temp float) -0:406 move second child to first child (temp 4-component vector of float) -0:406 'r1' (temp 4-component vector of float) -0:406 vector-scale (temp 4-component vector of float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 'inF0' (temp float) -0:406 move second child to first child (temp 4-component vector of float) -0:406 'r2' (temp 4-component vector of float) -0:406 vector-scale (temp 4-component vector of float) -0:406 'inF0' (temp float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 move second child to first child (temp float) -0:406 'r3' (temp float) -0:406 dot-product (global float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 'inFV1' (temp 4-component vector of float) -0:406 move second child to first child (temp 4-component vector of float) -0:406 'r4' (temp 4-component vector of float) -0:406 matrix-times-vector (temp 4-component vector of float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 move second child to first child (temp 4-component vector of float) -0:406 'r5' (temp 4-component vector of float) -0:406 vector-times-matrix (temp 4-component vector of float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 move second child to first child (temp 4X4 matrix of float) -0:406 'r6' (temp 4X4 matrix of float) -0:406 matrix-scale (temp 4X4 matrix of float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 'inF0' (temp float) -0:406 move second child to first child (temp 4X4 matrix of float) -0:406 'r7' (temp 4X4 matrix of float) -0:406 matrix-scale (temp 4X4 matrix of float) -0:406 'inF0' (temp float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 move second child to first child (temp 4X4 matrix of float) -0:406 'r8' (temp 4X4 matrix of float) -0:406 matrix-multiply (temp 4X4 matrix of float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 'inFM1' (temp 4X4 matrix of float) +0:450 move second child to first child (temp float) +0:450 'r0' (temp float) +0:450 component-wise multiply (temp float) +0:450 'inF0' (temp float) +0:450 'inF1' (temp float) +0:450 move second child to first child (temp 4-component vector of float) +0:450 'r1' (temp 4-component vector of float) +0:450 vector-scale (temp 4-component vector of float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 'inF0' (temp float) +0:450 move second child to first child (temp 4-component vector of float) +0:450 'r2' (temp 4-component vector of float) +0:450 vector-scale (temp 4-component vector of float) +0:450 'inF0' (temp float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 move second child to first child (temp float) +0:450 'r3' (temp float) +0:450 dot-product (global float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 'inFV1' (temp 4-component vector of float) +0:450 move second child to first child (temp 4-component vector of float) +0:450 'r4' (temp 4-component vector of float) +0:450 matrix-times-vector (temp 4-component vector of float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 move second child to first child (temp 4-component vector of float) +0:450 'r5' (temp 4-component vector of float) +0:450 vector-times-matrix (temp 4-component vector of float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 move second child to first child (temp 4X4 matrix of float) +0:450 'r6' (temp 4X4 matrix of float) +0:450 matrix-scale (temp 4X4 matrix of float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inF0' (temp float) +0:450 move second child to first child (temp 4X4 matrix of float) +0:450 'r7' (temp 4X4 matrix of float) +0:450 matrix-scale (temp 4X4 matrix of float) +0:450 'inF0' (temp float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 move second child to first child (temp 4X4 matrix of float) +0:450 'r8' (temp 4X4 matrix of float) +0:450 matrix-multiply (temp 4X4 matrix of float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inFM1' (temp 4X4 matrix of float) 0:? Linker Objects +0:? 'gs_ua' (temp uint) +0:? 'gs_ub' (temp uint) +0:? 'gs_uc' (temp uint) +0:? 'gs_ua2' (temp 2-component vector of uint) +0:? 'gs_ub2' (temp 2-component vector of uint) +0:? 'gs_uc2' (temp 2-component vector of uint) +0:? 'gs_ua3' (temp 3-component vector of uint) +0:? 'gs_ub3' (temp 3-component vector of uint) +0:? 'gs_uc3' (temp 3-component vector of uint) +0:? 'gs_ua4' (temp 4-component vector of uint) +0:? 'gs_ub4' (temp 4-component vector of uint) +0:? 'gs_uc4' (temp 4-component vector of uint) Linked fragment stage: @@ -1408,1055 +1452,1087 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:66 Function Definition: PixelShaderFunction(f1;f1;f1; (temp float) -0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) +0:87 Function Definition: PixelShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:17 Function Parameters: +0:17 'inF0' (temp float) +0:17 'inF1' (temp float) +0:17 'inF2' (temp float) +0:17 'inU0' (temp uint) +0:17 'inU1' (temp uint) 0:? Sequence -0:3 all (global bool) -0:3 'inF0' (temp float) -0:4 Absolute value (global float) -0:4 'inF0' (temp float) -0:5 arc cosine (global float) -0:5 'inF0' (temp float) -0:6 any (global bool) -0:6 'inF0' (temp float) -0:7 arc sine (global float) -0:7 'inF0' (temp float) -0:8 arc tangent (global float) -0:8 'inF0' (temp float) -0:9 arc tangent (global float) -0:9 'inF0' (temp float) -0:9 'inF1' (temp float) -0:10 Ceiling (global float) -0:10 'inF0' (temp float) -0:11 clamp (global float) -0:11 'inF0' (temp float) -0:11 'inF1' (temp float) -0:11 'inF2' (temp float) -0:12 Test condition and select (temp void) -0:12 Condition -0:12 Compare Less Than (temp bool) -0:12 'inF0' (temp float) -0:12 Constant: -0:12 0.000000 -0:12 true case -0:12 Branch: Kill -0:13 cosine (global float) -0:13 'inF0' (temp float) -0:14 hyp. cosine (global float) -0:14 'inF0' (temp float) -0:15 bitCount (global uint) -0:15 Constant: -0:15 7 (const uint) -0:16 dPdx (global float) -0:16 'inF0' (temp float) -0:17 dPdxCoarse (global float) -0:17 'inF0' (temp float) -0:18 dPdxFine (global float) -0:18 'inF0' (temp float) -0:19 dPdy (global float) -0:19 'inF0' (temp float) -0:20 dPdyCoarse (global float) +0:20 all (global bool) 0:20 'inF0' (temp float) -0:21 dPdyFine (global float) +0:21 Absolute value (global float) 0:21 'inF0' (temp float) -0:22 degrees (global float) +0:22 arc cosine (global float) 0:22 'inF0' (temp float) -0:26 exp (global float) +0:23 any (global bool) +0:23 'inF0' (temp float) +0:24 arc sine (global float) +0:24 'inF0' (temp float) +0:25 floatBitsToInt (global int) +0:25 'inF0' (temp float) +0:26 floatBitsToUint (global uint) 0:26 'inF0' (temp float) -0:27 exp2 (global float) -0:27 'inF0' (temp float) -0:28 findMSB (global int) -0:28 Constant: -0:28 7 (const int) -0:29 findLSB (global int) -0:29 Constant: -0:29 7 (const int) -0:30 Floor (global float) +0:27 intBitsToFloat (global float) +0:27 'inU0' (temp uint) +0:29 arc tangent (global float) +0:29 'inF0' (temp float) +0:30 arc tangent (global float) 0:30 'inF0' (temp float) -0:32 mod (global float) +0:30 'inF1' (temp float) +0:31 Ceiling (global float) +0:31 'inF0' (temp float) +0:32 clamp (global float) 0:32 'inF0' (temp float) 0:32 'inF1' (temp float) -0:33 Fraction (global float) -0:33 'inF0' (temp float) -0:34 frexp (global float) +0:32 'inF2' (temp float) +0:33 Test condition and select (temp void) +0:33 Condition +0:33 Compare Less Than (temp bool) +0:33 'inF0' (temp float) +0:33 Constant: +0:33 0.000000 +0:33 true case +0:33 Branch: Kill +0:34 cosine (global float) 0:34 'inF0' (temp float) -0:34 'inF1' (temp float) -0:35 fwidth (global float) +0:35 hyp. cosine (global float) 0:35 'inF0' (temp float) -0:36 isinf (global bool) -0:36 'inF0' (temp float) -0:37 isnan (global bool) +0:36 bitCount (global uint) +0:36 Constant: +0:36 7 (const uint) +0:37 dPdx (global float) 0:37 'inF0' (temp float) -0:38 ldexp (global float) +0:38 dPdxCoarse (global float) 0:38 'inF0' (temp float) -0:38 'inF1' (temp float) -0:39 log (global float) +0:39 dPdxFine (global float) 0:39 'inF0' (temp float) -0:40 component-wise multiply (temp float) -0:40 log2 (temp float) -0:40 'inF0' (temp float) -0:40 Constant: -0:40 0.301030 -0:41 log2 (global float) +0:40 dPdy (global float) +0:40 'inF0' (temp float) +0:41 dPdyCoarse (global float) 0:41 'inF0' (temp float) -0:42 max (global float) +0:42 dPdyFine (global float) 0:42 'inF0' (temp float) -0:42 'inF1' (temp float) -0:43 min (global float) +0:43 degrees (global float) 0:43 'inF0' (temp float) -0:43 'inF1' (temp float) -0:44 pow (global float) -0:44 'inF0' (temp float) -0:44 'inF1' (temp float) -0:45 radians (global float) -0:45 'inF0' (temp float) -0:46 divide (temp float) -0:46 Constant: -0:46 1.000000 -0:46 'inF0' (temp float) -0:47 bitFieldReverse (global uint) -0:47 Constant: -0:47 2 (const uint) -0:48 roundEven (global float) +0:47 exp (global float) +0:47 'inF0' (temp float) +0:48 exp2 (global float) 0:48 'inF0' (temp float) -0:49 inverse sqrt (global float) -0:49 'inF0' (temp float) -0:50 clamp (global float) -0:50 'inF0' (temp float) +0:49 findMSB (global int) +0:49 Constant: +0:49 7 (const int) +0:50 findLSB (global int) 0:50 Constant: -0:50 0.000000 -0:50 Constant: -0:50 1.000000 -0:51 Sign (global float) +0:50 7 (const int) +0:51 Floor (global float) 0:51 'inF0' (temp float) -0:52 sine (global float) -0:52 'inF0' (temp float) -0:53 Sequence -0:53 move second child to first child (temp float) -0:53 'inF1' (temp float) -0:53 sine (temp float) -0:53 'inF0' (temp float) -0:53 move second child to first child (temp float) -0:53 'inF2' (temp float) -0:53 cosine (temp float) -0:53 'inF0' (temp float) -0:54 hyp. sine (global float) +0:53 mod (global float) +0:53 'inF0' (temp float) +0:53 'inF1' (temp float) +0:54 Fraction (global float) 0:54 'inF0' (temp float) -0:55 smoothstep (global float) +0:55 frexp (global float) 0:55 'inF0' (temp float) 0:55 'inF1' (temp float) -0:55 'inF2' (temp float) -0:56 sqrt (global float) +0:56 fwidth (global float) 0:56 'inF0' (temp float) -0:57 step (global float) +0:57 isinf (global bool) 0:57 'inF0' (temp float) -0:57 'inF1' (temp float) -0:58 tangent (global float) +0:58 isnan (global bool) 0:58 'inF0' (temp float) -0:59 hyp. tangent (global float) +0:59 ldexp (global float) 0:59 'inF0' (temp float) -0:61 trunc (global float) -0:61 'inF0' (temp float) -0:63 Branch: Return with expression -0:63 Constant: -0:63 0.000000 -0:72 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:67 Function Parameters: -0:67 'inF0' (temp 1-component vector of float) -0:67 'inF1' (temp 1-component vector of float) -0:67 'inF2' (temp 1-component vector of float) +0:59 'inF1' (temp float) +0:60 log (global float) +0:60 'inF0' (temp float) +0:61 component-wise multiply (temp float) +0:61 log2 (temp float) +0:61 'inF0' (temp float) +0:61 Constant: +0:61 0.301030 +0:62 log2 (global float) +0:62 'inF0' (temp float) +0:63 max (global float) +0:63 'inF0' (temp float) +0:63 'inF1' (temp float) +0:64 min (global float) +0:64 'inF0' (temp float) +0:64 'inF1' (temp float) +0:65 pow (global float) +0:65 'inF0' (temp float) +0:65 'inF1' (temp float) +0:66 radians (global float) +0:66 'inF0' (temp float) +0:67 divide (temp float) +0:67 Constant: +0:67 1.000000 +0:67 'inF0' (temp float) +0:68 bitFieldReverse (global uint) +0:68 Constant: +0:68 2 (const uint) +0:69 roundEven (global float) +0:69 'inF0' (temp float) +0:70 inverse sqrt (global float) +0:70 'inF0' (temp float) +0:71 clamp (temp float) +0:71 'inF0' (temp float) +0:71 Constant: +0:71 0.000000 +0:71 Constant: +0:71 1.000000 +0:72 Sign (global float) +0:72 'inF0' (temp float) +0:73 sine (global float) +0:73 'inF0' (temp float) +0:74 Sequence +0:74 move second child to first child (temp float) +0:74 'inF1' (temp float) +0:74 sine (temp float) +0:74 'inF0' (temp float) +0:74 move second child to first child (temp float) +0:74 'inF2' (temp float) +0:74 cosine (temp float) +0:74 'inF0' (temp float) +0:75 hyp. sine (global float) +0:75 'inF0' (temp float) +0:76 smoothstep (global float) +0:76 'inF0' (temp float) +0:76 'inF1' (temp float) +0:76 'inF2' (temp float) +0:77 sqrt (global float) +0:77 'inF0' (temp float) +0:78 step (global float) +0:78 'inF0' (temp float) +0:78 'inF1' (temp float) +0:79 tangent (global float) +0:79 'inF0' (temp float) +0:80 hyp. tangent (global float) +0:80 'inF0' (temp float) +0:82 trunc (global float) +0:82 'inF0' (temp float) +0:84 Branch: Return with expression +0:84 Constant: +0:84 0.000000 +0:93 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:88 Function Parameters: +0:88 'inF0' (temp 1-component vector of float) +0:88 'inF1' (temp 1-component vector of float) +0:88 'inF2' (temp 1-component vector of float) 0:? Sequence -0:69 Branch: Return with expression -0:69 Constant: -0:69 0.000000 -0:145 Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) -0:73 Function Parameters: -0:73 'inF0' (temp 2-component vector of float) -0:73 'inF1' (temp 2-component vector of float) -0:73 'inF2' (temp 2-component vector of float) +0:90 Branch: Return with expression +0:90 Constant: +0:90 0.000000 +0:172 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:94 Function Parameters: +0:94 'inF0' (temp 2-component vector of float) +0:94 'inF1' (temp 2-component vector of float) +0:94 'inF2' (temp 2-component vector of float) +0:94 'inU0' (temp 2-component vector of uint) +0:94 'inU1' (temp 2-component vector of uint) 0:? Sequence -0:74 all (global bool) -0:74 'inF0' (temp 2-component vector of float) -0:75 Absolute value (global 2-component vector of float) -0:75 'inF0' (temp 2-component vector of float) -0:76 arc cosine (global 2-component vector of float) -0:76 'inF0' (temp 2-component vector of float) -0:77 any (global bool) -0:77 'inF0' (temp 2-component vector of float) -0:78 arc sine (global 2-component vector of float) -0:78 'inF0' (temp 2-component vector of float) -0:79 arc tangent (global 2-component vector of float) -0:79 'inF0' (temp 2-component vector of float) -0:80 arc tangent (global 2-component vector of float) -0:80 'inF0' (temp 2-component vector of float) -0:80 'inF1' (temp 2-component vector of float) -0:81 Ceiling (global 2-component vector of float) -0:81 'inF0' (temp 2-component vector of float) -0:82 clamp (global 2-component vector of float) -0:82 'inF0' (temp 2-component vector of float) -0:82 'inF1' (temp 2-component vector of float) -0:82 'inF2' (temp 2-component vector of float) -0:83 Test condition and select (temp void) -0:83 Condition -0:83 any (temp bool) -0:83 Compare Less Than (temp 2-component vector of bool) -0:83 'inF0' (temp 2-component vector of float) -0:83 Constant: -0:83 0.000000 -0:83 0.000000 -0:83 true case -0:83 Branch: Kill -0:84 cosine (global 2-component vector of float) -0:84 'inF0' (temp 2-component vector of float) -0:85 hyp. cosine (global 2-component vector of float) -0:85 'inF0' (temp 2-component vector of float) +0:97 all (global bool) +0:97 'inF0' (temp 2-component vector of float) +0:98 Absolute value (global 2-component vector of float) +0:98 'inF0' (temp 2-component vector of float) +0:99 arc cosine (global 2-component vector of float) +0:99 'inF0' (temp 2-component vector of float) +0:100 any (global bool) +0:100 'inF0' (temp 2-component vector of float) +0:101 arc sine (global 2-component vector of float) +0:101 'inF0' (temp 2-component vector of float) +0:102 floatBitsToInt (global 2-component vector of int) +0:102 'inF0' (temp 2-component vector of float) +0:103 floatBitsToUint (global 2-component vector of uint) +0:103 'inF0' (temp 2-component vector of float) +0:104 intBitsToFloat (global 2-component vector of float) +0:104 'inU0' (temp 2-component vector of uint) +0:106 arc tangent (global 2-component vector of float) +0:106 'inF0' (temp 2-component vector of float) +0:107 arc tangent (global 2-component vector of float) +0:107 'inF0' (temp 2-component vector of float) +0:107 'inF1' (temp 2-component vector of float) +0:108 Ceiling (global 2-component vector of float) +0:108 'inF0' (temp 2-component vector of float) +0:109 clamp (global 2-component vector of float) +0:109 'inF0' (temp 2-component vector of float) +0:109 'inF1' (temp 2-component vector of float) +0:109 'inF2' (temp 2-component vector of float) +0:110 Test condition and select (temp void) +0:110 Condition +0:110 any (temp bool) +0:110 Compare Less Than (temp 2-component vector of bool) +0:110 'inF0' (temp 2-component vector of float) +0:110 Constant: +0:110 0.000000 +0:110 0.000000 +0:110 true case +0:110 Branch: Kill +0:111 cosine (global 2-component vector of float) +0:111 'inF0' (temp 2-component vector of float) +0:112 hyp. cosine (global 2-component vector of float) +0:112 'inF0' (temp 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:87 dPdx (global 2-component vector of float) -0:87 'inF0' (temp 2-component vector of float) -0:88 dPdxCoarse (global 2-component vector of float) -0:88 'inF0' (temp 2-component vector of float) -0:89 dPdxFine (global 2-component vector of float) -0:89 'inF0' (temp 2-component vector of float) -0:90 dPdy (global 2-component vector of float) -0:90 'inF0' (temp 2-component vector of float) -0:91 dPdyCoarse (global 2-component vector of float) -0:91 'inF0' (temp 2-component vector of float) -0:92 dPdyFine (global 2-component vector of float) -0:92 'inF0' (temp 2-component vector of float) -0:93 degrees (global 2-component vector of float) -0:93 'inF0' (temp 2-component vector of float) -0:94 distance (global float) -0:94 'inF0' (temp 2-component vector of float) -0:94 'inF1' (temp 2-component vector of float) -0:95 dot-product (global float) -0:95 'inF0' (temp 2-component vector of float) -0:95 'inF1' (temp 2-component vector of float) -0:99 exp (global 2-component vector of float) -0:99 'inF0' (temp 2-component vector of float) -0:100 exp2 (global 2-component vector of float) -0:100 'inF0' (temp 2-component vector of float) -0:101 face-forward (global 2-component vector of float) -0:101 'inF0' (temp 2-component vector of float) -0:101 'inF1' (temp 2-component vector of float) -0:101 'inF2' (temp 2-component vector of float) -0:102 findMSB (global int) -0:102 Constant: -0:102 7 (const int) -0:103 findLSB (global int) -0:103 Constant: -0:103 7 (const int) -0:104 Floor (global 2-component vector of float) -0:104 'inF0' (temp 2-component vector of float) -0:106 mod (global 2-component vector of float) -0:106 'inF0' (temp 2-component vector of float) -0:106 'inF1' (temp 2-component vector of float) -0:107 Fraction (global 2-component vector of float) -0:107 'inF0' (temp 2-component vector of float) -0:108 frexp (global 2-component vector of float) -0:108 'inF0' (temp 2-component vector of float) -0:108 'inF1' (temp 2-component vector of float) -0:109 fwidth (global 2-component vector of float) -0:109 'inF0' (temp 2-component vector of float) -0:110 isinf (global 2-component vector of bool) -0:110 'inF0' (temp 2-component vector of float) -0:111 isnan (global 2-component vector of bool) -0:111 'inF0' (temp 2-component vector of float) -0:112 ldexp (global 2-component vector of float) -0:112 'inF0' (temp 2-component vector of float) -0:112 'inF1' (temp 2-component vector of float) -0:113 length (global float) -0:113 'inF0' (temp 2-component vector of float) -0:114 log (global 2-component vector of float) +0:114 dPdx (global 2-component vector of float) 0:114 'inF0' (temp 2-component vector of float) -0:115 vector-scale (temp 2-component vector of float) -0:115 log2 (temp 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) -0:115 Constant: -0:115 0.301030 -0:116 log2 (global 2-component vector of float) +0:115 dPdxCoarse (global 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:116 dPdxFine (global 2-component vector of float) 0:116 'inF0' (temp 2-component vector of float) -0:117 max (global 2-component vector of float) +0:117 dPdy (global 2-component vector of float) 0:117 'inF0' (temp 2-component vector of float) -0:117 'inF1' (temp 2-component vector of float) -0:118 min (global 2-component vector of float) +0:118 dPdyCoarse (global 2-component vector of float) 0:118 'inF0' (temp 2-component vector of float) -0:118 'inF1' (temp 2-component vector of float) -0:119 normalize (global 2-component vector of float) +0:119 dPdyFine (global 2-component vector of float) 0:119 'inF0' (temp 2-component vector of float) -0:120 pow (global 2-component vector of float) +0:120 degrees (global 2-component vector of float) 0:120 'inF0' (temp 2-component vector of float) -0:120 'inF1' (temp 2-component vector of float) -0:121 radians (global 2-component vector of float) +0:121 distance (global float) 0:121 'inF0' (temp 2-component vector of float) -0:122 divide (temp 2-component vector of float) -0:122 Constant: -0:122 1.000000 +0:121 'inF1' (temp 2-component vector of float) +0:122 dot-product (global float) 0:122 'inF0' (temp 2-component vector of float) -0:123 reflect (global 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) -0:123 'inF1' (temp 2-component vector of float) -0:124 refract (global 2-component vector of float) -0:124 'inF0' (temp 2-component vector of float) -0:124 'inF1' (temp 2-component vector of float) -0:124 Constant: -0:124 2.000000 +0:122 'inF1' (temp 2-component vector of float) +0:126 exp (global 2-component vector of float) +0:126 'inF0' (temp 2-component vector of float) +0:127 exp2 (global 2-component vector of float) +0:127 'inF0' (temp 2-component vector of float) +0:128 face-forward (global 2-component vector of float) +0:128 'inF0' (temp 2-component vector of float) +0:128 'inF1' (temp 2-component vector of float) +0:128 'inF2' (temp 2-component vector of float) +0:129 findMSB (global int) +0:129 Constant: +0:129 7 (const int) +0:130 findLSB (global int) +0:130 Constant: +0:130 7 (const int) +0:131 Floor (global 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:133 mod (global 2-component vector of float) +0:133 'inF0' (temp 2-component vector of float) +0:133 'inF1' (temp 2-component vector of float) +0:134 Fraction (global 2-component vector of float) +0:134 'inF0' (temp 2-component vector of float) +0:135 frexp (global 2-component vector of float) +0:135 'inF0' (temp 2-component vector of float) +0:135 'inF1' (temp 2-component vector of float) +0:136 fwidth (global 2-component vector of float) +0:136 'inF0' (temp 2-component vector of float) +0:137 isinf (global 2-component vector of bool) +0:137 'inF0' (temp 2-component vector of float) +0:138 isnan (global 2-component vector of bool) +0:138 'inF0' (temp 2-component vector of float) +0:139 ldexp (global 2-component vector of float) +0:139 'inF0' (temp 2-component vector of float) +0:139 'inF1' (temp 2-component vector of float) +0:140 length (global float) +0:140 'inF0' (temp 2-component vector of float) +0:141 log (global 2-component vector of float) +0:141 'inF0' (temp 2-component vector of float) +0:142 vector-scale (temp 2-component vector of float) +0:142 log2 (temp 2-component vector of float) +0:142 'inF0' (temp 2-component vector of float) +0:142 Constant: +0:142 0.301030 +0:143 log2 (global 2-component vector of float) +0:143 'inF0' (temp 2-component vector of float) +0:144 max (global 2-component vector of float) +0:144 'inF0' (temp 2-component vector of float) +0:144 'inF1' (temp 2-component vector of float) +0:145 min (global 2-component vector of float) +0:145 'inF0' (temp 2-component vector of float) +0:145 'inF1' (temp 2-component vector of float) +0:146 normalize (global 2-component vector of float) +0:146 'inF0' (temp 2-component vector of float) +0:147 pow (global 2-component vector of float) +0:147 'inF0' (temp 2-component vector of float) +0:147 'inF1' (temp 2-component vector of float) +0:148 radians (global 2-component vector of float) +0:148 'inF0' (temp 2-component vector of float) +0:149 divide (temp 2-component vector of float) +0:149 Constant: +0:149 1.000000 +0:149 'inF0' (temp 2-component vector of float) +0:150 reflect (global 2-component vector of float) +0:150 'inF0' (temp 2-component vector of float) +0:150 'inF1' (temp 2-component vector of float) +0:151 refract (global 2-component vector of float) +0:151 'inF0' (temp 2-component vector of float) +0:151 'inF1' (temp 2-component vector of float) +0:151 Constant: +0:151 2.000000 0:? bitFieldReverse (global 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:126 roundEven (global 2-component vector of float) -0:126 'inF0' (temp 2-component vector of float) -0:127 inverse sqrt (global 2-component vector of float) -0:127 'inF0' (temp 2-component vector of float) -0:128 clamp (global 2-component vector of float) -0:128 'inF0' (temp 2-component vector of float) -0:128 Constant: -0:128 0.000000 -0:128 Constant: -0:128 1.000000 -0:129 Sign (global 2-component vector of float) -0:129 'inF0' (temp 2-component vector of float) -0:130 sine (global 2-component vector of float) -0:130 'inF0' (temp 2-component vector of float) -0:131 Sequence -0:131 move second child to first child (temp 2-component vector of float) -0:131 'inF1' (temp 2-component vector of float) -0:131 sine (temp 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) -0:131 move second child to first child (temp 2-component vector of float) -0:131 'inF2' (temp 2-component vector of float) -0:131 cosine (temp 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) -0:132 hyp. sine (global 2-component vector of float) -0:132 'inF0' (temp 2-component vector of float) -0:133 smoothstep (global 2-component vector of float) -0:133 'inF0' (temp 2-component vector of float) -0:133 'inF1' (temp 2-component vector of float) -0:133 'inF2' (temp 2-component vector of float) -0:134 sqrt (global 2-component vector of float) -0:134 'inF0' (temp 2-component vector of float) -0:135 step (global 2-component vector of float) -0:135 'inF0' (temp 2-component vector of float) -0:135 'inF1' (temp 2-component vector of float) -0:136 tangent (global 2-component vector of float) -0:136 'inF0' (temp 2-component vector of float) -0:137 hyp. tangent (global 2-component vector of float) -0:137 'inF0' (temp 2-component vector of float) -0:139 trunc (global 2-component vector of float) -0:139 'inF0' (temp 2-component vector of float) -0:142 Branch: Return with expression +0:153 roundEven (global 2-component vector of float) +0:153 'inF0' (temp 2-component vector of float) +0:154 inverse sqrt (global 2-component vector of float) +0:154 'inF0' (temp 2-component vector of float) +0:155 clamp (temp 2-component vector of float) +0:155 'inF0' (temp 2-component vector of float) +0:155 Constant: +0:155 0.000000 +0:155 Constant: +0:155 1.000000 +0:156 Sign (global 2-component vector of float) +0:156 'inF0' (temp 2-component vector of float) +0:157 sine (global 2-component vector of float) +0:157 'inF0' (temp 2-component vector of float) +0:158 Sequence +0:158 move second child to first child (temp 2-component vector of float) +0:158 'inF1' (temp 2-component vector of float) +0:158 sine (temp 2-component vector of float) +0:158 'inF0' (temp 2-component vector of float) +0:158 move second child to first child (temp 2-component vector of float) +0:158 'inF2' (temp 2-component vector of float) +0:158 cosine (temp 2-component vector of float) +0:158 'inF0' (temp 2-component vector of float) +0:159 hyp. sine (global 2-component vector of float) +0:159 'inF0' (temp 2-component vector of float) +0:160 smoothstep (global 2-component vector of float) +0:160 'inF0' (temp 2-component vector of float) +0:160 'inF1' (temp 2-component vector of float) +0:160 'inF2' (temp 2-component vector of float) +0:161 sqrt (global 2-component vector of float) +0:161 'inF0' (temp 2-component vector of float) +0:162 step (global 2-component vector of float) +0:162 'inF0' (temp 2-component vector of float) +0:162 'inF1' (temp 2-component vector of float) +0:163 tangent (global 2-component vector of float) +0:163 'inF0' (temp 2-component vector of float) +0:164 hyp. tangent (global 2-component vector of float) +0:164 'inF0' (temp 2-component vector of float) +0:166 trunc (global 2-component vector of float) +0:166 'inF0' (temp 2-component vector of float) +0:169 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:219 Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) -0:146 Function Parameters: -0:146 'inF0' (temp 3-component vector of float) -0:146 'inF1' (temp 3-component vector of float) -0:146 'inF2' (temp 3-component vector of float) +0:252 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:173 Function Parameters: +0:173 'inF0' (temp 3-component vector of float) +0:173 'inF1' (temp 3-component vector of float) +0:173 'inF2' (temp 3-component vector of float) +0:173 'inU0' (temp 3-component vector of uint) +0:173 'inU1' (temp 3-component vector of uint) 0:? Sequence -0:147 all (global bool) -0:147 'inF0' (temp 3-component vector of float) -0:148 Absolute value (global 3-component vector of float) -0:148 'inF0' (temp 3-component vector of float) -0:149 arc cosine (global 3-component vector of float) -0:149 'inF0' (temp 3-component vector of float) -0:150 any (global bool) -0:150 'inF0' (temp 3-component vector of float) -0:151 arc sine (global 3-component vector of float) -0:151 'inF0' (temp 3-component vector of float) -0:152 arc tangent (global 3-component vector of float) -0:152 'inF0' (temp 3-component vector of float) -0:153 arc tangent (global 3-component vector of float) -0:153 'inF0' (temp 3-component vector of float) -0:153 'inF1' (temp 3-component vector of float) -0:154 Ceiling (global 3-component vector of float) -0:154 'inF0' (temp 3-component vector of float) -0:155 clamp (global 3-component vector of float) -0:155 'inF0' (temp 3-component vector of float) -0:155 'inF1' (temp 3-component vector of float) -0:155 'inF2' (temp 3-component vector of float) -0:156 Test condition and select (temp void) -0:156 Condition -0:156 any (temp bool) -0:156 Compare Less Than (temp 3-component vector of bool) -0:156 'inF0' (temp 3-component vector of float) -0:156 Constant: -0:156 0.000000 -0:156 0.000000 -0:156 0.000000 -0:156 true case -0:156 Branch: Kill -0:157 cosine (global 3-component vector of float) -0:157 'inF0' (temp 3-component vector of float) -0:158 hyp. cosine (global 3-component vector of float) -0:158 'inF0' (temp 3-component vector of float) +0:176 all (global bool) +0:176 'inF0' (temp 3-component vector of float) +0:177 Absolute value (global 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) +0:178 arc cosine (global 3-component vector of float) +0:178 'inF0' (temp 3-component vector of float) +0:179 any (global bool) +0:179 'inF0' (temp 3-component vector of float) +0:180 arc sine (global 3-component vector of float) +0:180 'inF0' (temp 3-component vector of float) +0:181 floatBitsToInt (global 3-component vector of int) +0:181 'inF0' (temp 3-component vector of float) +0:182 floatBitsToUint (global 3-component vector of uint) +0:182 'inF0' (temp 3-component vector of float) +0:183 intBitsToFloat (global 3-component vector of float) +0:183 'inU0' (temp 3-component vector of uint) +0:185 arc tangent (global 3-component vector of float) +0:185 'inF0' (temp 3-component vector of float) +0:186 arc tangent (global 3-component vector of float) +0:186 'inF0' (temp 3-component vector of float) +0:186 'inF1' (temp 3-component vector of float) +0:187 Ceiling (global 3-component vector of float) +0:187 'inF0' (temp 3-component vector of float) +0:188 clamp (global 3-component vector of float) +0:188 'inF0' (temp 3-component vector of float) +0:188 'inF1' (temp 3-component vector of float) +0:188 'inF2' (temp 3-component vector of float) +0:189 Test condition and select (temp void) +0:189 Condition +0:189 any (temp bool) +0:189 Compare Less Than (temp 3-component vector of bool) +0:189 'inF0' (temp 3-component vector of float) +0:189 Constant: +0:189 0.000000 +0:189 0.000000 +0:189 0.000000 +0:189 true case +0:189 Branch: Kill +0:190 cosine (global 3-component vector of float) +0:190 'inF0' (temp 3-component vector of float) +0:191 hyp. cosine (global 3-component vector of float) +0:191 'inF0' (temp 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:160 cross-product (global 3-component vector of float) -0:160 'inF0' (temp 3-component vector of float) -0:160 'inF1' (temp 3-component vector of float) -0:161 dPdx (global 3-component vector of float) -0:161 'inF0' (temp 3-component vector of float) -0:162 dPdxCoarse (global 3-component vector of float) -0:162 'inF0' (temp 3-component vector of float) -0:163 dPdxFine (global 3-component vector of float) -0:163 'inF0' (temp 3-component vector of float) -0:164 dPdy (global 3-component vector of float) -0:164 'inF0' (temp 3-component vector of float) -0:165 dPdyCoarse (global 3-component vector of float) -0:165 'inF0' (temp 3-component vector of float) -0:166 dPdyFine (global 3-component vector of float) -0:166 'inF0' (temp 3-component vector of float) -0:167 degrees (global 3-component vector of float) -0:167 'inF0' (temp 3-component vector of float) -0:168 distance (global float) -0:168 'inF0' (temp 3-component vector of float) -0:168 'inF1' (temp 3-component vector of float) -0:169 dot-product (global float) -0:169 'inF0' (temp 3-component vector of float) -0:169 'inF1' (temp 3-component vector of float) -0:173 exp (global 3-component vector of float) -0:173 'inF0' (temp 3-component vector of float) -0:174 exp2 (global 3-component vector of float) -0:174 'inF0' (temp 3-component vector of float) -0:175 face-forward (global 3-component vector of float) -0:175 'inF0' (temp 3-component vector of float) -0:175 'inF1' (temp 3-component vector of float) -0:175 'inF2' (temp 3-component vector of float) -0:176 findMSB (global int) -0:176 Constant: -0:176 7 (const int) -0:177 findLSB (global int) -0:177 Constant: -0:177 7 (const int) -0:178 Floor (global 3-component vector of float) -0:178 'inF0' (temp 3-component vector of float) -0:180 mod (global 3-component vector of float) -0:180 'inF0' (temp 3-component vector of float) -0:180 'inF1' (temp 3-component vector of float) -0:181 Fraction (global 3-component vector of float) -0:181 'inF0' (temp 3-component vector of float) -0:182 frexp (global 3-component vector of float) -0:182 'inF0' (temp 3-component vector of float) -0:182 'inF1' (temp 3-component vector of float) -0:183 fwidth (global 3-component vector of float) -0:183 'inF0' (temp 3-component vector of float) -0:184 isinf (global 3-component vector of bool) -0:184 'inF0' (temp 3-component vector of float) -0:185 isnan (global 3-component vector of bool) -0:185 'inF0' (temp 3-component vector of float) -0:186 ldexp (global 3-component vector of float) -0:186 'inF0' (temp 3-component vector of float) -0:186 'inF1' (temp 3-component vector of float) -0:187 length (global float) -0:187 'inF0' (temp 3-component vector of float) -0:188 log (global 3-component vector of float) -0:188 'inF0' (temp 3-component vector of float) -0:189 vector-scale (temp 3-component vector of float) -0:189 log2 (temp 3-component vector of float) -0:189 'inF0' (temp 3-component vector of float) -0:189 Constant: -0:189 0.301030 -0:190 log2 (global 3-component vector of float) -0:190 'inF0' (temp 3-component vector of float) -0:191 max (global 3-component vector of float) -0:191 'inF0' (temp 3-component vector of float) -0:191 'inF1' (temp 3-component vector of float) -0:192 min (global 3-component vector of float) -0:192 'inF0' (temp 3-component vector of float) -0:192 'inF1' (temp 3-component vector of float) -0:193 normalize (global 3-component vector of float) +0:193 cross-product (global 3-component vector of float) 0:193 'inF0' (temp 3-component vector of float) -0:194 pow (global 3-component vector of float) +0:193 'inF1' (temp 3-component vector of float) +0:194 dPdx (global 3-component vector of float) 0:194 'inF0' (temp 3-component vector of float) -0:194 'inF1' (temp 3-component vector of float) -0:195 radians (global 3-component vector of float) +0:195 dPdxCoarse (global 3-component vector of float) 0:195 'inF0' (temp 3-component vector of float) -0:196 divide (temp 3-component vector of float) -0:196 Constant: -0:196 1.000000 +0:196 dPdxFine (global 3-component vector of float) 0:196 'inF0' (temp 3-component vector of float) -0:197 reflect (global 3-component vector of float) +0:197 dPdy (global 3-component vector of float) 0:197 'inF0' (temp 3-component vector of float) -0:197 'inF1' (temp 3-component vector of float) -0:198 refract (global 3-component vector of float) +0:198 dPdyCoarse (global 3-component vector of float) 0:198 'inF0' (temp 3-component vector of float) -0:198 'inF1' (temp 3-component vector of float) -0:198 Constant: -0:198 2.000000 +0:199 dPdyFine (global 3-component vector of float) +0:199 'inF0' (temp 3-component vector of float) +0:200 degrees (global 3-component vector of float) +0:200 'inF0' (temp 3-component vector of float) +0:201 distance (global float) +0:201 'inF0' (temp 3-component vector of float) +0:201 'inF1' (temp 3-component vector of float) +0:202 dot-product (global float) +0:202 'inF0' (temp 3-component vector of float) +0:202 'inF1' (temp 3-component vector of float) +0:206 exp (global 3-component vector of float) +0:206 'inF0' (temp 3-component vector of float) +0:207 exp2 (global 3-component vector of float) +0:207 'inF0' (temp 3-component vector of float) +0:208 face-forward (global 3-component vector of float) +0:208 'inF0' (temp 3-component vector of float) +0:208 'inF1' (temp 3-component vector of float) +0:208 'inF2' (temp 3-component vector of float) +0:209 findMSB (global int) +0:209 Constant: +0:209 7 (const int) +0:210 findLSB (global int) +0:210 Constant: +0:210 7 (const int) +0:211 Floor (global 3-component vector of float) +0:211 'inF0' (temp 3-component vector of float) +0:213 mod (global 3-component vector of float) +0:213 'inF0' (temp 3-component vector of float) +0:213 'inF1' (temp 3-component vector of float) +0:214 Fraction (global 3-component vector of float) +0:214 'inF0' (temp 3-component vector of float) +0:215 frexp (global 3-component vector of float) +0:215 'inF0' (temp 3-component vector of float) +0:215 'inF1' (temp 3-component vector of float) +0:216 fwidth (global 3-component vector of float) +0:216 'inF0' (temp 3-component vector of float) +0:217 isinf (global 3-component vector of bool) +0:217 'inF0' (temp 3-component vector of float) +0:218 isnan (global 3-component vector of bool) +0:218 'inF0' (temp 3-component vector of float) +0:219 ldexp (global 3-component vector of float) +0:219 'inF0' (temp 3-component vector of float) +0:219 'inF1' (temp 3-component vector of float) +0:220 length (global float) +0:220 'inF0' (temp 3-component vector of float) +0:221 log (global 3-component vector of float) +0:221 'inF0' (temp 3-component vector of float) +0:222 vector-scale (temp 3-component vector of float) +0:222 log2 (temp 3-component vector of float) +0:222 'inF0' (temp 3-component vector of float) +0:222 Constant: +0:222 0.301030 +0:223 log2 (global 3-component vector of float) +0:223 'inF0' (temp 3-component vector of float) +0:224 max (global 3-component vector of float) +0:224 'inF0' (temp 3-component vector of float) +0:224 'inF1' (temp 3-component vector of float) +0:225 min (global 3-component vector of float) +0:225 'inF0' (temp 3-component vector of float) +0:225 'inF1' (temp 3-component vector of float) +0:226 normalize (global 3-component vector of float) +0:226 'inF0' (temp 3-component vector of float) +0:227 pow (global 3-component vector of float) +0:227 'inF0' (temp 3-component vector of float) +0:227 'inF1' (temp 3-component vector of float) +0:228 radians (global 3-component vector of float) +0:228 'inF0' (temp 3-component vector of float) +0:229 divide (temp 3-component vector of float) +0:229 Constant: +0:229 1.000000 +0:229 'inF0' (temp 3-component vector of float) +0:230 reflect (global 3-component vector of float) +0:230 'inF0' (temp 3-component vector of float) +0:230 'inF1' (temp 3-component vector of float) +0:231 refract (global 3-component vector of float) +0:231 'inF0' (temp 3-component vector of float) +0:231 'inF1' (temp 3-component vector of float) +0:231 Constant: +0:231 2.000000 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:200 roundEven (global 3-component vector of float) -0:200 'inF0' (temp 3-component vector of float) -0:201 inverse sqrt (global 3-component vector of float) -0:201 'inF0' (temp 3-component vector of float) -0:202 clamp (global 3-component vector of float) -0:202 'inF0' (temp 3-component vector of float) -0:202 Constant: -0:202 0.000000 -0:202 Constant: -0:202 1.000000 -0:203 Sign (global 3-component vector of float) -0:203 'inF0' (temp 3-component vector of float) -0:204 sine (global 3-component vector of float) -0:204 'inF0' (temp 3-component vector of float) -0:205 Sequence -0:205 move second child to first child (temp 3-component vector of float) -0:205 'inF1' (temp 3-component vector of float) -0:205 sine (temp 3-component vector of float) -0:205 'inF0' (temp 3-component vector of float) -0:205 move second child to first child (temp 3-component vector of float) -0:205 'inF2' (temp 3-component vector of float) -0:205 cosine (temp 3-component vector of float) -0:205 'inF0' (temp 3-component vector of float) -0:206 hyp. sine (global 3-component vector of float) -0:206 'inF0' (temp 3-component vector of float) -0:207 smoothstep (global 3-component vector of float) -0:207 'inF0' (temp 3-component vector of float) -0:207 'inF1' (temp 3-component vector of float) -0:207 'inF2' (temp 3-component vector of float) -0:208 sqrt (global 3-component vector of float) -0:208 'inF0' (temp 3-component vector of float) -0:209 step (global 3-component vector of float) -0:209 'inF0' (temp 3-component vector of float) -0:209 'inF1' (temp 3-component vector of float) -0:210 tangent (global 3-component vector of float) -0:210 'inF0' (temp 3-component vector of float) -0:211 hyp. tangent (global 3-component vector of float) -0:211 'inF0' (temp 3-component vector of float) -0:213 trunc (global 3-component vector of float) -0:213 'inF0' (temp 3-component vector of float) -0:216 Branch: Return with expression +0:233 roundEven (global 3-component vector of float) +0:233 'inF0' (temp 3-component vector of float) +0:234 inverse sqrt (global 3-component vector of float) +0:234 'inF0' (temp 3-component vector of float) +0:235 clamp (temp 3-component vector of float) +0:235 'inF0' (temp 3-component vector of float) +0:235 Constant: +0:235 0.000000 +0:235 Constant: +0:235 1.000000 +0:236 Sign (global 3-component vector of float) +0:236 'inF0' (temp 3-component vector of float) +0:237 sine (global 3-component vector of float) +0:237 'inF0' (temp 3-component vector of float) +0:238 Sequence +0:238 move second child to first child (temp 3-component vector of float) +0:238 'inF1' (temp 3-component vector of float) +0:238 sine (temp 3-component vector of float) +0:238 'inF0' (temp 3-component vector of float) +0:238 move second child to first child (temp 3-component vector of float) +0:238 'inF2' (temp 3-component vector of float) +0:238 cosine (temp 3-component vector of float) +0:238 'inF0' (temp 3-component vector of float) +0:239 hyp. sine (global 3-component vector of float) +0:239 'inF0' (temp 3-component vector of float) +0:240 smoothstep (global 3-component vector of float) +0:240 'inF0' (temp 3-component vector of float) +0:240 'inF1' (temp 3-component vector of float) +0:240 'inF2' (temp 3-component vector of float) +0:241 sqrt (global 3-component vector of float) +0:241 'inF0' (temp 3-component vector of float) +0:242 step (global 3-component vector of float) +0:242 'inF0' (temp 3-component vector of float) +0:242 'inF1' (temp 3-component vector of float) +0:243 tangent (global 3-component vector of float) +0:243 'inF0' (temp 3-component vector of float) +0:244 hyp. tangent (global 3-component vector of float) +0:244 'inF0' (temp 3-component vector of float) +0:246 trunc (global 3-component vector of float) +0:246 'inF0' (temp 3-component vector of float) +0:249 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:349 Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) -0:220 Function Parameters: -0:220 'inF0' (temp 4-component vector of float) -0:220 'inF1' (temp 4-component vector of float) -0:220 'inF2' (temp 4-component vector of float) +0:393 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:253 Function Parameters: +0:253 'inF0' (temp 4-component vector of float) +0:253 'inF1' (temp 4-component vector of float) +0:253 'inF2' (temp 4-component vector of float) +0:253 'inU0' (temp 4-component vector of uint) +0:253 'inU1' (temp 4-component vector of uint) 0:? Sequence -0:221 all (global bool) -0:221 'inF0' (temp 4-component vector of float) -0:222 Absolute value (global 4-component vector of float) -0:222 'inF0' (temp 4-component vector of float) -0:223 arc cosine (global 4-component vector of float) -0:223 'inF0' (temp 4-component vector of float) -0:224 any (global bool) -0:224 'inF0' (temp 4-component vector of float) -0:225 arc sine (global 4-component vector of float) -0:225 'inF0' (temp 4-component vector of float) -0:226 arc tangent (global 4-component vector of float) -0:226 'inF0' (temp 4-component vector of float) -0:227 arc tangent (global 4-component vector of float) -0:227 'inF0' (temp 4-component vector of float) -0:227 'inF1' (temp 4-component vector of float) -0:228 Ceiling (global 4-component vector of float) -0:228 'inF0' (temp 4-component vector of float) -0:229 clamp (global 4-component vector of float) -0:229 'inF0' (temp 4-component vector of float) -0:229 'inF1' (temp 4-component vector of float) -0:229 'inF2' (temp 4-component vector of float) -0:230 Test condition and select (temp void) -0:230 Condition -0:230 any (temp bool) -0:230 Compare Less Than (temp 4-component vector of bool) -0:230 'inF0' (temp 4-component vector of float) -0:230 Constant: -0:230 0.000000 -0:230 0.000000 -0:230 0.000000 -0:230 0.000000 -0:230 true case -0:230 Branch: Kill -0:231 cosine (global 4-component vector of float) -0:231 'inF0' (temp 4-component vector of float) -0:232 hyp. cosine (global 4-component vector of float) -0:232 'inF0' (temp 4-component vector of float) +0:256 all (global bool) +0:256 'inF0' (temp 4-component vector of float) +0:257 Absolute value (global 4-component vector of float) +0:257 'inF0' (temp 4-component vector of float) +0:258 arc cosine (global 4-component vector of float) +0:258 'inF0' (temp 4-component vector of float) +0:259 any (global bool) +0:259 'inF0' (temp 4-component vector of float) +0:260 arc sine (global 4-component vector of float) +0:260 'inF0' (temp 4-component vector of float) +0:261 floatBitsToInt (global 4-component vector of int) +0:261 'inF0' (temp 4-component vector of float) +0:262 floatBitsToUint (global 4-component vector of uint) +0:262 'inF0' (temp 4-component vector of float) +0:263 intBitsToFloat (global 4-component vector of float) +0:263 'inU0' (temp 4-component vector of uint) +0:265 arc tangent (global 4-component vector of float) +0:265 'inF0' (temp 4-component vector of float) +0:266 arc tangent (global 4-component vector of float) +0:266 'inF0' (temp 4-component vector of float) +0:266 'inF1' (temp 4-component vector of float) +0:267 Ceiling (global 4-component vector of float) +0:267 'inF0' (temp 4-component vector of float) +0:268 clamp (global 4-component vector of float) +0:268 'inF0' (temp 4-component vector of float) +0:268 'inF1' (temp 4-component vector of float) +0:268 'inF2' (temp 4-component vector of float) +0:269 Test condition and select (temp void) +0:269 Condition +0:269 any (temp bool) +0:269 Compare Less Than (temp 4-component vector of bool) +0:269 'inF0' (temp 4-component vector of float) +0:269 Constant: +0:269 0.000000 +0:269 0.000000 +0:269 0.000000 +0:269 0.000000 +0:269 true case +0:269 Branch: Kill +0:270 cosine (global 4-component vector of float) +0:270 'inF0' (temp 4-component vector of float) +0:271 hyp. cosine (global 4-component vector of float) +0:271 'inF0' (temp 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:234 dPdx (global 4-component vector of float) -0:234 'inF0' (temp 4-component vector of float) -0:235 dPdxCoarse (global 4-component vector of float) -0:235 'inF0' (temp 4-component vector of float) -0:236 dPdxFine (global 4-component vector of float) -0:236 'inF0' (temp 4-component vector of float) -0:237 dPdy (global 4-component vector of float) -0:237 'inF0' (temp 4-component vector of float) -0:238 dPdyCoarse (global 4-component vector of float) -0:238 'inF0' (temp 4-component vector of float) -0:239 dPdyFine (global 4-component vector of float) -0:239 'inF0' (temp 4-component vector of float) -0:240 degrees (global 4-component vector of float) -0:240 'inF0' (temp 4-component vector of float) -0:241 distance (global float) -0:241 'inF0' (temp 4-component vector of float) -0:241 'inF1' (temp 4-component vector of float) -0:242 dot-product (global float) -0:242 'inF0' (temp 4-component vector of float) -0:242 'inF1' (temp 4-component vector of float) -0:243 Construct vec4 (temp float) -0:243 Constant: -0:243 1.000000 -0:243 component-wise multiply (temp float) -0:243 direct index (temp float) -0:243 'inF0' (temp 4-component vector of float) -0:243 Constant: -0:243 1 (const int) -0:243 direct index (temp float) -0:243 'inF1' (temp 4-component vector of float) -0:243 Constant: -0:243 1 (const int) -0:243 direct index (temp float) -0:243 'inF0' (temp 4-component vector of float) -0:243 Constant: -0:243 2 (const int) -0:243 direct index (temp float) -0:243 'inF1' (temp 4-component vector of float) -0:243 Constant: -0:243 3 (const int) -0:247 exp (global 4-component vector of float) -0:247 'inF0' (temp 4-component vector of float) -0:248 exp2 (global 4-component vector of float) -0:248 'inF0' (temp 4-component vector of float) -0:249 face-forward (global 4-component vector of float) -0:249 'inF0' (temp 4-component vector of float) -0:249 'inF1' (temp 4-component vector of float) -0:249 'inF2' (temp 4-component vector of float) -0:250 findMSB (global int) -0:250 Constant: -0:250 7 (const int) -0:251 findLSB (global int) -0:251 Constant: -0:251 7 (const int) -0:252 Floor (global 4-component vector of float) -0:252 'inF0' (temp 4-component vector of float) -0:254 mod (global 4-component vector of float) -0:254 'inF0' (temp 4-component vector of float) -0:254 'inF1' (temp 4-component vector of float) -0:255 Fraction (global 4-component vector of float) -0:255 'inF0' (temp 4-component vector of float) -0:256 frexp (global 4-component vector of float) -0:256 'inF0' (temp 4-component vector of float) -0:256 'inF1' (temp 4-component vector of float) -0:257 fwidth (global 4-component vector of float) -0:257 'inF0' (temp 4-component vector of float) -0:258 isinf (global 4-component vector of bool) -0:258 'inF0' (temp 4-component vector of float) -0:259 isnan (global 4-component vector of bool) -0:259 'inF0' (temp 4-component vector of float) -0:260 ldexp (global 4-component vector of float) -0:260 'inF0' (temp 4-component vector of float) -0:260 'inF1' (temp 4-component vector of float) -0:261 length (global float) -0:261 'inF0' (temp 4-component vector of float) -0:262 log (global 4-component vector of float) -0:262 'inF0' (temp 4-component vector of float) -0:263 vector-scale (temp 4-component vector of float) -0:263 log2 (temp 4-component vector of float) -0:263 'inF0' (temp 4-component vector of float) -0:263 Constant: -0:263 0.301030 -0:264 log2 (global 4-component vector of float) -0:264 'inF0' (temp 4-component vector of float) -0:265 max (global 4-component vector of float) -0:265 'inF0' (temp 4-component vector of float) -0:265 'inF1' (temp 4-component vector of float) -0:266 min (global 4-component vector of float) -0:266 'inF0' (temp 4-component vector of float) -0:266 'inF1' (temp 4-component vector of float) -0:267 normalize (global 4-component vector of float) -0:267 'inF0' (temp 4-component vector of float) -0:268 pow (global 4-component vector of float) -0:268 'inF0' (temp 4-component vector of float) -0:268 'inF1' (temp 4-component vector of float) -0:269 radians (global 4-component vector of float) -0:269 'inF0' (temp 4-component vector of float) -0:270 divide (temp 4-component vector of float) -0:270 Constant: -0:270 1.000000 -0:270 'inF0' (temp 4-component vector of float) -0:271 reflect (global 4-component vector of float) -0:271 'inF0' (temp 4-component vector of float) -0:271 'inF1' (temp 4-component vector of float) -0:272 refract (global 4-component vector of float) -0:272 'inF0' (temp 4-component vector of float) -0:272 'inF1' (temp 4-component vector of float) -0:272 Constant: -0:272 2.000000 +0:273 dPdx (global 4-component vector of float) +0:273 'inF0' (temp 4-component vector of float) +0:274 dPdxCoarse (global 4-component vector of float) +0:274 'inF0' (temp 4-component vector of float) +0:275 dPdxFine (global 4-component vector of float) +0:275 'inF0' (temp 4-component vector of float) +0:276 dPdy (global 4-component vector of float) +0:276 'inF0' (temp 4-component vector of float) +0:277 dPdyCoarse (global 4-component vector of float) +0:277 'inF0' (temp 4-component vector of float) +0:278 dPdyFine (global 4-component vector of float) +0:278 'inF0' (temp 4-component vector of float) +0:279 degrees (global 4-component vector of float) +0:279 'inF0' (temp 4-component vector of float) +0:280 distance (global float) +0:280 'inF0' (temp 4-component vector of float) +0:280 'inF1' (temp 4-component vector of float) +0:281 dot-product (global float) +0:281 'inF0' (temp 4-component vector of float) +0:281 'inF1' (temp 4-component vector of float) +0:282 Construct vec4 (temp float) +0:282 Constant: +0:282 1.000000 +0:282 component-wise multiply (temp float) +0:282 direct index (temp float) +0:282 'inF0' (temp 4-component vector of float) +0:282 Constant: +0:282 1 (const int) +0:282 direct index (temp float) +0:282 'inF1' (temp 4-component vector of float) +0:282 Constant: +0:282 1 (const int) +0:282 direct index (temp float) +0:282 'inF0' (temp 4-component vector of float) +0:282 Constant: +0:282 2 (const int) +0:282 direct index (temp float) +0:282 'inF1' (temp 4-component vector of float) +0:282 Constant: +0:282 3 (const int) +0:286 exp (global 4-component vector of float) +0:286 'inF0' (temp 4-component vector of float) +0:287 exp2 (global 4-component vector of float) +0:287 'inF0' (temp 4-component vector of float) +0:288 face-forward (global 4-component vector of float) +0:288 'inF0' (temp 4-component vector of float) +0:288 'inF1' (temp 4-component vector of float) +0:288 'inF2' (temp 4-component vector of float) +0:289 findMSB (global int) +0:289 Constant: +0:289 7 (const int) +0:290 findLSB (global int) +0:290 Constant: +0:290 7 (const int) +0:291 Floor (global 4-component vector of float) +0:291 'inF0' (temp 4-component vector of float) +0:293 mod (global 4-component vector of float) +0:293 'inF0' (temp 4-component vector of float) +0:293 'inF1' (temp 4-component vector of float) +0:294 Fraction (global 4-component vector of float) +0:294 'inF0' (temp 4-component vector of float) +0:295 frexp (global 4-component vector of float) +0:295 'inF0' (temp 4-component vector of float) +0:295 'inF1' (temp 4-component vector of float) +0:296 fwidth (global 4-component vector of float) +0:296 'inF0' (temp 4-component vector of float) +0:297 isinf (global 4-component vector of bool) +0:297 'inF0' (temp 4-component vector of float) +0:298 isnan (global 4-component vector of bool) +0:298 'inF0' (temp 4-component vector of float) +0:299 ldexp (global 4-component vector of float) +0:299 'inF0' (temp 4-component vector of float) +0:299 'inF1' (temp 4-component vector of float) +0:300 length (global float) +0:300 'inF0' (temp 4-component vector of float) +0:301 log (global 4-component vector of float) +0:301 'inF0' (temp 4-component vector of float) +0:302 vector-scale (temp 4-component vector of float) +0:302 log2 (temp 4-component vector of float) +0:302 'inF0' (temp 4-component vector of float) +0:302 Constant: +0:302 0.301030 +0:303 log2 (global 4-component vector of float) +0:303 'inF0' (temp 4-component vector of float) +0:304 max (global 4-component vector of float) +0:304 'inF0' (temp 4-component vector of float) +0:304 'inF1' (temp 4-component vector of float) +0:305 min (global 4-component vector of float) +0:305 'inF0' (temp 4-component vector of float) +0:305 'inF1' (temp 4-component vector of float) +0:306 normalize (global 4-component vector of float) +0:306 'inF0' (temp 4-component vector of float) +0:307 pow (global 4-component vector of float) +0:307 'inF0' (temp 4-component vector of float) +0:307 'inF1' (temp 4-component vector of float) +0:308 radians (global 4-component vector of float) +0:308 'inF0' (temp 4-component vector of float) +0:309 divide (temp 4-component vector of float) +0:309 Constant: +0:309 1.000000 +0:309 'inF0' (temp 4-component vector of float) +0:310 reflect (global 4-component vector of float) +0:310 'inF0' (temp 4-component vector of float) +0:310 'inF1' (temp 4-component vector of float) +0:311 refract (global 4-component vector of float) +0:311 'inF0' (temp 4-component vector of float) +0:311 'inF1' (temp 4-component vector of float) +0:311 Constant: +0:311 2.000000 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:274 roundEven (global 4-component vector of float) -0:274 'inF0' (temp 4-component vector of float) -0:275 inverse sqrt (global 4-component vector of float) -0:275 'inF0' (temp 4-component vector of float) -0:276 clamp (global 4-component vector of float) -0:276 'inF0' (temp 4-component vector of float) -0:276 Constant: -0:276 0.000000 -0:276 Constant: -0:276 1.000000 -0:277 Sign (global 4-component vector of float) -0:277 'inF0' (temp 4-component vector of float) -0:278 sine (global 4-component vector of float) -0:278 'inF0' (temp 4-component vector of float) -0:279 Sequence -0:279 move second child to first child (temp 4-component vector of float) -0:279 'inF1' (temp 4-component vector of float) -0:279 sine (temp 4-component vector of float) -0:279 'inF0' (temp 4-component vector of float) -0:279 move second child to first child (temp 4-component vector of float) -0:279 'inF2' (temp 4-component vector of float) -0:279 cosine (temp 4-component vector of float) -0:279 'inF0' (temp 4-component vector of float) -0:280 hyp. sine (global 4-component vector of float) -0:280 'inF0' (temp 4-component vector of float) -0:281 smoothstep (global 4-component vector of float) -0:281 'inF0' (temp 4-component vector of float) -0:281 'inF1' (temp 4-component vector of float) -0:281 'inF2' (temp 4-component vector of float) -0:282 sqrt (global 4-component vector of float) -0:282 'inF0' (temp 4-component vector of float) -0:283 step (global 4-component vector of float) -0:283 'inF0' (temp 4-component vector of float) -0:283 'inF1' (temp 4-component vector of float) -0:284 tangent (global 4-component vector of float) -0:284 'inF0' (temp 4-component vector of float) -0:285 hyp. tangent (global 4-component vector of float) -0:285 'inF0' (temp 4-component vector of float) -0:287 trunc (global 4-component vector of float) -0:287 'inF0' (temp 4-component vector of float) -0:290 Branch: Return with expression +0:313 roundEven (global 4-component vector of float) +0:313 'inF0' (temp 4-component vector of float) +0:314 inverse sqrt (global 4-component vector of float) +0:314 'inF0' (temp 4-component vector of float) +0:315 clamp (temp 4-component vector of float) +0:315 'inF0' (temp 4-component vector of float) +0:315 Constant: +0:315 0.000000 +0:315 Constant: +0:315 1.000000 +0:316 Sign (global 4-component vector of float) +0:316 'inF0' (temp 4-component vector of float) +0:317 sine (global 4-component vector of float) +0:317 'inF0' (temp 4-component vector of float) +0:318 Sequence +0:318 move second child to first child (temp 4-component vector of float) +0:318 'inF1' (temp 4-component vector of float) +0:318 sine (temp 4-component vector of float) +0:318 'inF0' (temp 4-component vector of float) +0:318 move second child to first child (temp 4-component vector of float) +0:318 'inF2' (temp 4-component vector of float) +0:318 cosine (temp 4-component vector of float) +0:318 'inF0' (temp 4-component vector of float) +0:319 hyp. sine (global 4-component vector of float) +0:319 'inF0' (temp 4-component vector of float) +0:320 smoothstep (global 4-component vector of float) +0:320 'inF0' (temp 4-component vector of float) +0:320 'inF1' (temp 4-component vector of float) +0:320 'inF2' (temp 4-component vector of float) +0:321 sqrt (global 4-component vector of float) +0:321 'inF0' (temp 4-component vector of float) +0:322 step (global 4-component vector of float) +0:322 'inF0' (temp 4-component vector of float) +0:322 'inF1' (temp 4-component vector of float) +0:323 tangent (global 4-component vector of float) +0:323 'inF0' (temp 4-component vector of float) +0:324 hyp. tangent (global 4-component vector of float) +0:324 'inF0' (temp 4-component vector of float) +0:326 trunc (global 4-component vector of float) +0:326 'inF0' (temp 4-component vector of float) +0:329 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:358 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:350 Function Parameters: -0:350 'inF0' (temp 2X2 matrix of float) -0:350 'inF1' (temp 2X2 matrix of float) -0:350 'inF2' (temp 2X2 matrix of float) +0:402 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:394 Function Parameters: +0:394 'inF0' (temp 2X2 matrix of float) +0:394 'inF1' (temp 2X2 matrix of float) +0:394 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:352 all (global bool) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Absolute value (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 arc cosine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 any (global bool) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 arc sine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 arc tangent (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 arc tangent (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 Ceiling (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Test condition and select (temp void) -0:352 Condition -0:352 any (temp bool) -0:352 Compare Less Than (temp 2X2 matrix of bool) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Constant: -0:352 0.000000 -0:352 0.000000 -0:352 0.000000 -0:352 0.000000 -0:352 true case -0:352 Branch: Kill -0:352 clamp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 'inF2' (temp 2X2 matrix of float) -0:352 cosine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 hyp. cosine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdx (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdxCoarse (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdxFine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdy (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdyCoarse (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 dPdyFine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 degrees (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 determinant (global float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 exp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 exp2 (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 findMSB (global int) -0:352 Constant: -0:352 7 (const int) -0:352 findLSB (global int) -0:352 Constant: -0:352 7 (const int) -0:352 Floor (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 mod (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 Fraction (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 frexp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 fwidth (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 ldexp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 log (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 matrix-scale (temp 2X2 matrix of float) -0:352 log2 (temp 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Constant: -0:352 0.301030 -0:352 log2 (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 max (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 min (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 pow (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 radians (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 roundEven (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 inverse sqrt (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 clamp (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Constant: -0:352 0.000000 -0:352 Constant: -0:352 1.000000 -0:352 Sign (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 sine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 Sequence -0:352 move second child to first child (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 sine (temp 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 move second child to first child (temp 2X2 matrix of float) -0:352 'inF2' (temp 2X2 matrix of float) -0:352 cosine (temp 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 hyp. sine (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 smoothstep (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 'inF2' (temp 2X2 matrix of float) -0:352 sqrt (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 step (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 'inF1' (temp 2X2 matrix of float) -0:352 tangent (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 hyp. tangent (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 transpose (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:352 trunc (global 2X2 matrix of float) -0:352 'inF0' (temp 2X2 matrix of float) -0:355 Branch: Return with expression +0:396 all (global bool) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Absolute value (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 arc cosine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 any (global bool) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 arc sine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 arc tangent (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 arc tangent (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 Ceiling (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Test condition and select (temp void) +0:396 Condition +0:396 any (temp bool) +0:396 Compare Less Than (temp 2X2 matrix of bool) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Constant: +0:396 0.000000 +0:396 0.000000 +0:396 0.000000 +0:396 0.000000 +0:396 true case +0:396 Branch: Kill +0:396 clamp (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF2' (temp 2X2 matrix of float) +0:396 cosine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 hyp. cosine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdx (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdxCoarse (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdxFine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdy (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdyCoarse (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 dPdyFine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 degrees (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 determinant (global float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 exp (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 exp2 (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 findMSB (global int) +0:396 Constant: +0:396 7 (const int) +0:396 findLSB (global int) +0:396 Constant: +0:396 7 (const int) +0:396 Floor (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 mod (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 Fraction (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 frexp (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 fwidth (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 ldexp (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 log (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 matrix-scale (temp 2X2 matrix of float) +0:396 log2 (temp 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Constant: +0:396 0.301030 +0:396 log2 (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 max (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 min (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 pow (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 radians (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 roundEven (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 inverse sqrt (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 clamp (temp 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Constant: +0:396 0.000000 +0:396 Constant: +0:396 1.000000 +0:396 Sign (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 sine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 Sequence +0:396 move second child to first child (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 sine (temp 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 move second child to first child (temp 2X2 matrix of float) +0:396 'inF2' (temp 2X2 matrix of float) +0:396 cosine (temp 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 hyp. sine (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 smoothstep (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF2' (temp 2X2 matrix of float) +0:396 sqrt (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 step (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF1' (temp 2X2 matrix of float) +0:396 tangent (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 hyp. tangent (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 transpose (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:396 trunc (global 2X2 matrix of float) +0:396 'inF0' (temp 2X2 matrix of float) +0:399 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:367 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:359 Function Parameters: -0:359 'inF0' (temp 3X3 matrix of float) -0:359 'inF1' (temp 3X3 matrix of float) -0:359 'inF2' (temp 3X3 matrix of float) +0:411 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:403 Function Parameters: +0:403 'inF0' (temp 3X3 matrix of float) +0:403 'inF1' (temp 3X3 matrix of float) +0:403 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:361 all (global bool) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Absolute value (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 arc cosine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 any (global bool) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 arc sine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 arc tangent (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 arc tangent (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 Ceiling (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Test condition and select (temp void) -0:361 Condition -0:361 any (temp bool) -0:361 Compare Less Than (temp 3X3 matrix of bool) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Constant: -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 0.000000 -0:361 true case -0:361 Branch: Kill -0:361 clamp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 'inF2' (temp 3X3 matrix of float) -0:361 cosine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 hyp. cosine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdx (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdxCoarse (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdxFine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdy (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdyCoarse (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 dPdyFine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 degrees (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 determinant (global float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 exp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 exp2 (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 findMSB (global int) -0:361 Constant: -0:361 7 (const int) -0:361 findLSB (global int) -0:361 Constant: -0:361 7 (const int) -0:361 Floor (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 mod (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 Fraction (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 frexp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 fwidth (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 ldexp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 log (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 matrix-scale (temp 3X3 matrix of float) -0:361 log2 (temp 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Constant: -0:361 0.301030 -0:361 log2 (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 max (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 min (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 pow (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 radians (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 roundEven (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 inverse sqrt (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 clamp (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Constant: -0:361 0.000000 -0:361 Constant: -0:361 1.000000 -0:361 Sign (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 sine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 Sequence -0:361 move second child to first child (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 sine (temp 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 move second child to first child (temp 3X3 matrix of float) -0:361 'inF2' (temp 3X3 matrix of float) -0:361 cosine (temp 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 hyp. sine (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 smoothstep (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 'inF2' (temp 3X3 matrix of float) -0:361 sqrt (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 step (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 'inF1' (temp 3X3 matrix of float) -0:361 tangent (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 hyp. tangent (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 transpose (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:361 trunc (global 3X3 matrix of float) -0:361 'inF0' (temp 3X3 matrix of float) -0:364 Branch: Return with expression +0:405 all (global bool) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Absolute value (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 arc cosine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 any (global bool) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 arc sine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 arc tangent (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 arc tangent (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 Ceiling (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Test condition and select (temp void) +0:405 Condition +0:405 any (temp bool) +0:405 Compare Less Than (temp 3X3 matrix of bool) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Constant: +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 0.000000 +0:405 true case +0:405 Branch: Kill +0:405 clamp (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF2' (temp 3X3 matrix of float) +0:405 cosine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 hyp. cosine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdx (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdxCoarse (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdxFine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdy (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdyCoarse (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 dPdyFine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 degrees (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 determinant (global float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 exp (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 exp2 (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 findMSB (global int) +0:405 Constant: +0:405 7 (const int) +0:405 findLSB (global int) +0:405 Constant: +0:405 7 (const int) +0:405 Floor (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 mod (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 Fraction (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 frexp (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 fwidth (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 ldexp (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 log (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 matrix-scale (temp 3X3 matrix of float) +0:405 log2 (temp 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Constant: +0:405 0.301030 +0:405 log2 (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 max (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 min (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 pow (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 radians (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 roundEven (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 inverse sqrt (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 clamp (temp 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Constant: +0:405 0.000000 +0:405 Constant: +0:405 1.000000 +0:405 Sign (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 sine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 Sequence +0:405 move second child to first child (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 sine (temp 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 move second child to first child (temp 3X3 matrix of float) +0:405 'inF2' (temp 3X3 matrix of float) +0:405 cosine (temp 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 hyp. sine (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 smoothstep (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF2' (temp 3X3 matrix of float) +0:405 sqrt (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 step (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF1' (temp 3X3 matrix of float) +0:405 tangent (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 hyp. tangent (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 transpose (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:405 trunc (global 3X3 matrix of float) +0:405 'inF0' (temp 3X3 matrix of float) +0:408 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -2467,165 +2543,165 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:388 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:368 Function Parameters: -0:368 'inF0' (temp 4X4 matrix of float) -0:368 'inF1' (temp 4X4 matrix of float) -0:368 'inF2' (temp 4X4 matrix of float) +0:432 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:412 Function Parameters: +0:412 'inF0' (temp 4X4 matrix of float) +0:412 'inF1' (temp 4X4 matrix of float) +0:412 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:370 all (global bool) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Absolute value (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 arc cosine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 any (global bool) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 arc sine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 arc tangent (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 arc tangent (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 Ceiling (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Test condition and select (temp void) -0:370 Condition -0:370 any (temp bool) -0:370 Compare Less Than (temp 4X4 matrix of bool) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Constant: -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 0.000000 -0:370 true case -0:370 Branch: Kill -0:370 clamp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 'inF2' (temp 4X4 matrix of float) -0:370 cosine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 hyp. cosine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdx (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdxCoarse (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdxFine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdy (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdyCoarse (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 dPdyFine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 degrees (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 determinant (global float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 exp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 exp2 (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 findMSB (global int) -0:370 Constant: -0:370 7 (const int) -0:370 findLSB (global int) -0:370 Constant: -0:370 7 (const int) -0:370 Floor (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 mod (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 Fraction (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 frexp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 fwidth (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 ldexp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 log (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 matrix-scale (temp 4X4 matrix of float) -0:370 log2 (temp 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Constant: -0:370 0.301030 -0:370 log2 (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 max (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 min (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 pow (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 radians (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 roundEven (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 inverse sqrt (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 clamp (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Constant: -0:370 0.000000 -0:370 Constant: -0:370 1.000000 -0:370 Sign (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 sine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 Sequence -0:370 move second child to first child (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 sine (temp 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 move second child to first child (temp 4X4 matrix of float) -0:370 'inF2' (temp 4X4 matrix of float) -0:370 cosine (temp 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 hyp. sine (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 smoothstep (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 'inF2' (temp 4X4 matrix of float) -0:370 sqrt (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 step (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 'inF1' (temp 4X4 matrix of float) -0:370 tangent (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 hyp. tangent (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 transpose (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:370 trunc (global 4X4 matrix of float) -0:370 'inF0' (temp 4X4 matrix of float) -0:373 Branch: Return with expression +0:414 all (global bool) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Absolute value (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 arc cosine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 any (global bool) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 arc sine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 arc tangent (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 arc tangent (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 Ceiling (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Test condition and select (temp void) +0:414 Condition +0:414 any (temp bool) +0:414 Compare Less Than (temp 4X4 matrix of bool) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Constant: +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 0.000000 +0:414 true case +0:414 Branch: Kill +0:414 clamp (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF2' (temp 4X4 matrix of float) +0:414 cosine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 hyp. cosine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdx (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdxCoarse (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdxFine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdy (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdyCoarse (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 dPdyFine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 degrees (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 determinant (global float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 exp (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 exp2 (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 findMSB (global int) +0:414 Constant: +0:414 7 (const int) +0:414 findLSB (global int) +0:414 Constant: +0:414 7 (const int) +0:414 Floor (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 mod (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 Fraction (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 frexp (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 fwidth (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 ldexp (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 log (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 matrix-scale (temp 4X4 matrix of float) +0:414 log2 (temp 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Constant: +0:414 0.301030 +0:414 log2 (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 max (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 min (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 pow (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 radians (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 roundEven (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 inverse sqrt (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 clamp (temp 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Constant: +0:414 0.000000 +0:414 Constant: +0:414 1.000000 +0:414 Sign (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 sine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 Sequence +0:414 move second child to first child (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 sine (temp 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 move second child to first child (temp 4X4 matrix of float) +0:414 'inF2' (temp 4X4 matrix of float) +0:414 cosine (temp 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 hyp. sine (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 smoothstep (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF2' (temp 4X4 matrix of float) +0:414 sqrt (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 step (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF1' (temp 4X4 matrix of float) +0:414 tangent (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 hyp. tangent (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 transpose (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:414 trunc (global 4X4 matrix of float) +0:414 'inF0' (temp 4X4 matrix of float) +0:417 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -2643,173 +2719,185 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:395 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:391 Function Parameters: -0:391 'inF0' (temp float) -0:391 'inF1' (temp float) -0:391 'inFV0' (temp 2-component vector of float) -0:391 'inFV1' (temp 2-component vector of float) -0:391 'inFM0' (temp 2X2 matrix of float) -0:391 'inFM1' (temp 2X2 matrix of float) +0:439 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:435 Function Parameters: +0:435 'inF0' (temp float) +0:435 'inF1' (temp float) +0:435 'inFV0' (temp 2-component vector of float) +0:435 'inFV1' (temp 2-component vector of float) +0:435 'inFM0' (temp 2X2 matrix of float) +0:435 'inFM1' (temp 2X2 matrix of float) 0:? Sequence -0:392 move second child to first child (temp float) -0:392 'r0' (temp float) -0:392 component-wise multiply (temp float) -0:392 'inF0' (temp float) -0:392 'inF1' (temp float) -0:392 move second child to first child (temp 2-component vector of float) -0:392 'r1' (temp 2-component vector of float) -0:392 vector-scale (temp 2-component vector of float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 'inF0' (temp float) -0:392 move second child to first child (temp 2-component vector of float) -0:392 'r2' (temp 2-component vector of float) -0:392 vector-scale (temp 2-component vector of float) -0:392 'inF0' (temp float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 move second child to first child (temp float) -0:392 'r3' (temp float) -0:392 dot-product (global float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 'inFV1' (temp 2-component vector of float) -0:392 move second child to first child (temp 2-component vector of float) -0:392 'r4' (temp 2-component vector of float) -0:392 matrix-times-vector (temp 2-component vector of float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 move second child to first child (temp 2-component vector of float) -0:392 'r5' (temp 2-component vector of float) -0:392 vector-times-matrix (temp 2-component vector of float) -0:392 'inFV0' (temp 2-component vector of float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 move second child to first child (temp 2X2 matrix of float) -0:392 'r6' (temp 2X2 matrix of float) -0:392 matrix-scale (temp 2X2 matrix of float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 'inF0' (temp float) -0:392 move second child to first child (temp 2X2 matrix of float) -0:392 'r7' (temp 2X2 matrix of float) -0:392 matrix-scale (temp 2X2 matrix of float) -0:392 'inF0' (temp float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 move second child to first child (temp 2X2 matrix of float) -0:392 'r8' (temp 2X2 matrix of float) -0:392 matrix-multiply (temp 2X2 matrix of float) -0:392 'inFM0' (temp 2X2 matrix of float) -0:392 'inFM1' (temp 2X2 matrix of float) -0:402 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:398 Function Parameters: -0:398 'inF0' (temp float) -0:398 'inF1' (temp float) -0:398 'inFV0' (temp 3-component vector of float) -0:398 'inFV1' (temp 3-component vector of float) -0:398 'inFM0' (temp 3X3 matrix of float) -0:398 'inFM1' (temp 3X3 matrix of float) +0:436 move second child to first child (temp float) +0:436 'r0' (temp float) +0:436 component-wise multiply (temp float) +0:436 'inF0' (temp float) +0:436 'inF1' (temp float) +0:436 move second child to first child (temp 2-component vector of float) +0:436 'r1' (temp 2-component vector of float) +0:436 vector-scale (temp 2-component vector of float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 'inF0' (temp float) +0:436 move second child to first child (temp 2-component vector of float) +0:436 'r2' (temp 2-component vector of float) +0:436 vector-scale (temp 2-component vector of float) +0:436 'inF0' (temp float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 move second child to first child (temp float) +0:436 'r3' (temp float) +0:436 dot-product (global float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 'inFV1' (temp 2-component vector of float) +0:436 move second child to first child (temp 2-component vector of float) +0:436 'r4' (temp 2-component vector of float) +0:436 matrix-times-vector (temp 2-component vector of float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 move second child to first child (temp 2-component vector of float) +0:436 'r5' (temp 2-component vector of float) +0:436 vector-times-matrix (temp 2-component vector of float) +0:436 'inFV0' (temp 2-component vector of float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 move second child to first child (temp 2X2 matrix of float) +0:436 'r6' (temp 2X2 matrix of float) +0:436 matrix-scale (temp 2X2 matrix of float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inF0' (temp float) +0:436 move second child to first child (temp 2X2 matrix of float) +0:436 'r7' (temp 2X2 matrix of float) +0:436 matrix-scale (temp 2X2 matrix of float) +0:436 'inF0' (temp float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 move second child to first child (temp 2X2 matrix of float) +0:436 'r8' (temp 2X2 matrix of float) +0:436 matrix-multiply (temp 2X2 matrix of float) +0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inFM1' (temp 2X2 matrix of float) +0:446 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:442 Function Parameters: +0:442 'inF0' (temp float) +0:442 'inF1' (temp float) +0:442 'inFV0' (temp 3-component vector of float) +0:442 'inFV1' (temp 3-component vector of float) +0:442 'inFM0' (temp 3X3 matrix of float) +0:442 'inFM1' (temp 3X3 matrix of float) 0:? Sequence -0:399 move second child to first child (temp float) -0:399 'r0' (temp float) -0:399 component-wise multiply (temp float) -0:399 'inF0' (temp float) -0:399 'inF1' (temp float) -0:399 move second child to first child (temp 3-component vector of float) -0:399 'r1' (temp 3-component vector of float) -0:399 vector-scale (temp 3-component vector of float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 'inF0' (temp float) -0:399 move second child to first child (temp 3-component vector of float) -0:399 'r2' (temp 3-component vector of float) -0:399 vector-scale (temp 3-component vector of float) -0:399 'inF0' (temp float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 move second child to first child (temp float) -0:399 'r3' (temp float) -0:399 dot-product (global float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 'inFV1' (temp 3-component vector of float) -0:399 move second child to first child (temp 3-component vector of float) -0:399 'r4' (temp 3-component vector of float) -0:399 matrix-times-vector (temp 3-component vector of float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 move second child to first child (temp 3-component vector of float) -0:399 'r5' (temp 3-component vector of float) -0:399 vector-times-matrix (temp 3-component vector of float) -0:399 'inFV0' (temp 3-component vector of float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 move second child to first child (temp 3X3 matrix of float) -0:399 'r6' (temp 3X3 matrix of float) -0:399 matrix-scale (temp 3X3 matrix of float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 'inF0' (temp float) -0:399 move second child to first child (temp 3X3 matrix of float) -0:399 'r7' (temp 3X3 matrix of float) -0:399 matrix-scale (temp 3X3 matrix of float) -0:399 'inF0' (temp float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 move second child to first child (temp 3X3 matrix of float) -0:399 'r8' (temp 3X3 matrix of float) -0:399 matrix-multiply (temp 3X3 matrix of float) -0:399 'inFM0' (temp 3X3 matrix of float) -0:399 'inFM1' (temp 3X3 matrix of float) -0:408 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:405 Function Parameters: -0:405 'inF0' (temp float) -0:405 'inF1' (temp float) -0:405 'inFV0' (temp 4-component vector of float) -0:405 'inFV1' (temp 4-component vector of float) -0:405 'inFM0' (temp 4X4 matrix of float) -0:405 'inFM1' (temp 4X4 matrix of float) +0:443 move second child to first child (temp float) +0:443 'r0' (temp float) +0:443 component-wise multiply (temp float) +0:443 'inF0' (temp float) +0:443 'inF1' (temp float) +0:443 move second child to first child (temp 3-component vector of float) +0:443 'r1' (temp 3-component vector of float) +0:443 vector-scale (temp 3-component vector of float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 'inF0' (temp float) +0:443 move second child to first child (temp 3-component vector of float) +0:443 'r2' (temp 3-component vector of float) +0:443 vector-scale (temp 3-component vector of float) +0:443 'inF0' (temp float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 move second child to first child (temp float) +0:443 'r3' (temp float) +0:443 dot-product (global float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 'inFV1' (temp 3-component vector of float) +0:443 move second child to first child (temp 3-component vector of float) +0:443 'r4' (temp 3-component vector of float) +0:443 matrix-times-vector (temp 3-component vector of float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 move second child to first child (temp 3-component vector of float) +0:443 'r5' (temp 3-component vector of float) +0:443 vector-times-matrix (temp 3-component vector of float) +0:443 'inFV0' (temp 3-component vector of float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 move second child to first child (temp 3X3 matrix of float) +0:443 'r6' (temp 3X3 matrix of float) +0:443 matrix-scale (temp 3X3 matrix of float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inF0' (temp float) +0:443 move second child to first child (temp 3X3 matrix of float) +0:443 'r7' (temp 3X3 matrix of float) +0:443 matrix-scale (temp 3X3 matrix of float) +0:443 'inF0' (temp float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 move second child to first child (temp 3X3 matrix of float) +0:443 'r8' (temp 3X3 matrix of float) +0:443 matrix-multiply (temp 3X3 matrix of float) +0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inFM1' (temp 3X3 matrix of float) +0:452 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:449 Function Parameters: +0:449 'inF0' (temp float) +0:449 'inF1' (temp float) +0:449 'inFV0' (temp 4-component vector of float) +0:449 'inFV1' (temp 4-component vector of float) +0:449 'inFM0' (temp 4X4 matrix of float) +0:449 'inFM1' (temp 4X4 matrix of float) 0:? Sequence -0:406 move second child to first child (temp float) -0:406 'r0' (temp float) -0:406 component-wise multiply (temp float) -0:406 'inF0' (temp float) -0:406 'inF1' (temp float) -0:406 move second child to first child (temp 4-component vector of float) -0:406 'r1' (temp 4-component vector of float) -0:406 vector-scale (temp 4-component vector of float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 'inF0' (temp float) -0:406 move second child to first child (temp 4-component vector of float) -0:406 'r2' (temp 4-component vector of float) -0:406 vector-scale (temp 4-component vector of float) -0:406 'inF0' (temp float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 move second child to first child (temp float) -0:406 'r3' (temp float) -0:406 dot-product (global float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 'inFV1' (temp 4-component vector of float) -0:406 move second child to first child (temp 4-component vector of float) -0:406 'r4' (temp 4-component vector of float) -0:406 matrix-times-vector (temp 4-component vector of float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 move second child to first child (temp 4-component vector of float) -0:406 'r5' (temp 4-component vector of float) -0:406 vector-times-matrix (temp 4-component vector of float) -0:406 'inFV0' (temp 4-component vector of float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 move second child to first child (temp 4X4 matrix of float) -0:406 'r6' (temp 4X4 matrix of float) -0:406 matrix-scale (temp 4X4 matrix of float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 'inF0' (temp float) -0:406 move second child to first child (temp 4X4 matrix of float) -0:406 'r7' (temp 4X4 matrix of float) -0:406 matrix-scale (temp 4X4 matrix of float) -0:406 'inF0' (temp float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 move second child to first child (temp 4X4 matrix of float) -0:406 'r8' (temp 4X4 matrix of float) -0:406 matrix-multiply (temp 4X4 matrix of float) -0:406 'inFM0' (temp 4X4 matrix of float) -0:406 'inFM1' (temp 4X4 matrix of float) +0:450 move second child to first child (temp float) +0:450 'r0' (temp float) +0:450 component-wise multiply (temp float) +0:450 'inF0' (temp float) +0:450 'inF1' (temp float) +0:450 move second child to first child (temp 4-component vector of float) +0:450 'r1' (temp 4-component vector of float) +0:450 vector-scale (temp 4-component vector of float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 'inF0' (temp float) +0:450 move second child to first child (temp 4-component vector of float) +0:450 'r2' (temp 4-component vector of float) +0:450 vector-scale (temp 4-component vector of float) +0:450 'inF0' (temp float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 move second child to first child (temp float) +0:450 'r3' (temp float) +0:450 dot-product (global float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 'inFV1' (temp 4-component vector of float) +0:450 move second child to first child (temp 4-component vector of float) +0:450 'r4' (temp 4-component vector of float) +0:450 matrix-times-vector (temp 4-component vector of float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 move second child to first child (temp 4-component vector of float) +0:450 'r5' (temp 4-component vector of float) +0:450 vector-times-matrix (temp 4-component vector of float) +0:450 'inFV0' (temp 4-component vector of float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 move second child to first child (temp 4X4 matrix of float) +0:450 'r6' (temp 4X4 matrix of float) +0:450 matrix-scale (temp 4X4 matrix of float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inF0' (temp float) +0:450 move second child to first child (temp 4X4 matrix of float) +0:450 'r7' (temp 4X4 matrix of float) +0:450 matrix-scale (temp 4X4 matrix of float) +0:450 'inF0' (temp float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 move second child to first child (temp 4X4 matrix of float) +0:450 'r8' (temp 4X4 matrix of float) +0:450 matrix-multiply (temp 4X4 matrix of float) +0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inFM1' (temp 4X4 matrix of float) 0:? Linker Objects +0:? 'gs_ua' (temp uint) +0:? 'gs_ub' (temp uint) +0:? 'gs_uc' (temp uint) +0:? 'gs_ua2' (temp 2-component vector of uint) +0:? 'gs_ub2' (temp 2-component vector of uint) +0:? 'gs_uc2' (temp 2-component vector of uint) +0:? 'gs_ua3' (temp 3-component vector of uint) +0:? 'gs_ub3' (temp 3-component vector of uint) +0:? 'gs_uc3' (temp 3-component vector of uint) +0:? 'gs_ua4' (temp 4-component vector of uint) +0:? 'gs_ub4' (temp 4-component vector of uint) +0:? 'gs_uc4' (temp 4-component vector of uint) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1209 +// Id's are bound by 1253 Capability Shader Capability DerivativeControl @@ -2841,60 +2929,76 @@ gl_FragCoord origin is upper left Name 43 "inFM0" Name 44 "inFM1" Name 47 "inF0" - Name 62 "inF1" - Name 69 "inF2" - Name 115 "ResType" - Name 185 "inF0" - Name 199 "inF1" - Name 206 "inF2" - Name 264 "ResType" - Name 347 "inF0" - Name 361 "inF1" - Name 368 "inF2" - Name 429 "ResType" - Name 511 "inF0" - Name 525 "inF1" - Name 532 "inF2" - Name 598 "ResType" - Name 681 "inF0" - Name 695 "inF1" - Name 710 "inF2" - Name 753 "ResType" - Name 818 "inF0" - Name 832 "inF1" - Name 847 "inF2" - Name 893 "ResType" - Name 958 "inF0" - Name 972 "inF1" - Name 987 "inF2" - Name 1036 "ResType" - Name 1101 "r0" - Name 1105 "r1" - Name 1109 "r2" - Name 1113 "r3" - Name 1117 "r4" - Name 1121 "r5" - Name 1125 "r6" - Name 1129 "r7" - Name 1133 "r8" - Name 1137 "r0" - Name 1141 "r1" - Name 1145 "r2" - Name 1149 "r3" - Name 1153 "r4" - Name 1157 "r5" - Name 1161 "r6" - Name 1165 "r7" - Name 1169 "r8" - Name 1173 "r0" - Name 1177 "r1" - Name 1181 "r2" - Name 1185 "r3" - Name 1189 "r4" - Name 1193 "r5" - Name 1197 "r6" - Name 1201 "r7" - Name 1205 "r8" + Name 66 "inU0" + Name 72 "inF1" + Name 79 "inF2" + Name 123 "ResType" + Name 193 "inF0" + Name 211 "inU0" + Name 217 "inF1" + Name 224 "inF2" + Name 280 "ResType" + Name 363 "inF0" + Name 381 "inU0" + Name 387 "inF1" + Name 394 "inF2" + Name 453 "ResType" + Name 535 "inF0" + Name 553 "inU0" + Name 559 "inF1" + Name 566 "inF2" + Name 630 "ResType" + Name 713 "inF0" + Name 727 "inF1" + Name 742 "inF2" + Name 785 "ResType" + Name 850 "inF0" + Name 864 "inF1" + Name 879 "inF2" + Name 925 "ResType" + Name 990 "inF0" + Name 1004 "inF1" + Name 1019 "inF2" + Name 1068 "ResType" + Name 1133 "r0" + Name 1137 "r1" + Name 1141 "r2" + Name 1145 "r3" + Name 1149 "r4" + Name 1153 "r5" + Name 1157 "r6" + Name 1161 "r7" + Name 1165 "r8" + Name 1169 "r0" + Name 1173 "r1" + Name 1177 "r2" + Name 1181 "r3" + Name 1185 "r4" + Name 1189 "r5" + Name 1193 "r6" + Name 1197 "r7" + Name 1201 "r8" + Name 1205 "r0" + Name 1209 "r1" + Name 1213 "r2" + Name 1217 "r3" + Name 1221 "r4" + Name 1225 "r5" + Name 1229 "r6" + Name 1233 "r7" + Name 1237 "r8" + Name 1241 "gs_ua" + Name 1242 "gs_ub" + Name 1243 "gs_uc" + Name 1244 "gs_ua2" + Name 1245 "gs_ub2" + Name 1246 "gs_uc2" + Name 1247 "gs_ua3" + Name 1248 "gs_ub3" + Name 1249 "gs_uc3" + Name 1250 "gs_ua4" + Name 1251 "gs_ub4" + Name 1252 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -2915,84 +3019,92 @@ gl_FragCoord origin is upper left 37: TypePointer Function 36 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr) 49: TypeBool - 73: 6(float) Constant 0 - 82: TypeInt 32 0 - 83: 82(int) Constant 7 - 103: TypeInt 32 1 - 104: 103(int) Constant 7 - 115(ResType): TypeStruct 6(float) 103(int) - 132: 6(float) Constant 1050288283 - 147: 6(float) Constant 1065353216 - 150: 82(int) Constant 2 - 210: 8(fvec2) ConstantComposite 73 73 - 211: TypeVector 49(bool) 2 - 221: TypeVector 82(int) 2 - 222: 82(int) Constant 3 - 223: 221(ivec2) ConstantComposite 83 222 - 263: TypeVector 103(int) 2 - 264(ResType): TypeStruct 8(fvec2) 263(ivec2) - 307: 6(float) Constant 1073741824 - 309: 82(int) Constant 1 - 310: 221(ivec2) ConstantComposite 309 150 - 345: 8(fvec2) ConstantComposite 147 307 - 372: 21(fvec3) ConstantComposite 73 73 73 - 373: TypeVector 49(bool) 3 - 383: TypeVector 82(int) 3 - 384: 82(int) Constant 5 - 385: 383(ivec3) ConstantComposite 83 222 384 - 428: TypeVector 103(int) 3 - 429(ResType): TypeStruct 21(fvec3) 428(ivec3) - 473: 383(ivec3) ConstantComposite 309 150 222 - 508: 6(float) Constant 1077936128 - 509: 21(fvec3) ConstantComposite 147 307 508 - 536: 34(fvec4) ConstantComposite 73 73 73 73 - 537: TypeVector 49(bool) 4 - 547: TypeVector 82(int) 4 - 548: 547(ivec4) ConstantComposite 83 222 384 150 - 597: TypeVector 103(int) 4 - 598(ResType): TypeStruct 34(fvec4) 597(ivec4) - 642: 82(int) Constant 4 - 643: 547(ivec4) ConstantComposite 309 150 222 642 - 678: 6(float) Constant 1082130432 - 679: 34(fvec4) ConstantComposite 147 307 508 678 - 701: 10 ConstantComposite 210 210 - 702: TypeMatrix 211(bvec2) 2 - 753(ResType): TypeStruct 10 263(ivec2) - 815: 8(fvec2) ConstantComposite 307 307 - 816: 10 ConstantComposite 815 815 - 838: 23 ConstantComposite 372 372 372 - 839: TypeMatrix 373(bvec3) 3 - 893(ResType): TypeStruct 23 428(ivec3) - 955: 21(fvec3) ConstantComposite 508 508 508 - 956: 23 ConstantComposite 955 955 955 - 978: 36 ConstantComposite 536 536 536 536 - 979: TypeMatrix 537(bvec4) 4 - 1036(ResType): TypeStruct 36 597(ivec4) - 1098: 34(fvec4) ConstantComposite 678 678 678 678 - 1099: 36 ConstantComposite 1098 1098 1098 1098 + 60: TypeInt 32 1 + 63: TypeInt 32 0 + 65: TypePointer Function 63(int) + 83: 6(float) Constant 0 + 92: 63(int) Constant 7 + 112: 60(int) Constant 7 + 123(ResType): TypeStruct 6(float) 60(int) + 140: 6(float) Constant 1050288283 + 155: 6(float) Constant 1065353216 + 158: 63(int) Constant 2 + 205: TypeVector 60(int) 2 + 208: TypeVector 63(int) 2 + 210: TypePointer Function 208(ivec2) + 228: 8(fvec2) ConstantComposite 83 83 + 229: TypeVector 49(bool) 2 + 239: 63(int) Constant 3 + 240: 208(ivec2) ConstantComposite 92 239 + 280(ResType): TypeStruct 8(fvec2) 205(ivec2) + 323: 6(float) Constant 1073741824 + 325: 63(int) Constant 1 + 326: 208(ivec2) ConstantComposite 325 158 + 361: 8(fvec2) ConstantComposite 155 323 + 375: TypeVector 60(int) 3 + 378: TypeVector 63(int) 3 + 380: TypePointer Function 378(ivec3) + 398: 21(fvec3) ConstantComposite 83 83 83 + 399: TypeVector 49(bool) 3 + 409: 63(int) Constant 5 + 410: 378(ivec3) ConstantComposite 92 239 409 + 453(ResType): TypeStruct 21(fvec3) 375(ivec3) + 497: 378(ivec3) ConstantComposite 325 158 239 + 532: 6(float) Constant 1077936128 + 533: 21(fvec3) ConstantComposite 155 323 532 + 547: TypeVector 60(int) 4 + 550: TypeVector 63(int) 4 + 552: TypePointer Function 550(ivec4) + 570: 34(fvec4) ConstantComposite 83 83 83 83 + 571: TypeVector 49(bool) 4 + 581: 550(ivec4) ConstantComposite 92 239 409 158 + 630(ResType): TypeStruct 34(fvec4) 547(ivec4) + 674: 63(int) Constant 4 + 675: 550(ivec4) ConstantComposite 325 158 239 674 + 710: 6(float) Constant 1082130432 + 711: 34(fvec4) ConstantComposite 155 323 532 710 + 733: 10 ConstantComposite 228 228 + 734: TypeMatrix 229(bvec2) 2 + 785(ResType): TypeStruct 10 205(ivec2) + 847: 8(fvec2) ConstantComposite 323 323 + 848: 10 ConstantComposite 847 847 + 870: 23 ConstantComposite 398 398 398 + 871: TypeMatrix 399(bvec3) 3 + 925(ResType): TypeStruct 23 375(ivec3) + 987: 21(fvec3) ConstantComposite 532 532 532 + 988: 23 ConstantComposite 987 987 987 + 1010: 36 ConstantComposite 570 570 570 570 + 1011: TypeMatrix 571(bvec4) 4 + 1068(ResType): TypeStruct 36 547(ivec4) + 1130: 34(fvec4) ConstantComposite 710 710 710 710 + 1131: 36 ConstantComposite 1130 1130 1130 1130 4(PixelShaderFunction): 2 Function None 3 5: Label 47(inF0): 7(ptr) Variable Function - 62(inF1): 7(ptr) Variable Function - 69(inF2): 7(ptr) Variable Function - 185(inF0): 9(ptr) Variable Function - 199(inF1): 9(ptr) Variable Function - 206(inF2): 9(ptr) Variable Function - 347(inF0): 22(ptr) Variable Function - 361(inF1): 22(ptr) Variable Function - 368(inF2): 22(ptr) Variable Function - 511(inF0): 35(ptr) Variable Function - 525(inF1): 35(ptr) Variable Function - 532(inF2): 35(ptr) Variable Function - 681(inF0): 11(ptr) Variable Function - 695(inF1): 11(ptr) Variable Function - 710(inF2): 11(ptr) Variable Function - 818(inF0): 24(ptr) Variable Function - 832(inF1): 24(ptr) Variable Function - 847(inF2): 24(ptr) Variable Function - 958(inF0): 37(ptr) Variable Function - 972(inF1): 37(ptr) Variable Function - 987(inF2): 37(ptr) Variable Function + 66(inU0): 65(ptr) Variable Function + 72(inF1): 7(ptr) Variable Function + 79(inF2): 7(ptr) Variable Function + 193(inF0): 9(ptr) Variable Function + 211(inU0): 210(ptr) Variable Function + 217(inF1): 9(ptr) Variable Function + 224(inF2): 9(ptr) Variable Function + 363(inF0): 22(ptr) Variable Function + 381(inU0): 380(ptr) Variable Function + 387(inF1): 22(ptr) Variable Function + 394(inF2): 22(ptr) Variable Function + 535(inF0): 35(ptr) Variable Function + 553(inU0): 552(ptr) Variable Function + 559(inF1): 35(ptr) Variable Function + 566(inF2): 35(ptr) Variable Function + 713(inF0): 11(ptr) Variable Function + 727(inF1): 11(ptr) Variable Function + 742(inF2): 11(ptr) Variable Function + 850(inF0): 24(ptr) Variable Function + 864(inF1): 24(ptr) Variable Function + 879(inF2): 24(ptr) Variable Function + 990(inF0): 37(ptr) Variable Function + 1004(inF1): 37(ptr) Variable Function + 1019(inF2): 37(ptr) Variable Function 48: 6(float) Load 47(inF0) 50: 49(bool) All 48 51: 6(float) Load 47(inF0) @@ -3004,124 +3116,130 @@ gl_FragCoord origin is upper left 57: 6(float) Load 47(inF0) 58: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 57 59: 6(float) Load 47(inF0) - 60: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 59 - 61: 6(float) Load 47(inF0) - 63: 6(float) Load 62(inF1) - 64: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 61 63 - 65: 6(float) Load 47(inF0) - 66: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 65 - 67: 6(float) Load 47(inF0) - 68: 6(float) Load 62(inF1) - 70: 6(float) Load 69(inF2) - 71: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 67 68 70 - 72: 6(float) Load 47(inF0) - 74: 49(bool) FOrdLessThan 72 73 - SelectionMerge 76 None - BranchConditional 74 75 76 - 75: Label + 61: 60(int) Bitcast 59 + 62: 6(float) Load 47(inF0) + 64: 63(int) Bitcast 62 + 67: 63(int) Load 66(inU0) + 68: 6(float) Bitcast 67 + 69: 6(float) Load 47(inF0) + 70: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 69 + 71: 6(float) Load 47(inF0) + 73: 6(float) Load 72(inF1) + 74: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 71 73 + 75: 6(float) Load 47(inF0) + 76: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 75 + 77: 6(float) Load 47(inF0) + 78: 6(float) Load 72(inF1) + 80: 6(float) Load 79(inF2) + 81: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 77 78 80 + 82: 6(float) Load 47(inF0) + 84: 49(bool) FOrdLessThan 82 83 + SelectionMerge 86 None + BranchConditional 84 85 86 + 85: Label Kill - 76: Label - 78: 6(float) Load 47(inF0) - 79: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 78 - 80: 6(float) Load 47(inF0) - 81: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 80 - 84: 82(int) BitCount 83 - 85: 6(float) Load 47(inF0) - 86: 6(float) DPdx 85 - 87: 6(float) Load 47(inF0) - 88: 6(float) DPdxCoarse 87 - 89: 6(float) Load 47(inF0) - 90: 6(float) DPdxFine 89 - 91: 6(float) Load 47(inF0) - 92: 6(float) DPdy 91 - 93: 6(float) Load 47(inF0) - 94: 6(float) DPdyCoarse 93 - 95: 6(float) Load 47(inF0) - 96: 6(float) DPdyFine 95 - 97: 6(float) Load 47(inF0) - 98: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 97 - 99: 6(float) Load 47(inF0) - 100: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 99 - 101: 6(float) Load 47(inF0) - 102: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 101 - 105: 103(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 104 - 106: 103(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 104 - 107: 6(float) Load 47(inF0) - 108: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 107 - 109: 6(float) Load 47(inF0) - 110: 6(float) Load 62(inF1) - 111: 6(float) FMod 109 110 - 112: 6(float) Load 47(inF0) - 113: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 112 - 114: 6(float) Load 47(inF0) - 116:115(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 114 - 117: 103(int) CompositeExtract 116 1 - Store 62(inF1) 117 - 118: 6(float) CompositeExtract 116 0 - 119: 6(float) Load 47(inF0) - 120: 6(float) Fwidth 119 - 121: 6(float) Load 47(inF0) - 122: 49(bool) IsInf 121 - 123: 6(float) Load 47(inF0) - 124: 49(bool) IsNan 123 - 125: 6(float) Load 47(inF0) - 126: 6(float) Load 62(inF1) - 127: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 125 126 - 128: 6(float) Load 47(inF0) - 129: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 128 - 130: 6(float) Load 47(inF0) - 131: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 130 - 133: 6(float) FMul 131 132 - 134: 6(float) Load 47(inF0) - 135: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 134 + 86: Label + 88: 6(float) Load 47(inF0) + 89: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 88 + 90: 6(float) Load 47(inF0) + 91: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 90 + 93: 63(int) BitCount 92 + 94: 6(float) Load 47(inF0) + 95: 6(float) DPdx 94 + 96: 6(float) Load 47(inF0) + 97: 6(float) DPdxCoarse 96 + 98: 6(float) Load 47(inF0) + 99: 6(float) DPdxFine 98 + 100: 6(float) Load 47(inF0) + 101: 6(float) DPdy 100 + 102: 6(float) Load 47(inF0) + 103: 6(float) DPdyCoarse 102 + 104: 6(float) Load 47(inF0) + 105: 6(float) DPdyFine 104 + 106: 6(float) Load 47(inF0) + 107: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 106 + 108: 6(float) Load 47(inF0) + 109: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 108 + 110: 6(float) Load 47(inF0) + 111: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 110 + 113: 60(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 112 + 114: 60(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 112 + 115: 6(float) Load 47(inF0) + 116: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 115 + 117: 6(float) Load 47(inF0) + 118: 6(float) Load 72(inF1) + 119: 6(float) FMod 117 118 + 120: 6(float) Load 47(inF0) + 121: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 120 + 122: 6(float) Load 47(inF0) + 124:123(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122 + 125: 60(int) CompositeExtract 124 1 + Store 72(inF1) 125 + 126: 6(float) CompositeExtract 124 0 + 127: 6(float) Load 47(inF0) + 128: 6(float) Fwidth 127 + 129: 6(float) Load 47(inF0) + 130: 49(bool) IsInf 129 + 131: 6(float) Load 47(inF0) + 132: 49(bool) IsNan 131 + 133: 6(float) Load 47(inF0) + 134: 6(float) Load 72(inF1) + 135: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 133 134 136: 6(float) Load 47(inF0) - 137: 6(float) Load 62(inF1) - 138: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 136 137 - 139: 6(float) Load 47(inF0) - 140: 6(float) Load 62(inF1) - 141: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 139 140 + 137: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 136 + 138: 6(float) Load 47(inF0) + 139: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 138 + 141: 6(float) FMul 139 140 142: 6(float) Load 47(inF0) - 143: 6(float) Load 62(inF1) - 144: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 142 143 - 145: 6(float) Load 47(inF0) - 146: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 145 - 148: 6(float) Load 47(inF0) - 149: 6(float) FDiv 147 148 - 151: 82(int) BitReverse 150 - 152: 6(float) Load 47(inF0) - 153: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 152 - 154: 6(float) Load 47(inF0) - 155: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 154 + 143: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 142 + 144: 6(float) Load 47(inF0) + 145: 6(float) Load 72(inF1) + 146: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 144 145 + 147: 6(float) Load 47(inF0) + 148: 6(float) Load 72(inF1) + 149: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 147 148 + 150: 6(float) Load 47(inF0) + 151: 6(float) Load 72(inF1) + 152: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 150 151 + 153: 6(float) Load 47(inF0) + 154: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 153 156: 6(float) Load 47(inF0) - 157: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 156 73 147 - 158: 6(float) Load 47(inF0) - 159: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 158 + 157: 6(float) FDiv 155 156 + 159: 63(int) BitReverse 158 160: 6(float) Load 47(inF0) - 161: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 160 + 161: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 160 162: 6(float) Load 47(inF0) - 163: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 162 - Store 62(inF1) 163 + 163: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 162 164: 6(float) Load 47(inF0) - 165: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 164 - Store 69(inF2) 165 + 165: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 164 83 155 166: 6(float) Load 47(inF0) - 167: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 166 + 167: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 166 168: 6(float) Load 47(inF0) - 169: 6(float) Load 62(inF1) - 170: 6(float) Load 69(inF2) - 171: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 168 169 170 + 169: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 168 + 170: 6(float) Load 47(inF0) + 171: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 170 + Store 72(inF1) 171 172: 6(float) Load 47(inF0) - 173: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 172 + 173: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 172 + Store 79(inF2) 173 174: 6(float) Load 47(inF0) - 175: 6(float) Load 62(inF1) - 176: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 174 175 - 177: 6(float) Load 47(inF0) - 178: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 177 - 179: 6(float) Load 47(inF0) - 180: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 179 - 181: 6(float) Load 47(inF0) - 182: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 181 - ReturnValue 73 + 175: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 174 + 176: 6(float) Load 47(inF0) + 177: 6(float) Load 72(inF1) + 178: 6(float) Load 79(inF2) + 179: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 176 177 178 + 180: 6(float) Load 47(inF0) + 181: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 180 + 182: 6(float) Load 47(inF0) + 183: 6(float) Load 72(inF1) + 184: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 182 183 + 185: 6(float) Load 47(inF0) + 186: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 185 + 187: 6(float) Load 47(inF0) + 188: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 187 + 189: 6(float) Load 47(inF0) + 190: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 189 + ReturnValue 83 FunctionEnd 19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12 13(inF0): 7(ptr) FunctionParameter @@ -3131,51 +3249,51 @@ gl_FragCoord origin is upper left 17(inFM0): 11(ptr) FunctionParameter 18(inFM1): 11(ptr) FunctionParameter 20: Label - 1101(r0): 7(ptr) Variable Function - 1105(r1): 9(ptr) Variable Function - 1109(r2): 9(ptr) Variable Function - 1113(r3): 7(ptr) Variable Function - 1117(r4): 9(ptr) Variable Function - 1121(r5): 9(ptr) Variable Function - 1125(r6): 11(ptr) Variable Function - 1129(r7): 11(ptr) Variable Function - 1133(r8): 11(ptr) Variable Function - 1102: 6(float) Load 13(inF0) - 1103: 6(float) Load 14(inF1) - 1104: 6(float) FMul 1102 1103 - Store 1101(r0) 1104 - 1106: 8(fvec2) Load 15(inFV0) - 1107: 6(float) Load 13(inF0) - 1108: 8(fvec2) VectorTimesScalar 1106 1107 - Store 1105(r1) 1108 - 1110: 6(float) Load 13(inF0) - 1111: 8(fvec2) Load 15(inFV0) - 1112: 8(fvec2) VectorTimesScalar 1111 1110 - Store 1109(r2) 1112 - 1114: 8(fvec2) Load 15(inFV0) - 1115: 8(fvec2) Load 16(inFV1) - 1116: 6(float) Dot 1114 1115 - Store 1113(r3) 1116 - 1118: 10 Load 17(inFM0) - 1119: 8(fvec2) Load 15(inFV0) - 1120: 8(fvec2) MatrixTimesVector 1118 1119 - Store 1117(r4) 1120 - 1122: 8(fvec2) Load 15(inFV0) - 1123: 10 Load 17(inFM0) - 1124: 8(fvec2) VectorTimesMatrix 1122 1123 - Store 1121(r5) 1124 - 1126: 10 Load 17(inFM0) - 1127: 6(float) Load 13(inF0) - 1128: 10 MatrixTimesScalar 1126 1127 - Store 1125(r6) 1128 - 1130: 6(float) Load 13(inF0) - 1131: 10 Load 17(inFM0) - 1132: 10 MatrixTimesScalar 1131 1130 - Store 1129(r7) 1132 - 1134: 10 Load 17(inFM0) - 1135: 10 Load 18(inFM1) - 1136: 10 MatrixTimesMatrix 1134 1135 - Store 1133(r8) 1136 + 1133(r0): 7(ptr) Variable Function + 1137(r1): 9(ptr) Variable Function + 1141(r2): 9(ptr) Variable Function + 1145(r3): 7(ptr) Variable Function + 1149(r4): 9(ptr) Variable Function + 1153(r5): 9(ptr) Variable Function + 1157(r6): 11(ptr) Variable Function + 1161(r7): 11(ptr) Variable Function + 1165(r8): 11(ptr) Variable Function + 1134: 6(float) Load 13(inF0) + 1135: 6(float) Load 14(inF1) + 1136: 6(float) FMul 1134 1135 + Store 1133(r0) 1136 + 1138: 8(fvec2) Load 15(inFV0) + 1139: 6(float) Load 13(inF0) + 1140: 8(fvec2) VectorTimesScalar 1138 1139 + Store 1137(r1) 1140 + 1142: 6(float) Load 13(inF0) + 1143: 8(fvec2) Load 15(inFV0) + 1144: 8(fvec2) VectorTimesScalar 1143 1142 + Store 1141(r2) 1144 + 1146: 8(fvec2) Load 15(inFV0) + 1147: 8(fvec2) Load 16(inFV1) + 1148: 6(float) Dot 1146 1147 + Store 1145(r3) 1148 + 1150: 10 Load 17(inFM0) + 1151: 8(fvec2) Load 15(inFV0) + 1152: 8(fvec2) MatrixTimesVector 1150 1151 + Store 1149(r4) 1152 + 1154: 8(fvec2) Load 15(inFV0) + 1155: 10 Load 17(inFM0) + 1156: 8(fvec2) VectorTimesMatrix 1154 1155 + Store 1153(r5) 1156 + 1158: 10 Load 17(inFM0) + 1159: 6(float) Load 13(inF0) + 1160: 10 MatrixTimesScalar 1158 1159 + Store 1157(r6) 1160 + 1162: 6(float) Load 13(inF0) + 1163: 10 Load 17(inFM0) + 1164: 10 MatrixTimesScalar 1163 1162 + Store 1161(r7) 1164 + 1166: 10 Load 17(inFM0) + 1167: 10 Load 18(inFM1) + 1168: 10 MatrixTimesMatrix 1166 1167 + Store 1165(r8) 1168 Return FunctionEnd 32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 @@ -3186,51 +3304,51 @@ gl_FragCoord origin is upper left 30(inFM0): 24(ptr) FunctionParameter 31(inFM1): 24(ptr) FunctionParameter 33: Label - 1137(r0): 7(ptr) Variable Function - 1141(r1): 22(ptr) Variable Function - 1145(r2): 22(ptr) Variable Function - 1149(r3): 7(ptr) Variable Function - 1153(r4): 22(ptr) Variable Function - 1157(r5): 22(ptr) Variable Function - 1161(r6): 24(ptr) Variable Function - 1165(r7): 24(ptr) Variable Function - 1169(r8): 24(ptr) Variable Function - 1138: 6(float) Load 26(inF0) - 1139: 6(float) Load 27(inF1) - 1140: 6(float) FMul 1138 1139 - Store 1137(r0) 1140 - 1142: 21(fvec3) Load 28(inFV0) - 1143: 6(float) Load 26(inF0) - 1144: 21(fvec3) VectorTimesScalar 1142 1143 - Store 1141(r1) 1144 - 1146: 6(float) Load 26(inF0) - 1147: 21(fvec3) Load 28(inFV0) - 1148: 21(fvec3) VectorTimesScalar 1147 1146 - Store 1145(r2) 1148 - 1150: 21(fvec3) Load 28(inFV0) - 1151: 21(fvec3) Load 29(inFV1) - 1152: 6(float) Dot 1150 1151 - Store 1149(r3) 1152 - 1154: 23 Load 30(inFM0) - 1155: 21(fvec3) Load 28(inFV0) - 1156: 21(fvec3) MatrixTimesVector 1154 1155 - Store 1153(r4) 1156 - 1158: 21(fvec3) Load 28(inFV0) - 1159: 23 Load 30(inFM0) - 1160: 21(fvec3) VectorTimesMatrix 1158 1159 - Store 1157(r5) 1160 - 1162: 23 Load 30(inFM0) - 1163: 6(float) Load 26(inF0) - 1164: 23 MatrixTimesScalar 1162 1163 - Store 1161(r6) 1164 - 1166: 6(float) Load 26(inF0) - 1167: 23 Load 30(inFM0) - 1168: 23 MatrixTimesScalar 1167 1166 - Store 1165(r7) 1168 - 1170: 23 Load 30(inFM0) - 1171: 23 Load 31(inFM1) - 1172: 23 MatrixTimesMatrix 1170 1171 - Store 1169(r8) 1172 + 1169(r0): 7(ptr) Variable Function + 1173(r1): 22(ptr) Variable Function + 1177(r2): 22(ptr) Variable Function + 1181(r3): 7(ptr) Variable Function + 1185(r4): 22(ptr) Variable Function + 1189(r5): 22(ptr) Variable Function + 1193(r6): 24(ptr) Variable Function + 1197(r7): 24(ptr) Variable Function + 1201(r8): 24(ptr) Variable Function + 1170: 6(float) Load 26(inF0) + 1171: 6(float) Load 27(inF1) + 1172: 6(float) FMul 1170 1171 + Store 1169(r0) 1172 + 1174: 21(fvec3) Load 28(inFV0) + 1175: 6(float) Load 26(inF0) + 1176: 21(fvec3) VectorTimesScalar 1174 1175 + Store 1173(r1) 1176 + 1178: 6(float) Load 26(inF0) + 1179: 21(fvec3) Load 28(inFV0) + 1180: 21(fvec3) VectorTimesScalar 1179 1178 + Store 1177(r2) 1180 + 1182: 21(fvec3) Load 28(inFV0) + 1183: 21(fvec3) Load 29(inFV1) + 1184: 6(float) Dot 1182 1183 + Store 1181(r3) 1184 + 1186: 23 Load 30(inFM0) + 1187: 21(fvec3) Load 28(inFV0) + 1188: 21(fvec3) MatrixTimesVector 1186 1187 + Store 1185(r4) 1188 + 1190: 21(fvec3) Load 28(inFV0) + 1191: 23 Load 30(inFM0) + 1192: 21(fvec3) VectorTimesMatrix 1190 1191 + Store 1189(r5) 1192 + 1194: 23 Load 30(inFM0) + 1195: 6(float) Load 26(inF0) + 1196: 23 MatrixTimesScalar 1194 1195 + Store 1193(r6) 1196 + 1198: 6(float) Load 26(inF0) + 1199: 23 Load 30(inFM0) + 1200: 23 MatrixTimesScalar 1199 1198 + Store 1197(r7) 1200 + 1202: 23 Load 30(inFM0) + 1203: 23 Load 31(inFM1) + 1204: 23 MatrixTimesMatrix 1202 1203 + Store 1201(r8) 1204 Return FunctionEnd 45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 @@ -3241,50 +3359,62 @@ gl_FragCoord origin is upper left 43(inFM0): 37(ptr) FunctionParameter 44(inFM1): 37(ptr) FunctionParameter 46: Label - 1173(r0): 7(ptr) Variable Function - 1177(r1): 35(ptr) Variable Function - 1181(r2): 35(ptr) Variable Function - 1185(r3): 7(ptr) Variable Function - 1189(r4): 35(ptr) Variable Function - 1193(r5): 35(ptr) Variable Function - 1197(r6): 37(ptr) Variable Function - 1201(r7): 37(ptr) Variable Function - 1205(r8): 37(ptr) Variable Function - 1174: 6(float) Load 39(inF0) - 1175: 6(float) Load 40(inF1) - 1176: 6(float) FMul 1174 1175 - Store 1173(r0) 1176 - 1178: 34(fvec4) Load 41(inFV0) - 1179: 6(float) Load 39(inF0) - 1180: 34(fvec4) VectorTimesScalar 1178 1179 - Store 1177(r1) 1180 - 1182: 6(float) Load 39(inF0) - 1183: 34(fvec4) Load 41(inFV0) - 1184: 34(fvec4) VectorTimesScalar 1183 1182 - Store 1181(r2) 1184 - 1186: 34(fvec4) Load 41(inFV0) - 1187: 34(fvec4) Load 42(inFV1) - 1188: 6(float) Dot 1186 1187 - Store 1185(r3) 1188 - 1190: 36 Load 43(inFM0) - 1191: 34(fvec4) Load 41(inFV0) - 1192: 34(fvec4) MatrixTimesVector 1190 1191 - Store 1189(r4) 1192 - 1194: 34(fvec4) Load 41(inFV0) - 1195: 36 Load 43(inFM0) - 1196: 34(fvec4) VectorTimesMatrix 1194 1195 - Store 1193(r5) 1196 - 1198: 36 Load 43(inFM0) - 1199: 6(float) Load 39(inF0) - 1200: 36 MatrixTimesScalar 1198 1199 - Store 1197(r6) 1200 - 1202: 6(float) Load 39(inF0) - 1203: 36 Load 43(inFM0) - 1204: 36 MatrixTimesScalar 1203 1202 - Store 1201(r7) 1204 - 1206: 36 Load 43(inFM0) - 1207: 36 Load 44(inFM1) - 1208: 36 MatrixTimesMatrix 1206 1207 - Store 1205(r8) 1208 + 1205(r0): 7(ptr) Variable Function + 1209(r1): 35(ptr) Variable Function + 1213(r2): 35(ptr) Variable Function + 1217(r3): 7(ptr) Variable Function + 1221(r4): 35(ptr) Variable Function + 1225(r5): 35(ptr) Variable Function + 1229(r6): 37(ptr) Variable Function + 1233(r7): 37(ptr) Variable Function + 1237(r8): 37(ptr) Variable Function + 1241(gs_ua): 65(ptr) Variable Function + 1242(gs_ub): 65(ptr) Variable Function + 1243(gs_uc): 65(ptr) Variable Function + 1244(gs_ua2): 210(ptr) Variable Function + 1245(gs_ub2): 210(ptr) Variable Function + 1246(gs_uc2): 210(ptr) Variable Function + 1247(gs_ua3): 380(ptr) Variable Function + 1248(gs_ub3): 380(ptr) Variable Function + 1249(gs_uc3): 380(ptr) Variable Function + 1250(gs_ua4): 552(ptr) Variable Function + 1251(gs_ub4): 552(ptr) Variable Function + 1252(gs_uc4): 552(ptr) Variable Function + 1206: 6(float) Load 39(inF0) + 1207: 6(float) Load 40(inF1) + 1208: 6(float) FMul 1206 1207 + Store 1205(r0) 1208 + 1210: 34(fvec4) Load 41(inFV0) + 1211: 6(float) Load 39(inF0) + 1212: 34(fvec4) VectorTimesScalar 1210 1211 + Store 1209(r1) 1212 + 1214: 6(float) Load 39(inF0) + 1215: 34(fvec4) Load 41(inFV0) + 1216: 34(fvec4) VectorTimesScalar 1215 1214 + Store 1213(r2) 1216 + 1218: 34(fvec4) Load 41(inFV0) + 1219: 34(fvec4) Load 42(inFV1) + 1220: 6(float) Dot 1218 1219 + Store 1217(r3) 1220 + 1222: 36 Load 43(inFM0) + 1223: 34(fvec4) Load 41(inFV0) + 1224: 34(fvec4) MatrixTimesVector 1222 1223 + Store 1221(r4) 1224 + 1226: 34(fvec4) Load 41(inFV0) + 1227: 36 Load 43(inFM0) + 1228: 34(fvec4) VectorTimesMatrix 1226 1227 + Store 1225(r5) 1228 + 1230: 36 Load 43(inFM0) + 1231: 6(float) Load 39(inF0) + 1232: 36 MatrixTimesScalar 1230 1231 + Store 1229(r6) 1232 + 1234: 6(float) Load 39(inF0) + 1235: 36 Load 43(inFM0) + 1236: 36 MatrixTimesScalar 1235 1234 + Store 1233(r7) 1236 + 1238: 36 Load 43(inFM0) + 1239: 36 Load 44(inFM1) + 1240: 36 MatrixTimesMatrix 1238 1239 + Store 1237(r8) 1240 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out new file mode 100644 index 00000000..0bb1dc32 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -0,0 +1,886 @@ +hlsl.intrinsics.negative.comp +ERROR: 0:7: 'asdouble' : no matching overloaded function found +ERROR: 0:8: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:9: 'clip' : no matching overloaded function found +ERROR: 0:10: 'countbits' : no matching overloaded function found +ERROR: 0:11: 'cross' : no matching overloaded function found +ERROR: 0:12: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:13: 'ddx' : no matching overloaded function found +ERROR: 0:14: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:15: 'ddx_fine' : no matching overloaded function found +ERROR: 0:16: 'ddy' : no matching overloaded function found +ERROR: 0:17: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:18: 'ddy_fine' : no matching overloaded function found +ERROR: 0:19: 'determinant' : no matching overloaded function found +ERROR: 0:20: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:21: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:22: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:23: 'f16tof32' : no matching overloaded function found +ERROR: 0:24: 'firstbithigh' : no matching overloaded function found +ERROR: 0:25: 'firstbitlow' : no matching overloaded function found +ERROR: 0:26: 'fma' : no matching overloaded function found +ERROR: 0:27: 'fwidth' : no matching overloaded function found +ERROR: 0:28: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:29: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:30: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:31: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:32: 'InterlockedCompareExchange' : no matching overloaded function found +ERROR: 0:33: 'InterlockedExchange' : no matching overloaded function found +ERROR: 0:34: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:35: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:36: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:37: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:38: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:39: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:40: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:41: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:42: 'length' : no matching overloaded function found +ERROR: 0:43: 'msad4' : no matching overloaded function found +ERROR: 0:44: 'normalize' : no matching overloaded function found +ERROR: 0:45: 'reflect' : no matching overloaded function found +ERROR: 0:46: 'refract' : no matching overloaded function found +ERROR: 0:47: 'refract' : no matching overloaded function found +ERROR: 0:48: 'reversebits' : no matching overloaded function found +ERROR: 0:49: 'transpose' : no matching overloaded function found +ERROR: 0:60: 'GetRenderTargetSamplePosition' : no matching overloaded function found +ERROR: 0:69: 'asdouble' : no matching overloaded function found +ERROR: 0:70: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:71: 'countbits' : no matching overloaded function found +ERROR: 0:72: 'cross' : no matching overloaded function found +ERROR: 0:73: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:74: 'ddx' : no matching overloaded function found +ERROR: 0:75: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:76: 'ddx_fine' : no matching overloaded function found +ERROR: 0:77: 'ddy' : no matching overloaded function found +ERROR: 0:78: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:79: 'ddy_fine' : no matching overloaded function found +ERROR: 0:80: 'determinant' : no matching overloaded function found +ERROR: 0:81: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:82: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:83: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:84: 'f16tof32' : no matching overloaded function found +ERROR: 0:85: 'firstbithigh' : no matching overloaded function found +ERROR: 0:86: 'firstbitlow' : no matching overloaded function found +ERROR: 0:87: 'fma' : no matching overloaded function found +ERROR: 0:88: 'fwidth' : no matching overloaded function found +ERROR: 0:89: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:90: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:91: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:92: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:93: 'InterlockedCompareExchange' : no matching overloaded function found +ERROR: 0:94: 'InterlockedExchange' : no matching overloaded function found +ERROR: 0:95: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:96: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:97: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:98: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:99: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:100: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:101: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:102: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:103: 'noise' : no matching overloaded function found +ERROR: 0:104: 'reversebits' : no matching overloaded function found +ERROR: 0:105: 'transpose' : no matching overloaded function found +ERROR: 0:116: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:117: 'countbits' : no matching overloaded function found +ERROR: 0:118: 'ddx' : no matching overloaded function found +ERROR: 0:119: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:120: 'ddx_fine' : no matching overloaded function found +ERROR: 0:121: 'ddy' : no matching overloaded function found +ERROR: 0:122: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:123: 'ddy_fine' : no matching overloaded function found +ERROR: 0:124: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:125: 'determinant' : no matching overloaded function found +ERROR: 0:126: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:127: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:128: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:129: 'f16tof32' : no matching overloaded function found +ERROR: 0:130: 'firstbithigh' : no matching overloaded function found +ERROR: 0:131: 'firstbitlow' : no matching overloaded function found +ERROR: 0:132: 'fma' : no matching overloaded function found +ERROR: 0:133: 'fwidth' : no matching overloaded function found +ERROR: 0:134: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:135: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:136: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:137: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:138: 'InterlockedCompareExchange' : no matching overloaded function found +ERROR: 0:139: 'InterlockedExchange' : no matching overloaded function found +ERROR: 0:140: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:141: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:142: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:143: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:144: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:145: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:146: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:147: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:148: 'noise' : no matching overloaded function found +ERROR: 0:149: 'reversebits' : no matching overloaded function found +ERROR: 0:150: 'transpose' : no matching overloaded function found +ERROR: 0:161: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:162: 'countbits' : no matching overloaded function found +ERROR: 0:163: 'cross' : no matching overloaded function found +ERROR: 0:164: 'determinant' : no matching overloaded function found +ERROR: 0:165: 'ddx' : no matching overloaded function found +ERROR: 0:166: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:167: 'ddx_fine' : no matching overloaded function found +ERROR: 0:168: 'ddy' : no matching overloaded function found +ERROR: 0:169: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:170: 'ddy_fine' : no matching overloaded function found +ERROR: 0:171: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:172: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:173: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:174: 'f16tof32' : no matching overloaded function found +ERROR: 0:175: 'firstbithigh' : no matching overloaded function found +ERROR: 0:176: 'firstbitlow' : no matching overloaded function found +ERROR: 0:177: 'fma' : no matching overloaded function found +ERROR: 0:178: 'fwidth' : no matching overloaded function found +ERROR: 0:179: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:180: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:181: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:182: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:183: 'InterlockedCompareExchange' : no matching overloaded function found +ERROR: 0:184: 'InterlockedExchange' : no matching overloaded function found +ERROR: 0:185: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:186: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:187: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:188: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:189: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:190: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:191: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:192: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:193: 'noise' : no matching overloaded function found +ERROR: 0:194: 'reversebits' : no matching overloaded function found +ERROR: 0:195: 'transpose' : no matching overloaded function found +ERROR: 151 compilation errors. No code generated. + + +Shader version: 450 +local_size = (1, 1, 1) +ERROR: node is still EOpNull! +0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:2 'inI0' (temp int) +0:? Sequence +0:7 Constant: +0:7 0.000000 +0:8 Constant: +0:8 0.000000 +0:9 Constant: +0:9 0.000000 +0:10 Constant: +0:10 0.000000 +0:11 Constant: +0:11 0.000000 +0:12 Constant: +0:12 0.000000 +0:13 Constant: +0:13 0.000000 +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:16 Constant: +0:16 0.000000 +0:17 Constant: +0:17 0.000000 +0:18 Constant: +0:18 0.000000 +0:19 Constant: +0:19 0.000000 +0:20 Constant: +0:20 0.000000 +0:21 Constant: +0:21 0.000000 +0:22 Constant: +0:22 0.000000 +0:23 Constant: +0:23 0.000000 +0:24 Constant: +0:24 0.000000 +0:25 Constant: +0:25 0.000000 +0:26 Constant: +0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:28 Constant: +0:28 0.000000 +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:33 Constant: +0:33 0.000000 +0:34 Constant: +0:34 0.000000 +0:35 Constant: +0:35 0.000000 +0:36 Constant: +0:36 0.000000 +0:37 Constant: +0:37 0.000000 +0:38 Constant: +0:38 0.000000 +0:39 Constant: +0:39 0.000000 +0:40 Constant: +0:40 0.000000 +0:41 Constant: +0:41 0.000000 +0:42 Constant: +0:42 0.000000 +0:43 Constant: +0:43 0.000000 +0:44 Constant: +0:44 0.000000 +0:45 Constant: +0:45 0.000000 +0:46 Constant: +0:46 0.000000 +0:47 Constant: +0:47 0.000000 +0:48 Constant: +0:48 0.000000 +0:49 Constant: +0:49 0.000000 +0:53 Branch: Return with expression +0:53 Constant: +0:53 0.000000 +0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:57 Function Parameters: +0:57 'inF0' (temp 1-component vector of float) +0:57 'inF1' (temp 1-component vector of float) +0:57 'inF2' (temp 1-component vector of float) +0:57 'inI0' (temp 1-component vector of int) +0:? Sequence +0:60 Constant: +0:60 0.000000 +0:62 Branch: Return with expression +0:62 Constant: +0:62 0.000000 +0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:66 Function Parameters: +0:66 'inF0' (temp 2-component vector of float) +0:66 'inF1' (temp 2-component vector of float) +0:66 'inF2' (temp 2-component vector of float) +0:66 'inI0' (temp 2-component vector of int) +0:? Sequence +0:69 Constant: +0:69 0.000000 +0:70 Constant: +0:70 0.000000 +0:71 Constant: +0:71 0.000000 +0:72 Constant: +0:72 0.000000 +0:73 Constant: +0:73 0.000000 +0:74 Constant: +0:74 0.000000 +0:75 Constant: +0:75 0.000000 +0:76 Constant: +0:76 0.000000 +0:77 Constant: +0:77 0.000000 +0:78 Constant: +0:78 0.000000 +0:79 Constant: +0:79 0.000000 +0:80 Constant: +0:80 0.000000 +0:81 Constant: +0:81 0.000000 +0:82 Constant: +0:82 0.000000 +0:83 Constant: +0:83 0.000000 +0:84 Constant: +0:84 0.000000 +0:85 Constant: +0:85 0.000000 +0:86 Constant: +0:86 0.000000 +0:87 Constant: +0:87 0.000000 +0:88 Constant: +0:88 0.000000 +0:89 Constant: +0:89 0.000000 +0:90 Constant: +0:90 0.000000 +0:91 Constant: +0:91 0.000000 +0:92 Constant: +0:92 0.000000 +0:93 Constant: +0:93 0.000000 +0:94 Constant: +0:94 0.000000 +0:95 Constant: +0:95 0.000000 +0:96 Constant: +0:96 0.000000 +0:97 Constant: +0:97 0.000000 +0:98 Constant: +0:98 0.000000 +0:99 Constant: +0:99 0.000000 +0:100 Constant: +0:100 0.000000 +0:101 Constant: +0:101 0.000000 +0:102 Constant: +0:102 0.000000 +0:103 Constant: +0:103 0.000000 +0:104 Constant: +0:104 0.000000 +0:105 Constant: +0:105 0.000000 +0:109 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:113 Function Parameters: +0:113 'inF0' (temp 3-component vector of float) +0:113 'inF1' (temp 3-component vector of float) +0:113 'inF2' (temp 3-component vector of float) +0:113 'inI0' (temp 3-component vector of int) +0:? Sequence +0:116 Constant: +0:116 0.000000 +0:117 Constant: +0:117 0.000000 +0:118 Constant: +0:118 0.000000 +0:119 Constant: +0:119 0.000000 +0:120 Constant: +0:120 0.000000 +0:121 Constant: +0:121 0.000000 +0:122 Constant: +0:122 0.000000 +0:123 Constant: +0:123 0.000000 +0:124 Constant: +0:124 0.000000 +0:125 Constant: +0:125 0.000000 +0:126 Constant: +0:126 0.000000 +0:127 Constant: +0:127 0.000000 +0:128 Constant: +0:128 0.000000 +0:129 Constant: +0:129 0.000000 +0:130 Constant: +0:130 0.000000 +0:131 Constant: +0:131 0.000000 +0:132 Constant: +0:132 0.000000 +0:133 Constant: +0:133 0.000000 +0:134 Constant: +0:134 0.000000 +0:135 Constant: +0:135 0.000000 +0:136 Constant: +0:136 0.000000 +0:137 Constant: +0:137 0.000000 +0:138 Constant: +0:138 0.000000 +0:139 Constant: +0:139 0.000000 +0:140 Constant: +0:140 0.000000 +0:141 Constant: +0:141 0.000000 +0:142 Constant: +0:142 0.000000 +0:143 Constant: +0:143 0.000000 +0:144 Constant: +0:144 0.000000 +0:145 Constant: +0:145 0.000000 +0:146 Constant: +0:146 0.000000 +0:147 Constant: +0:147 0.000000 +0:148 Constant: +0:148 0.000000 +0:149 Constant: +0:149 0.000000 +0:150 Constant: +0:150 0.000000 +0:154 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:158 Function Parameters: +0:158 'inF0' (temp 4-component vector of float) +0:158 'inF1' (temp 4-component vector of float) +0:158 'inF2' (temp 4-component vector of float) +0:158 'inI0' (temp 4-component vector of int) +0:? Sequence +0:161 Constant: +0:161 0.000000 +0:162 Constant: +0:162 0.000000 +0:163 Constant: +0:163 0.000000 +0:164 Constant: +0:164 0.000000 +0:165 Constant: +0:165 0.000000 +0:166 Constant: +0:166 0.000000 +0:167 Constant: +0:167 0.000000 +0:168 Constant: +0:168 0.000000 +0:169 Constant: +0:169 0.000000 +0:170 Constant: +0:170 0.000000 +0:171 Constant: +0:171 0.000000 +0:172 Constant: +0:172 0.000000 +0:173 Constant: +0:173 0.000000 +0:174 Constant: +0:174 0.000000 +0:175 Constant: +0:175 0.000000 +0:176 Constant: +0:176 0.000000 +0:177 Constant: +0:177 0.000000 +0:178 Constant: +0:178 0.000000 +0:179 Constant: +0:179 0.000000 +0:180 Constant: +0:180 0.000000 +0:181 Constant: +0:181 0.000000 +0:182 Constant: +0:182 0.000000 +0:183 Constant: +0:183 0.000000 +0:184 Constant: +0:184 0.000000 +0:185 Constant: +0:185 0.000000 +0:186 Constant: +0:186 0.000000 +0:187 Constant: +0:187 0.000000 +0:188 Constant: +0:188 0.000000 +0:189 Constant: +0:189 0.000000 +0:190 Constant: +0:190 0.000000 +0:191 Constant: +0:191 0.000000 +0:192 Constant: +0:192 0.000000 +0:193 Constant: +0:193 0.000000 +0:194 Constant: +0:194 0.000000 +0:195 Constant: +0:195 0.000000 +0:199 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? Linker Objects + + +Linked compute stage: + + +Shader version: 450 +local_size = (1, 1, 1) +ERROR: node is still EOpNull! +0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (temp float) +0:2 'inF1' (temp float) +0:2 'inF2' (temp float) +0:2 'inI0' (temp int) +0:? Sequence +0:7 Constant: +0:7 0.000000 +0:8 Constant: +0:8 0.000000 +0:9 Constant: +0:9 0.000000 +0:10 Constant: +0:10 0.000000 +0:11 Constant: +0:11 0.000000 +0:12 Constant: +0:12 0.000000 +0:13 Constant: +0:13 0.000000 +0:14 Constant: +0:14 0.000000 +0:15 Constant: +0:15 0.000000 +0:16 Constant: +0:16 0.000000 +0:17 Constant: +0:17 0.000000 +0:18 Constant: +0:18 0.000000 +0:19 Constant: +0:19 0.000000 +0:20 Constant: +0:20 0.000000 +0:21 Constant: +0:21 0.000000 +0:22 Constant: +0:22 0.000000 +0:23 Constant: +0:23 0.000000 +0:24 Constant: +0:24 0.000000 +0:25 Constant: +0:25 0.000000 +0:26 Constant: +0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:28 Constant: +0:28 0.000000 +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:33 Constant: +0:33 0.000000 +0:34 Constant: +0:34 0.000000 +0:35 Constant: +0:35 0.000000 +0:36 Constant: +0:36 0.000000 +0:37 Constant: +0:37 0.000000 +0:38 Constant: +0:38 0.000000 +0:39 Constant: +0:39 0.000000 +0:40 Constant: +0:40 0.000000 +0:41 Constant: +0:41 0.000000 +0:42 Constant: +0:42 0.000000 +0:43 Constant: +0:43 0.000000 +0:44 Constant: +0:44 0.000000 +0:45 Constant: +0:45 0.000000 +0:46 Constant: +0:46 0.000000 +0:47 Constant: +0:47 0.000000 +0:48 Constant: +0:48 0.000000 +0:49 Constant: +0:49 0.000000 +0:53 Branch: Return with expression +0:53 Constant: +0:53 0.000000 +0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:57 Function Parameters: +0:57 'inF0' (temp 1-component vector of float) +0:57 'inF1' (temp 1-component vector of float) +0:57 'inF2' (temp 1-component vector of float) +0:57 'inI0' (temp 1-component vector of int) +0:? Sequence +0:60 Constant: +0:60 0.000000 +0:62 Branch: Return with expression +0:62 Constant: +0:62 0.000000 +0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:66 Function Parameters: +0:66 'inF0' (temp 2-component vector of float) +0:66 'inF1' (temp 2-component vector of float) +0:66 'inF2' (temp 2-component vector of float) +0:66 'inI0' (temp 2-component vector of int) +0:? Sequence +0:69 Constant: +0:69 0.000000 +0:70 Constant: +0:70 0.000000 +0:71 Constant: +0:71 0.000000 +0:72 Constant: +0:72 0.000000 +0:73 Constant: +0:73 0.000000 +0:74 Constant: +0:74 0.000000 +0:75 Constant: +0:75 0.000000 +0:76 Constant: +0:76 0.000000 +0:77 Constant: +0:77 0.000000 +0:78 Constant: +0:78 0.000000 +0:79 Constant: +0:79 0.000000 +0:80 Constant: +0:80 0.000000 +0:81 Constant: +0:81 0.000000 +0:82 Constant: +0:82 0.000000 +0:83 Constant: +0:83 0.000000 +0:84 Constant: +0:84 0.000000 +0:85 Constant: +0:85 0.000000 +0:86 Constant: +0:86 0.000000 +0:87 Constant: +0:87 0.000000 +0:88 Constant: +0:88 0.000000 +0:89 Constant: +0:89 0.000000 +0:90 Constant: +0:90 0.000000 +0:91 Constant: +0:91 0.000000 +0:92 Constant: +0:92 0.000000 +0:93 Constant: +0:93 0.000000 +0:94 Constant: +0:94 0.000000 +0:95 Constant: +0:95 0.000000 +0:96 Constant: +0:96 0.000000 +0:97 Constant: +0:97 0.000000 +0:98 Constant: +0:98 0.000000 +0:99 Constant: +0:99 0.000000 +0:100 Constant: +0:100 0.000000 +0:101 Constant: +0:101 0.000000 +0:102 Constant: +0:102 0.000000 +0:103 Constant: +0:103 0.000000 +0:104 Constant: +0:104 0.000000 +0:105 Constant: +0:105 0.000000 +0:109 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:113 Function Parameters: +0:113 'inF0' (temp 3-component vector of float) +0:113 'inF1' (temp 3-component vector of float) +0:113 'inF2' (temp 3-component vector of float) +0:113 'inI0' (temp 3-component vector of int) +0:? Sequence +0:116 Constant: +0:116 0.000000 +0:117 Constant: +0:117 0.000000 +0:118 Constant: +0:118 0.000000 +0:119 Constant: +0:119 0.000000 +0:120 Constant: +0:120 0.000000 +0:121 Constant: +0:121 0.000000 +0:122 Constant: +0:122 0.000000 +0:123 Constant: +0:123 0.000000 +0:124 Constant: +0:124 0.000000 +0:125 Constant: +0:125 0.000000 +0:126 Constant: +0:126 0.000000 +0:127 Constant: +0:127 0.000000 +0:128 Constant: +0:128 0.000000 +0:129 Constant: +0:129 0.000000 +0:130 Constant: +0:130 0.000000 +0:131 Constant: +0:131 0.000000 +0:132 Constant: +0:132 0.000000 +0:133 Constant: +0:133 0.000000 +0:134 Constant: +0:134 0.000000 +0:135 Constant: +0:135 0.000000 +0:136 Constant: +0:136 0.000000 +0:137 Constant: +0:137 0.000000 +0:138 Constant: +0:138 0.000000 +0:139 Constant: +0:139 0.000000 +0:140 Constant: +0:140 0.000000 +0:141 Constant: +0:141 0.000000 +0:142 Constant: +0:142 0.000000 +0:143 Constant: +0:143 0.000000 +0:144 Constant: +0:144 0.000000 +0:145 Constant: +0:145 0.000000 +0:146 Constant: +0:146 0.000000 +0:147 Constant: +0:147 0.000000 +0:148 Constant: +0:148 0.000000 +0:149 Constant: +0:149 0.000000 +0:150 Constant: +0:150 0.000000 +0:154 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:158 Function Parameters: +0:158 'inF0' (temp 4-component vector of float) +0:158 'inF1' (temp 4-component vector of float) +0:158 'inF2' (temp 4-component vector of float) +0:158 'inI0' (temp 4-component vector of int) +0:? Sequence +0:161 Constant: +0:161 0.000000 +0:162 Constant: +0:162 0.000000 +0:163 Constant: +0:163 0.000000 +0:164 Constant: +0:164 0.000000 +0:165 Constant: +0:165 0.000000 +0:166 Constant: +0:166 0.000000 +0:167 Constant: +0:167 0.000000 +0:168 Constant: +0:168 0.000000 +0:169 Constant: +0:169 0.000000 +0:170 Constant: +0:170 0.000000 +0:171 Constant: +0:171 0.000000 +0:172 Constant: +0:172 0.000000 +0:173 Constant: +0:173 0.000000 +0:174 Constant: +0:174 0.000000 +0:175 Constant: +0:175 0.000000 +0:176 Constant: +0:176 0.000000 +0:177 Constant: +0:177 0.000000 +0:178 Constant: +0:178 0.000000 +0:179 Constant: +0:179 0.000000 +0:180 Constant: +0:180 0.000000 +0:181 Constant: +0:181 0.000000 +0:182 Constant: +0:182 0.000000 +0:183 Constant: +0:183 0.000000 +0:184 Constant: +0:184 0.000000 +0:185 Constant: +0:185 0.000000 +0:186 Constant: +0:186 0.000000 +0:187 Constant: +0:187 0.000000 +0:188 Constant: +0:188 0.000000 +0:189 Constant: +0:189 0.000000 +0:190 Constant: +0:190 0.000000 +0:191 Constant: +0:191 0.000000 +0:192 Constant: +0:192 0.000000 +0:193 Constant: +0:193 0.000000 +0:194 Constant: +0:194 0.000000 +0:195 Constant: +0:195 0.000000 +0:199 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? Linker Objects + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index de711e9b..2bbec5ab 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -1,206 +1,243 @@ hlsl.intrinsics.negative.vert -ERROR: 0:5: 'asdouble' : no matching overloaded function found -ERROR: 0:6: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:7: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:8: 'clip' : no matching overloaded function found -ERROR: 0:9: 'countbits' : no matching overloaded function found -ERROR: 0:10: 'cross' : no matching overloaded function found -ERROR: 0:11: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:14: 'ddx' : no matching overloaded function found -ERROR: 0:15: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:16: 'ddx_fine' : no matching overloaded function found -ERROR: 0:17: 'ddy' : no matching overloaded function found -ERROR: 0:18: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:19: 'ddy_fine' : no matching overloaded function found -ERROR: 0:20: 'determinant' : no matching overloaded function found -ERROR: 0:21: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:22: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:23: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:24: 'f16tof32' : no matching overloaded function found -ERROR: 0:25: 'firstbithigh' : no matching overloaded function found -ERROR: 0:26: 'firstbitlow' : no matching overloaded function found -ERROR: 0:27: 'fma' : no matching overloaded function found -ERROR: 0:35: 'length' : no matching overloaded function found -ERROR: 0:36: 'msad4' : no matching overloaded function found -ERROR: 0:37: 'normalize' : no matching overloaded function found -ERROR: 0:38: 'reflect' : no matching overloaded function found -ERROR: 0:39: 'refract' : no matching overloaded function found -ERROR: 0:40: 'refract' : no matching overloaded function found -ERROR: 0:41: 'reversebits' : no matching overloaded function found -ERROR: 0:42: 'transpose' : no matching overloaded function found -ERROR: 0:53: 'GetRenderTargetSamplePosition' : no matching overloaded function found -ERROR: 0:60: 'asdouble' : no matching overloaded function found -ERROR: 0:61: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:62: 'countbits' : no matching overloaded function found -ERROR: 0:63: 'cross' : no matching overloaded function found -ERROR: 0:64: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:65: 'ddx' : no matching overloaded function found -ERROR: 0:66: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:67: 'ddx_fine' : no matching overloaded function found -ERROR: 0:68: 'ddy' : no matching overloaded function found -ERROR: 0:69: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:70: 'ddy_fine' : no matching overloaded function found -ERROR: 0:71: 'determinant' : no matching overloaded function found -ERROR: 0:72: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:73: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:74: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:75: 'f16tof32' : no matching overloaded function found -ERROR: 0:76: 'firstbithigh' : no matching overloaded function found -ERROR: 0:77: 'firstbitlow' : no matching overloaded function found -ERROR: 0:78: 'fma' : no matching overloaded function found -ERROR: 0:79: 'noise' : no matching overloaded function found -ERROR: 0:80: 'reversebits' : no matching overloaded function found -ERROR: 0:81: 'transpose' : no matching overloaded function found -ERROR: 0:90: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:91: 'countbits' : no matching overloaded function found +ERROR: 0:20: 'asdouble' : no matching overloaded function found +ERROR: 0:21: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:22: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:23: 'clip' : no matching overloaded function found +ERROR: 0:24: 'countbits' : no matching overloaded function found +ERROR: 0:25: 'cross' : no matching overloaded function found +ERROR: 0:26: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:29: 'ddx' : no matching overloaded function found +ERROR: 0:30: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:31: 'ddx_fine' : no matching overloaded function found +ERROR: 0:32: 'ddy' : no matching overloaded function found +ERROR: 0:33: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:34: 'ddy_fine' : no matching overloaded function found +ERROR: 0:35: 'determinant' : no matching overloaded function found +ERROR: 0:36: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:37: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:38: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:39: 'f16tof32' : no matching overloaded function found +ERROR: 0:40: 'firstbithigh' : no matching overloaded function found +ERROR: 0:41: 'firstbitlow' : no matching overloaded function found +ERROR: 0:42: 'fma' : no matching overloaded function found +ERROR: 0:43: 'fwidth' : no matching overloaded function found +ERROR: 0:44: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:45: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:46: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:47: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:48: 'InterlockedCompareExchange' : no matching overloaded function found +ERROR: 0:49: 'InterlockedExchange' : no matching overloaded function found +ERROR: 0:50: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:51: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:52: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:53: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:54: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:55: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:56: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:57: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:60: 'length' : no matching overloaded function found +ERROR: 0:61: 'msad4' : no matching overloaded function found +ERROR: 0:62: 'normalize' : no matching overloaded function found +ERROR: 0:63: 'reflect' : no matching overloaded function found +ERROR: 0:64: 'refract' : no matching overloaded function found +ERROR: 0:65: 'refract' : no matching overloaded function found +ERROR: 0:66: 'reversebits' : no matching overloaded function found +ERROR: 0:67: 'transpose' : no matching overloaded function found +ERROR: 0:78: 'GetRenderTargetSamplePosition' : no matching overloaded function found +ERROR: 0:87: 'asdouble' : no matching overloaded function found +ERROR: 0:88: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:89: 'countbits' : no matching overloaded function found +ERROR: 0:90: 'cross' : no matching overloaded function found +ERROR: 0:91: 'D3DCOLORtoUBYTE4' : no matching overloaded function found ERROR: 0:92: 'ddx' : no matching overloaded function found ERROR: 0:93: 'ddx_coarse' : no matching overloaded function found ERROR: 0:94: 'ddx_fine' : no matching overloaded function found ERROR: 0:95: 'ddy' : no matching overloaded function found ERROR: 0:96: 'ddy_coarse' : no matching overloaded function found ERROR: 0:97: 'ddy_fine' : no matching overloaded function found -ERROR: 0:98: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:99: 'determinant' : no matching overloaded function found -ERROR: 0:100: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:101: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:102: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:103: 'f16tof32' : no matching overloaded function found -ERROR: 0:104: 'firstbithigh' : no matching overloaded function found -ERROR: 0:105: 'firstbitlow' : no matching overloaded function found -ERROR: 0:106: 'fma' : no matching overloaded function found -ERROR: 0:107: 'noise' : no matching overloaded function found -ERROR: 0:108: 'reversebits' : no matching overloaded function found -ERROR: 0:109: 'transpose' : no matching overloaded function found -ERROR: 0:118: 'CheckAccessFullyMapped' : no matching overloaded function found -ERROR: 0:119: 'countbits' : no matching overloaded function found -ERROR: 0:120: 'cross' : no matching overloaded function found -ERROR: 0:121: 'determinant' : no matching overloaded function found -ERROR: 0:122: 'ddx' : no matching overloaded function found -ERROR: 0:123: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:124: 'ddx_fine' : no matching overloaded function found -ERROR: 0:125: 'ddy' : no matching overloaded function found -ERROR: 0:126: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:127: 'ddy_fine' : no matching overloaded function found -ERROR: 0:128: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:129: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:130: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:131: 'f16tof32' : no matching overloaded function found -ERROR: 0:132: 'firstbithigh' : no matching overloaded function found -ERROR: 0:133: 'firstbitlow' : no matching overloaded function found -ERROR: 0:134: 'fma' : no matching overloaded function found -ERROR: 0:135: 'noise' : no matching overloaded function found -ERROR: 0:136: 'reversebits' : no matching overloaded function found -ERROR: 0:137: 'transpose' : no matching overloaded function found -ERROR: 0:177: 'countbits' : no matching overloaded function found -ERROR: 0:177: 'cross' : no matching overloaded function found -ERROR: 0:177: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:177: 'ddx' : no matching overloaded function found -ERROR: 0:177: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:177: 'ddx_fine' : no matching overloaded function found -ERROR: 0:177: 'ddy' : no matching overloaded function found -ERROR: 0:177: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:177: 'ddy_fine' : no matching overloaded function found -ERROR: 0:177: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:177: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:177: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:177: 'f16tof32' : no matching overloaded function found -ERROR: 0:177: 'firstbithigh' : no matching overloaded function found -ERROR: 0:177: 'firstbitlow' : no matching overloaded function found -ERROR: 0:177: 'fma' : no matching overloaded function found -ERROR: 0:177: 'noise' : no matching overloaded function found -ERROR: 0:177: 'reversebits' : no matching overloaded function found -ERROR: 0:177: 'length' : no matching overloaded function found -ERROR: 0:177: 'noise' : no matching overloaded function found -ERROR: 0:177: 'normalize' : no matching overloaded function found -ERROR: 0:177: 'reflect' : no matching overloaded function found -ERROR: 0:177: 'refract' : no matching overloaded function found -ERROR: 0:177: 'reversebits' : no matching overloaded function found -ERROR: 0:185: 'countbits' : no matching overloaded function found -ERROR: 0:185: 'cross' : no matching overloaded function found -ERROR: 0:185: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:185: 'ddx' : no matching overloaded function found -ERROR: 0:185: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:98: 'determinant' : no matching overloaded function found +ERROR: 0:99: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:100: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:101: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:102: 'f16tof32' : no matching overloaded function found +ERROR: 0:103: 'firstbithigh' : no matching overloaded function found +ERROR: 0:104: 'firstbitlow' : no matching overloaded function found +ERROR: 0:105: 'fma' : no matching overloaded function found +ERROR: 0:106: 'fwidth' : no matching overloaded function found +ERROR: 0:107: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:108: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:109: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:110: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:111: 'InterlockedCompareExchange' : no matching overloaded function found +ERROR: 0:112: 'InterlockedExchange' : no matching overloaded function found +ERROR: 0:113: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:114: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:115: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:116: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:117: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:118: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:119: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:120: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:121: 'noise' : no matching overloaded function found +ERROR: 0:122: 'reversebits' : no matching overloaded function found +ERROR: 0:123: 'transpose' : no matching overloaded function found +ERROR: 0:134: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:135: 'countbits' : no matching overloaded function found +ERROR: 0:136: 'ddx' : no matching overloaded function found +ERROR: 0:137: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:138: 'ddx_fine' : no matching overloaded function found +ERROR: 0:139: 'ddy' : no matching overloaded function found +ERROR: 0:140: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:141: 'ddy_fine' : no matching overloaded function found +ERROR: 0:142: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:143: 'determinant' : no matching overloaded function found +ERROR: 0:144: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:145: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:146: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:147: 'f16tof32' : no matching overloaded function found +ERROR: 0:148: 'firstbithigh' : no matching overloaded function found +ERROR: 0:149: 'firstbitlow' : no matching overloaded function found +ERROR: 0:150: 'fma' : no matching overloaded function found +ERROR: 0:151: 'fwidth' : no matching overloaded function found +ERROR: 0:152: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:153: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:154: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:155: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:156: 'InterlockedCompareExchange' : no matching overloaded function found +ERROR: 0:157: 'InterlockedExchange' : no matching overloaded function found +ERROR: 0:158: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:159: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:160: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:161: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:162: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:163: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:164: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:165: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:166: 'noise' : no matching overloaded function found +ERROR: 0:167: 'reversebits' : no matching overloaded function found +ERROR: 0:168: 'transpose' : no matching overloaded function found +ERROR: 0:179: 'CheckAccessFullyMapped' : no matching overloaded function found +ERROR: 0:180: 'countbits' : no matching overloaded function found +ERROR: 0:181: 'cross' : no matching overloaded function found +ERROR: 0:182: 'determinant' : no matching overloaded function found +ERROR: 0:183: 'ddx' : no matching overloaded function found +ERROR: 0:184: 'ddx_coarse' : no matching overloaded function found ERROR: 0:185: 'ddx_fine' : no matching overloaded function found -ERROR: 0:185: 'ddy' : no matching overloaded function found -ERROR: 0:185: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:185: 'ddy_fine' : no matching overloaded function found -ERROR: 0:185: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:185: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:185: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:185: 'f16tof32' : no matching overloaded function found -ERROR: 0:185: 'firstbithigh' : no matching overloaded function found -ERROR: 0:185: 'firstbitlow' : no matching overloaded function found -ERROR: 0:185: 'fma' : no matching overloaded function found -ERROR: 0:185: 'noise' : no matching overloaded function found -ERROR: 0:185: 'reversebits' : no matching overloaded function found -ERROR: 0:185: 'length' : no matching overloaded function found -ERROR: 0:185: 'noise' : no matching overloaded function found -ERROR: 0:185: 'normalize' : no matching overloaded function found -ERROR: 0:185: 'reflect' : no matching overloaded function found -ERROR: 0:185: 'refract' : no matching overloaded function found -ERROR: 0:185: 'reversebits' : no matching overloaded function found -ERROR: 0:193: 'countbits' : no matching overloaded function found -ERROR: 0:193: 'cross' : no matching overloaded function found -ERROR: 0:193: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:193: 'ddx' : no matching overloaded function found -ERROR: 0:193: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:193: 'ddx_fine' : no matching overloaded function found -ERROR: 0:193: 'ddy' : no matching overloaded function found -ERROR: 0:193: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:193: 'ddy_fine' : no matching overloaded function found -ERROR: 0:193: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:193: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:193: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:193: 'f16tof32' : no matching overloaded function found +ERROR: 0:186: 'ddy' : no matching overloaded function found +ERROR: 0:187: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:188: 'ddy_fine' : no matching overloaded function found +ERROR: 0:189: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:190: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:191: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:192: 'f16tof32' : no matching overloaded function found ERROR: 0:193: 'firstbithigh' : no matching overloaded function found -ERROR: 0:193: 'firstbitlow' : no matching overloaded function found -ERROR: 0:193: 'fma' : no matching overloaded function found -ERROR: 0:193: 'noise' : no matching overloaded function found -ERROR: 0:193: 'reversebits' : no matching overloaded function found -ERROR: 0:193: 'length' : no matching overloaded function found -ERROR: 0:193: 'noise' : no matching overloaded function found -ERROR: 0:193: 'normalize' : no matching overloaded function found -ERROR: 0:193: 'reflect' : no matching overloaded function found -ERROR: 0:193: 'refract' : no matching overloaded function found -ERROR: 0:193: 'reversebits' : no matching overloaded function found -ERROR: 164 compilation errors. No code generated. +ERROR: 0:194: 'firstbitlow' : no matching overloaded function found +ERROR: 0:195: 'fma' : no matching overloaded function found +ERROR: 0:196: 'fwidth' : no matching overloaded function found +ERROR: 0:197: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:198: 'InterlockedAdd' : no matching overloaded function found +ERROR: 0:199: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:200: 'InterlockedAnd' : no matching overloaded function found +ERROR: 0:201: 'InterlockedCompareExchange' : no matching overloaded function found +ERROR: 0:202: 'InterlockedExchange' : no matching overloaded function found +ERROR: 0:203: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:204: 'InterlockedMax' : no matching overloaded function found +ERROR: 0:205: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:206: 'InterlockedMin' : no matching overloaded function found +ERROR: 0:207: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:208: 'InterlockedOr' : no matching overloaded function found +ERROR: 0:209: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:210: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:211: 'noise' : no matching overloaded function found +ERROR: 0:212: 'reversebits' : no matching overloaded function found +ERROR: 0:213: 'transpose' : no matching overloaded function found +ERROR: 0:254: 'countbits' : no matching overloaded function found +ERROR: 0:254: 'cross' : no matching overloaded function found +ERROR: 0:254: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:254: 'ddx' : no matching overloaded function found +ERROR: 0:254: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:254: 'ddx_fine' : no matching overloaded function found +ERROR: 0:254: 'ddy' : no matching overloaded function found +ERROR: 0:254: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:254: 'ddy_fine' : no matching overloaded function found +ERROR: 0:254: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:254: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:254: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:254: 'f16tof32' : no matching overloaded function found +ERROR: 0:254: 'firstbithigh' : no matching overloaded function found +ERROR: 0:254: 'firstbitlow' : no matching overloaded function found +ERROR: 0:254: 'fma' : no matching overloaded function found +ERROR: 0:254: 'fwidth' : no matching overloaded function found +ERROR: 0:254: 'noise' : no matching overloaded function found +ERROR: 0:254: 'reversebits' : no matching overloaded function found +ERROR: 0:254: 'length' : no matching overloaded function found +ERROR: 0:254: 'noise' : no matching overloaded function found +ERROR: 0:254: 'normalize' : no matching overloaded function found +ERROR: 0:254: 'reflect' : no matching overloaded function found +ERROR: 0:254: 'refract' : no matching overloaded function found +ERROR: 0:254: 'reversebits' : no matching overloaded function found +ERROR: 0:262: 'countbits' : no matching overloaded function found +ERROR: 0:262: 'cross' : no matching overloaded function found +ERROR: 0:262: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:262: 'ddx' : no matching overloaded function found +ERROR: 0:262: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:262: 'ddx_fine' : no matching overloaded function found +ERROR: 0:262: 'ddy' : no matching overloaded function found +ERROR: 0:262: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:262: 'ddy_fine' : no matching overloaded function found +ERROR: 0:262: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:262: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:262: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:262: 'f16tof32' : no matching overloaded function found +ERROR: 0:262: 'firstbithigh' : no matching overloaded function found +ERROR: 0:262: 'firstbitlow' : no matching overloaded function found +ERROR: 0:262: 'fma' : no matching overloaded function found +ERROR: 0:262: 'fwidth' : no matching overloaded function found +ERROR: 0:262: 'noise' : no matching overloaded function found +ERROR: 0:262: 'reversebits' : no matching overloaded function found +ERROR: 0:262: 'length' : no matching overloaded function found +ERROR: 0:262: 'noise' : no matching overloaded function found +ERROR: 0:262: 'normalize' : no matching overloaded function found +ERROR: 0:262: 'reflect' : no matching overloaded function found +ERROR: 0:262: 'refract' : no matching overloaded function found +ERROR: 0:262: 'reversebits' : no matching overloaded function found +ERROR: 0:270: 'countbits' : no matching overloaded function found +ERROR: 0:270: 'cross' : no matching overloaded function found +ERROR: 0:270: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:270: 'ddx' : no matching overloaded function found +ERROR: 0:270: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:270: 'ddx_fine' : no matching overloaded function found +ERROR: 0:270: 'ddy' : no matching overloaded function found +ERROR: 0:270: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:270: 'ddy_fine' : no matching overloaded function found +ERROR: 0:270: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:270: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:270: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:270: 'f16tof32' : no matching overloaded function found +ERROR: 0:270: 'firstbithigh' : no matching overloaded function found +ERROR: 0:270: 'firstbitlow' : no matching overloaded function found +ERROR: 0:270: 'fma' : no matching overloaded function found +ERROR: 0:270: 'fwidth' : no matching overloaded function found +ERROR: 0:270: 'noise' : no matching overloaded function found +ERROR: 0:270: 'reversebits' : no matching overloaded function found +ERROR: 0:270: 'length' : no matching overloaded function found +ERROR: 0:270: 'noise' : no matching overloaded function found +ERROR: 0:270: 'normalize' : no matching overloaded function found +ERROR: 0:270: 'reflect' : no matching overloaded function found +ERROR: 0:270: 'refract' : no matching overloaded function found +ERROR: 0:270: 'reversebits' : no matching overloaded function found +ERROR: 227 compilation errors. No code generated. Shader version: 450 ERROR: node is still EOpNull! -0:49 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) -0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) -0:2 'inI0' (temp int) +0:74 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) +0:15 Function Parameters: +0:15 'inF0' (temp float) +0:15 'inF1' (temp float) +0:15 'inF2' (temp float) +0:15 'inI0' (temp int) 0:? Sequence -0:5 Constant: -0:5 0.000000 -0:6 Constant: -0:6 0.000000 -0:7 Constant: -0:7 0.000000 -0:8 Constant: -0:8 0.000000 -0:9 Constant: -0:9 0.000000 -0:10 Constant: -0:10 0.000000 -0:11 Constant: -0:11 0.000000 -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Constant: -0:16 0.000000 -0:17 Constant: -0:17 0.000000 -0:18 Constant: -0:18 0.000000 -0:19 Constant: -0:19 0.000000 0:20 Constant: 0:20 0.000000 0:21 Constant: @@ -215,8 +252,18 @@ ERROR: node is still EOpNull! 0:25 0.000000 0:26 Constant: 0:26 0.000000 -0:27 Constant: -0:27 0.000000 +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:33 Constant: +0:33 0.000000 +0:34 Constant: +0:34 0.000000 0:35 Constant: 0:35 0.000000 0:36 Constant: @@ -233,28 +280,36 @@ ERROR: node is still EOpNull! 0:41 0.000000 0:42 Constant: 0:42 0.000000 -0:46 Branch: Return with expression -0:46 Constant: -0:46 0.000000 -0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) -0:50 Function Parameters: -0:50 'inF0' (temp 1-component vector of float) -0:50 'inF1' (temp 1-component vector of float) -0:50 'inF2' (temp 1-component vector of float) -0:50 'inI0' (temp 1-component vector of int) -0:? Sequence +0:43 Constant: +0:43 0.000000 +0:44 Constant: +0:44 0.000000 +0:45 Constant: +0:45 0.000000 +0:46 Constant: +0:46 0.000000 +0:47 Constant: +0:47 0.000000 +0:48 Constant: +0:48 0.000000 +0:49 Constant: +0:49 0.000000 +0:50 Constant: +0:50 0.000000 +0:51 Constant: +0:51 0.000000 +0:52 Constant: +0:52 0.000000 0:53 Constant: 0:53 0.000000 -0:55 Branch: Return with expression -0:55 Constant: -0:55 0.000000 -0:88 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) -0:59 Function Parameters: -0:59 'inF0' (temp 2-component vector of float) -0:59 'inF1' (temp 2-component vector of float) -0:59 'inF2' (temp 2-component vector of float) -0:59 'inI0' (temp 2-component vector of int) -0:? Sequence +0:54 Constant: +0:54 0.000000 +0:55 Constant: +0:55 0.000000 +0:56 Constant: +0:56 0.000000 +0:57 Constant: +0:57 0.000000 0:60 Constant: 0:60 0.000000 0:61 Constant: @@ -271,45 +326,34 @@ ERROR: node is still EOpNull! 0:66 0.000000 0:67 Constant: 0:67 0.000000 -0:68 Constant: -0:68 0.000000 -0:69 Constant: -0:69 0.000000 -0:70 Constant: -0:70 0.000000 -0:71 Constant: -0:71 0.000000 -0:72 Constant: -0:72 0.000000 -0:73 Constant: -0:73 0.000000 -0:74 Constant: -0:74 0.000000 -0:75 Constant: -0:75 0.000000 -0:76 Constant: -0:76 0.000000 -0:77 Constant: -0:77 0.000000 +0:71 Branch: Return with expression +0:71 Constant: +0:71 0.000000 +0:83 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:75 Function Parameters: +0:75 'inF0' (temp 1-component vector of float) +0:75 'inF1' (temp 1-component vector of float) +0:75 'inF2' (temp 1-component vector of float) +0:75 'inI0' (temp 1-component vector of int) +0:? Sequence 0:78 Constant: 0:78 0.000000 -0:79 Constant: -0:79 0.000000 -0:80 Constant: -0:80 0.000000 -0:81 Constant: -0:81 0.000000 -0:85 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:116 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) -0:89 Function Parameters: -0:89 'inF0' (temp 3-component vector of float) -0:89 'inF1' (temp 3-component vector of float) -0:89 'inF2' (temp 3-component vector of float) -0:89 'inI0' (temp 3-component vector of int) +0:80 Branch: Return with expression +0:80 Constant: +0:80 0.000000 +0:130 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:84 Function Parameters: +0:84 'inF0' (temp 2-component vector of float) +0:84 'inF1' (temp 2-component vector of float) +0:84 'inF2' (temp 2-component vector of float) +0:84 'inI0' (temp 2-component vector of int) 0:? Sequence +0:87 Constant: +0:87 0.000000 +0:88 Constant: +0:88 0.000000 +0:89 Constant: +0:89 0.000000 0:90 Constant: 0:90 0.000000 0:91 Constant: @@ -350,18 +394,22 @@ ERROR: node is still EOpNull! 0:108 0.000000 0:109 Constant: 0:109 0.000000 -0:113 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:174 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) -0:117 Function Parameters: -0:117 'inF0' (temp 4-component vector of float) -0:117 'inF1' (temp 4-component vector of float) -0:117 'inF2' (temp 4-component vector of float) -0:117 'inI0' (temp 4-component vector of int) -0:? Sequence +0:110 Constant: +0:110 0.000000 +0:111 Constant: +0:111 0.000000 +0:112 Constant: +0:112 0.000000 +0:113 Constant: +0:113 0.000000 +0:114 Constant: +0:114 0.000000 +0:115 Constant: +0:115 0.000000 +0:116 Constant: +0:116 0.000000 +0:117 Constant: +0:117 0.000000 0:118 Constant: 0:118 0.000000 0:119 Constant: @@ -374,26 +422,17 @@ ERROR: node is still EOpNull! 0:122 0.000000 0:123 Constant: 0:123 0.000000 -0:124 Constant: -0:124 0.000000 -0:125 Constant: -0:125 0.000000 -0:126 Constant: -0:126 0.000000 -0:127 Constant: -0:127 0.000000 -0:128 Constant: -0:128 0.000000 -0:129 Constant: -0:129 0.000000 -0:130 Constant: -0:130 0.000000 -0:131 Constant: -0:131 0.000000 -0:132 Constant: -0:132 0.000000 -0:133 Constant: -0:133 0.000000 +0:127 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:175 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:131 Function Parameters: +0:131 'inF0' (temp 3-component vector of float) +0:131 'inF1' (temp 3-component vector of float) +0:131 'inF2' (temp 3-component vector of float) +0:131 'inI0' (temp 3-component vector of int) +0:? Sequence 0:134 Constant: 0:134 0.000000 0:135 Constant: @@ -402,127 +441,275 @@ ERROR: node is still EOpNull! 0:136 0.000000 0:137 Constant: 0:137 0.000000 -0:141 Branch: Return with expression +0:138 Constant: +0:138 0.000000 +0:139 Constant: +0:139 0.000000 +0:140 Constant: +0:140 0.000000 +0:141 Constant: +0:141 0.000000 +0:142 Constant: +0:142 0.000000 +0:143 Constant: +0:143 0.000000 +0:144 Constant: +0:144 0.000000 +0:145 Constant: +0:145 0.000000 +0:146 Constant: +0:146 0.000000 +0:147 Constant: +0:147 0.000000 +0:148 Constant: +0:148 0.000000 +0:149 Constant: +0:149 0.000000 +0:150 Constant: +0:150 0.000000 +0:151 Constant: +0:151 0.000000 +0:152 Constant: +0:152 0.000000 +0:153 Constant: +0:153 0.000000 +0:154 Constant: +0:154 0.000000 +0:155 Constant: +0:155 0.000000 +0:156 Constant: +0:156 0.000000 +0:157 Constant: +0:157 0.000000 +0:158 Constant: +0:158 0.000000 +0:159 Constant: +0:159 0.000000 +0:160 Constant: +0:160 0.000000 +0:161 Constant: +0:161 0.000000 +0:162 Constant: +0:162 0.000000 +0:163 Constant: +0:163 0.000000 +0:164 Constant: +0:164 0.000000 +0:165 Constant: +0:165 0.000000 +0:166 Constant: +0:166 0.000000 +0:167 Constant: +0:167 0.000000 +0:168 Constant: +0:168 0.000000 +0:172 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:251 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:176 Function Parameters: +0:176 'inF0' (temp 4-component vector of float) +0:176 'inF1' (temp 4-component vector of float) +0:176 'inF2' (temp 4-component vector of float) +0:176 'inI0' (temp 4-component vector of int) +0:? Sequence +0:179 Constant: +0:179 0.000000 +0:180 Constant: +0:180 0.000000 +0:181 Constant: +0:181 0.000000 +0:182 Constant: +0:182 0.000000 +0:183 Constant: +0:183 0.000000 +0:184 Constant: +0:184 0.000000 +0:185 Constant: +0:185 0.000000 +0:186 Constant: +0:186 0.000000 +0:187 Constant: +0:187 0.000000 +0:188 Constant: +0:188 0.000000 +0:189 Constant: +0:189 0.000000 +0:190 Constant: +0:190 0.000000 +0:191 Constant: +0:191 0.000000 +0:192 Constant: +0:192 0.000000 +0:193 Constant: +0:193 0.000000 +0:194 Constant: +0:194 0.000000 +0:195 Constant: +0:195 0.000000 +0:196 Constant: +0:196 0.000000 +0:197 Constant: +0:197 0.000000 +0:198 Constant: +0:198 0.000000 +0:199 Constant: +0:199 0.000000 +0:200 Constant: +0:200 0.000000 +0:201 Constant: +0:201 0.000000 +0:202 Constant: +0:202 0.000000 +0:203 Constant: +0:203 0.000000 +0:204 Constant: +0:204 0.000000 +0:205 Constant: +0:205 0.000000 +0:206 Constant: +0:206 0.000000 +0:207 Constant: +0:207 0.000000 +0:208 Constant: +0:208 0.000000 +0:209 Constant: +0:209 0.000000 +0:210 Constant: +0:210 0.000000 +0:211 Constant: +0:211 0.000000 +0:212 Constant: +0:212 0.000000 +0:213 Constant: +0:213 0.000000 +0:217 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:182 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:175 Function Parameters: -0:175 'inF0' (temp 2X2 matrix of float) -0:175 'inF1' (temp 2X2 matrix of float) -0:175 'inF2' (temp 2X2 matrix of float) +0:259 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:252 Function Parameters: +0:252 'inF0' (temp 2X2 matrix of float) +0:252 'inF1' (temp 2X2 matrix of float) +0:252 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:179 Branch: Return with expression +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:256 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:190 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:183 Function Parameters: -0:183 'inF0' (temp 3X3 matrix of float) -0:183 'inF1' (temp 3X3 matrix of float) -0:183 'inF2' (temp 3X3 matrix of float) +0:267 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:260 Function Parameters: +0:260 'inF0' (temp 3X3 matrix of float) +0:260 'inF1' (temp 3X3 matrix of float) +0:260 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:187 Branch: Return with expression +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:264 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -533,61 +720,63 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:197 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:191 Function Parameters: -0:191 'inF0' (temp 4X4 matrix of float) -0:191 'inF1' (temp 4X4 matrix of float) -0:191 'inF2' (temp 4X4 matrix of float) +0:274 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:268 Function Parameters: +0:268 'inF0' (temp 4X4 matrix of float) +0:268 'inF1' (temp 4X4 matrix of float) +0:268 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:195 Branch: Return with expression +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:272 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -606,6 +795,18 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects +0:? 'gs_ua' (temp uint) +0:? 'gs_ub' (temp uint) +0:? 'gs_uc' (temp uint) +0:? 'gs_ua2' (temp 2-component vector of uint) +0:? 'gs_ub2' (temp 2-component vector of uint) +0:? 'gs_uc2' (temp 2-component vector of uint) +0:? 'gs_ua3' (temp 3-component vector of uint) +0:? 'gs_ub3' (temp 3-component vector of uint) +0:? 'gs_uc3' (temp 3-component vector of uint) +0:? 'gs_ua4' (temp 4-component vector of uint) +0:? 'gs_ub4' (temp 4-component vector of uint) +0:? 'gs_uc4' (temp 4-component vector of uint) Linked vertex stage: @@ -613,39 +814,13 @@ Linked vertex stage: Shader version: 450 ERROR: node is still EOpNull! -0:49 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) -0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) -0:2 'inI0' (temp int) +0:74 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) +0:15 Function Parameters: +0:15 'inF0' (temp float) +0:15 'inF1' (temp float) +0:15 'inF2' (temp float) +0:15 'inI0' (temp int) 0:? Sequence -0:5 Constant: -0:5 0.000000 -0:6 Constant: -0:6 0.000000 -0:7 Constant: -0:7 0.000000 -0:8 Constant: -0:8 0.000000 -0:9 Constant: -0:9 0.000000 -0:10 Constant: -0:10 0.000000 -0:11 Constant: -0:11 0.000000 -0:14 Constant: -0:14 0.000000 -0:15 Constant: -0:15 0.000000 -0:16 Constant: -0:16 0.000000 -0:17 Constant: -0:17 0.000000 -0:18 Constant: -0:18 0.000000 -0:19 Constant: -0:19 0.000000 0:20 Constant: 0:20 0.000000 0:21 Constant: @@ -660,8 +835,18 @@ ERROR: node is still EOpNull! 0:25 0.000000 0:26 Constant: 0:26 0.000000 -0:27 Constant: -0:27 0.000000 +0:29 Constant: +0:29 0.000000 +0:30 Constant: +0:30 0.000000 +0:31 Constant: +0:31 0.000000 +0:32 Constant: +0:32 0.000000 +0:33 Constant: +0:33 0.000000 +0:34 Constant: +0:34 0.000000 0:35 Constant: 0:35 0.000000 0:36 Constant: @@ -678,28 +863,36 @@ ERROR: node is still EOpNull! 0:41 0.000000 0:42 Constant: 0:42 0.000000 -0:46 Branch: Return with expression -0:46 Constant: -0:46 0.000000 -0:58 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) -0:50 Function Parameters: -0:50 'inF0' (temp 1-component vector of float) -0:50 'inF1' (temp 1-component vector of float) -0:50 'inF2' (temp 1-component vector of float) -0:50 'inI0' (temp 1-component vector of int) -0:? Sequence +0:43 Constant: +0:43 0.000000 +0:44 Constant: +0:44 0.000000 +0:45 Constant: +0:45 0.000000 +0:46 Constant: +0:46 0.000000 +0:47 Constant: +0:47 0.000000 +0:48 Constant: +0:48 0.000000 +0:49 Constant: +0:49 0.000000 +0:50 Constant: +0:50 0.000000 +0:51 Constant: +0:51 0.000000 +0:52 Constant: +0:52 0.000000 0:53 Constant: 0:53 0.000000 -0:55 Branch: Return with expression -0:55 Constant: -0:55 0.000000 -0:88 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) -0:59 Function Parameters: -0:59 'inF0' (temp 2-component vector of float) -0:59 'inF1' (temp 2-component vector of float) -0:59 'inF2' (temp 2-component vector of float) -0:59 'inI0' (temp 2-component vector of int) -0:? Sequence +0:54 Constant: +0:54 0.000000 +0:55 Constant: +0:55 0.000000 +0:56 Constant: +0:56 0.000000 +0:57 Constant: +0:57 0.000000 0:60 Constant: 0:60 0.000000 0:61 Constant: @@ -716,45 +909,34 @@ ERROR: node is still EOpNull! 0:66 0.000000 0:67 Constant: 0:67 0.000000 -0:68 Constant: -0:68 0.000000 -0:69 Constant: -0:69 0.000000 -0:70 Constant: -0:70 0.000000 -0:71 Constant: -0:71 0.000000 -0:72 Constant: -0:72 0.000000 -0:73 Constant: -0:73 0.000000 -0:74 Constant: -0:74 0.000000 -0:75 Constant: -0:75 0.000000 -0:76 Constant: -0:76 0.000000 -0:77 Constant: -0:77 0.000000 +0:71 Branch: Return with expression +0:71 Constant: +0:71 0.000000 +0:83 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:75 Function Parameters: +0:75 'inF0' (temp 1-component vector of float) +0:75 'inF1' (temp 1-component vector of float) +0:75 'inF2' (temp 1-component vector of float) +0:75 'inI0' (temp 1-component vector of int) +0:? Sequence 0:78 Constant: 0:78 0.000000 -0:79 Constant: -0:79 0.000000 -0:80 Constant: -0:80 0.000000 -0:81 Constant: -0:81 0.000000 -0:85 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:116 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) -0:89 Function Parameters: -0:89 'inF0' (temp 3-component vector of float) -0:89 'inF1' (temp 3-component vector of float) -0:89 'inF2' (temp 3-component vector of float) -0:89 'inI0' (temp 3-component vector of int) +0:80 Branch: Return with expression +0:80 Constant: +0:80 0.000000 +0:130 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:84 Function Parameters: +0:84 'inF0' (temp 2-component vector of float) +0:84 'inF1' (temp 2-component vector of float) +0:84 'inF2' (temp 2-component vector of float) +0:84 'inI0' (temp 2-component vector of int) 0:? Sequence +0:87 Constant: +0:87 0.000000 +0:88 Constant: +0:88 0.000000 +0:89 Constant: +0:89 0.000000 0:90 Constant: 0:90 0.000000 0:91 Constant: @@ -795,18 +977,22 @@ ERROR: node is still EOpNull! 0:108 0.000000 0:109 Constant: 0:109 0.000000 -0:113 Branch: Return with expression -0:? Constant: -0:? 1.000000 -0:? 2.000000 -0:? 3.000000 -0:174 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) -0:117 Function Parameters: -0:117 'inF0' (temp 4-component vector of float) -0:117 'inF1' (temp 4-component vector of float) -0:117 'inF2' (temp 4-component vector of float) -0:117 'inI0' (temp 4-component vector of int) -0:? Sequence +0:110 Constant: +0:110 0.000000 +0:111 Constant: +0:111 0.000000 +0:112 Constant: +0:112 0.000000 +0:113 Constant: +0:113 0.000000 +0:114 Constant: +0:114 0.000000 +0:115 Constant: +0:115 0.000000 +0:116 Constant: +0:116 0.000000 +0:117 Constant: +0:117 0.000000 0:118 Constant: 0:118 0.000000 0:119 Constant: @@ -819,26 +1005,17 @@ ERROR: node is still EOpNull! 0:122 0.000000 0:123 Constant: 0:123 0.000000 -0:124 Constant: -0:124 0.000000 -0:125 Constant: -0:125 0.000000 -0:126 Constant: -0:126 0.000000 -0:127 Constant: -0:127 0.000000 -0:128 Constant: -0:128 0.000000 -0:129 Constant: -0:129 0.000000 -0:130 Constant: -0:130 0.000000 -0:131 Constant: -0:131 0.000000 -0:132 Constant: -0:132 0.000000 -0:133 Constant: -0:133 0.000000 +0:127 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:175 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:131 Function Parameters: +0:131 'inF0' (temp 3-component vector of float) +0:131 'inF1' (temp 3-component vector of float) +0:131 'inF2' (temp 3-component vector of float) +0:131 'inI0' (temp 3-component vector of int) +0:? Sequence 0:134 Constant: 0:134 0.000000 0:135 Constant: @@ -847,127 +1024,275 @@ ERROR: node is still EOpNull! 0:136 0.000000 0:137 Constant: 0:137 0.000000 -0:141 Branch: Return with expression +0:138 Constant: +0:138 0.000000 +0:139 Constant: +0:139 0.000000 +0:140 Constant: +0:140 0.000000 +0:141 Constant: +0:141 0.000000 +0:142 Constant: +0:142 0.000000 +0:143 Constant: +0:143 0.000000 +0:144 Constant: +0:144 0.000000 +0:145 Constant: +0:145 0.000000 +0:146 Constant: +0:146 0.000000 +0:147 Constant: +0:147 0.000000 +0:148 Constant: +0:148 0.000000 +0:149 Constant: +0:149 0.000000 +0:150 Constant: +0:150 0.000000 +0:151 Constant: +0:151 0.000000 +0:152 Constant: +0:152 0.000000 +0:153 Constant: +0:153 0.000000 +0:154 Constant: +0:154 0.000000 +0:155 Constant: +0:155 0.000000 +0:156 Constant: +0:156 0.000000 +0:157 Constant: +0:157 0.000000 +0:158 Constant: +0:158 0.000000 +0:159 Constant: +0:159 0.000000 +0:160 Constant: +0:160 0.000000 +0:161 Constant: +0:161 0.000000 +0:162 Constant: +0:162 0.000000 +0:163 Constant: +0:163 0.000000 +0:164 Constant: +0:164 0.000000 +0:165 Constant: +0:165 0.000000 +0:166 Constant: +0:166 0.000000 +0:167 Constant: +0:167 0.000000 +0:168 Constant: +0:168 0.000000 +0:172 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:251 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:176 Function Parameters: +0:176 'inF0' (temp 4-component vector of float) +0:176 'inF1' (temp 4-component vector of float) +0:176 'inF2' (temp 4-component vector of float) +0:176 'inI0' (temp 4-component vector of int) +0:? Sequence +0:179 Constant: +0:179 0.000000 +0:180 Constant: +0:180 0.000000 +0:181 Constant: +0:181 0.000000 +0:182 Constant: +0:182 0.000000 +0:183 Constant: +0:183 0.000000 +0:184 Constant: +0:184 0.000000 +0:185 Constant: +0:185 0.000000 +0:186 Constant: +0:186 0.000000 +0:187 Constant: +0:187 0.000000 +0:188 Constant: +0:188 0.000000 +0:189 Constant: +0:189 0.000000 +0:190 Constant: +0:190 0.000000 +0:191 Constant: +0:191 0.000000 +0:192 Constant: +0:192 0.000000 +0:193 Constant: +0:193 0.000000 +0:194 Constant: +0:194 0.000000 +0:195 Constant: +0:195 0.000000 +0:196 Constant: +0:196 0.000000 +0:197 Constant: +0:197 0.000000 +0:198 Constant: +0:198 0.000000 +0:199 Constant: +0:199 0.000000 +0:200 Constant: +0:200 0.000000 +0:201 Constant: +0:201 0.000000 +0:202 Constant: +0:202 0.000000 +0:203 Constant: +0:203 0.000000 +0:204 Constant: +0:204 0.000000 +0:205 Constant: +0:205 0.000000 +0:206 Constant: +0:206 0.000000 +0:207 Constant: +0:207 0.000000 +0:208 Constant: +0:208 0.000000 +0:209 Constant: +0:209 0.000000 +0:210 Constant: +0:210 0.000000 +0:211 Constant: +0:211 0.000000 +0:212 Constant: +0:212 0.000000 +0:213 Constant: +0:213 0.000000 +0:217 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:182 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:175 Function Parameters: -0:175 'inF0' (temp 2X2 matrix of float) -0:175 'inF1' (temp 2X2 matrix of float) -0:175 'inF2' (temp 2X2 matrix of float) +0:259 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:252 Function Parameters: +0:252 'inF0' (temp 2X2 matrix of float) +0:252 'inF1' (temp 2X2 matrix of float) +0:252 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:177 Constant: -0:177 0.000000 -0:179 Branch: Return with expression +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:254 Constant: +0:254 0.000000 +0:256 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:190 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:183 Function Parameters: -0:183 'inF0' (temp 3X3 matrix of float) -0:183 'inF1' (temp 3X3 matrix of float) -0:183 'inF2' (temp 3X3 matrix of float) +0:267 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:260 Function Parameters: +0:260 'inF0' (temp 3X3 matrix of float) +0:260 'inF1' (temp 3X3 matrix of float) +0:260 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:185 Constant: -0:185 0.000000 -0:187 Branch: Return with expression +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:262 Constant: +0:262 0.000000 +0:264 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -978,61 +1303,63 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:197 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:191 Function Parameters: -0:191 'inF0' (temp 4X4 matrix of float) -0:191 'inF1' (temp 4X4 matrix of float) -0:191 'inF2' (temp 4X4 matrix of float) +0:274 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:268 Function Parameters: +0:268 'inF0' (temp 4X4 matrix of float) +0:268 'inF1' (temp 4X4 matrix of float) +0:268 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:193 Constant: -0:193 0.000000 -0:195 Branch: Return with expression +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:270 Constant: +0:270 0.000000 +0:272 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1051,5 +1378,17 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects +0:? 'gs_ua' (temp uint) +0:? 'gs_ub' (temp uint) +0:? 'gs_uc' (temp uint) +0:? 'gs_ua2' (temp 2-component vector of uint) +0:? 'gs_ub2' (temp 2-component vector of uint) +0:? 'gs_uc2' (temp 2-component vector of uint) +0:? 'gs_ua3' (temp 3-component vector of uint) +0:? 'gs_ub3' (temp 3-component vector of uint) +0:? 'gs_uc3' (temp 3-component vector of uint) +0:? 'gs_ua4' (temp 4-component vector of uint) +0:? 'gs_ub4' (temp 4-component vector of uint) +0:? 'gs_uc4' (temp 4-component vector of uint) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 6f92fc36..a4a6b044 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -1,11 +1,13 @@ hlsl.intrinsics.vert Shader version: 450 0:? Sequence -0:59 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float) +0:62 Function Definition: VertexShaderFunction(f1;f1;f1;u1;u1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (temp float) 0:2 'inF1' (temp float) 0:2 'inF2' (temp float) +0:2 'inU0' (temp uint) +0:2 'inU1' (temp uint) 0:? Sequence 0:3 all (global bool) 0:3 'inF0' (temp float) @@ -17,881 +19,899 @@ Shader version: 450 0:6 'inF0' (temp float) 0:7 arc sine (global float) 0:7 'inF0' (temp float) -0:8 arc tangent (global float) +0:8 floatBitsToInt (global int) 0:8 'inF0' (temp float) -0:9 arc tangent (global float) +0:9 floatBitsToUint (global uint) 0:9 'inF0' (temp float) -0:9 'inF1' (temp float) -0:10 Ceiling (global float) -0:10 'inF0' (temp float) -0:11 clamp (global float) -0:11 'inF0' (temp float) -0:11 'inF1' (temp float) -0:11 'inF2' (temp float) -0:12 cosine (global float) +0:10 intBitsToFloat (global float) +0:10 'inU0' (temp uint) +0:12 arc tangent (global float) 0:12 'inF0' (temp float) -0:13 hyp. cosine (global float) +0:13 arc tangent (global float) 0:13 'inF0' (temp float) -0:14 bitCount (global uint) -0:14 Constant: -0:14 7 (const uint) -0:15 degrees (global float) +0:13 'inF1' (temp float) +0:14 Ceiling (global float) +0:14 'inF0' (temp float) +0:15 clamp (global float) 0:15 'inF0' (temp float) -0:19 exp (global float) +0:15 'inF1' (temp float) +0:15 'inF2' (temp float) +0:16 cosine (global float) +0:16 'inF0' (temp float) +0:17 hyp. cosine (global float) +0:17 'inF0' (temp float) +0:18 bitCount (global uint) +0:18 Constant: +0:18 7 (const uint) +0:19 degrees (global float) 0:19 'inF0' (temp float) -0:20 exp2 (global float) -0:20 'inF0' (temp float) -0:21 findMSB (global int) -0:21 Constant: -0:21 7 (const int) -0:22 findLSB (global int) -0:22 Constant: -0:22 7 (const int) -0:23 Floor (global float) +0:23 exp (global float) 0:23 'inF0' (temp float) -0:25 mod (global float) -0:25 'inF0' (temp float) -0:25 'inF1' (temp float) -0:26 Fraction (global float) -0:26 'inF0' (temp float) -0:27 frexp (global float) +0:24 exp2 (global float) +0:24 'inF0' (temp float) +0:25 findMSB (global int) +0:25 Constant: +0:25 7 (const int) +0:26 findLSB (global int) +0:26 Constant: +0:26 7 (const int) +0:27 Floor (global float) 0:27 'inF0' (temp float) -0:27 'inF1' (temp float) -0:28 fwidth (global float) -0:28 'inF0' (temp float) -0:29 isinf (global bool) +0:29 mod (global float) 0:29 'inF0' (temp float) -0:30 isnan (global bool) +0:29 'inF1' (temp float) +0:30 Fraction (global float) 0:30 'inF0' (temp float) -0:31 ldexp (global float) +0:31 frexp (global float) 0:31 'inF0' (temp float) 0:31 'inF1' (temp float) -0:32 log (global float) +0:32 isinf (global bool) 0:32 'inF0' (temp float) -0:33 component-wise multiply (temp float) -0:33 log2 (temp float) -0:33 'inF0' (temp float) -0:33 Constant: -0:33 0.301030 -0:34 log2 (global float) +0:33 isnan (global bool) +0:33 'inF0' (temp float) +0:34 ldexp (global float) 0:34 'inF0' (temp float) -0:35 max (global float) +0:34 'inF1' (temp float) +0:35 log (global float) 0:35 'inF0' (temp float) -0:35 'inF1' (temp float) -0:36 min (global float) -0:36 'inF0' (temp float) -0:36 'inF1' (temp float) -0:38 pow (global float) +0:36 component-wise multiply (temp float) +0:36 log2 (temp float) +0:36 'inF0' (temp float) +0:36 Constant: +0:36 0.301030 +0:37 log2 (global float) +0:37 'inF0' (temp float) +0:38 max (global float) 0:38 'inF0' (temp float) 0:38 'inF1' (temp float) -0:39 radians (global float) +0:39 min (global float) 0:39 'inF0' (temp float) -0:40 bitFieldReverse (global uint) -0:40 Constant: -0:40 2 (const uint) -0:41 roundEven (global float) +0:39 'inF1' (temp float) +0:41 pow (global float) 0:41 'inF0' (temp float) -0:42 inverse sqrt (global float) +0:41 'inF1' (temp float) +0:42 radians (global float) 0:42 'inF0' (temp float) -0:43 clamp (global float) -0:43 'inF0' (temp float) +0:43 bitFieldReverse (global uint) 0:43 Constant: -0:43 0.000000 -0:43 Constant: -0:43 1.000000 -0:44 Sign (global float) +0:43 2 (const uint) +0:44 roundEven (global float) 0:44 'inF0' (temp float) -0:45 sine (global float) +0:45 inverse sqrt (global float) 0:45 'inF0' (temp float) -0:46 Sequence -0:46 move second child to first child (temp float) -0:46 'inF1' (temp float) -0:46 sine (temp float) -0:46 'inF0' (temp float) -0:46 move second child to first child (temp float) -0:46 'inF2' (temp float) -0:46 cosine (temp float) -0:46 'inF0' (temp float) -0:47 hyp. sine (global float) +0:46 clamp (temp float) +0:46 'inF0' (temp float) +0:46 Constant: +0:46 0.000000 +0:46 Constant: +0:46 1.000000 +0:47 Sign (global float) 0:47 'inF0' (temp float) -0:48 smoothstep (global float) +0:48 sine (global float) 0:48 'inF0' (temp float) -0:48 'inF1' (temp float) -0:48 'inF2' (temp float) -0:49 sqrt (global float) -0:49 'inF0' (temp float) -0:50 step (global float) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'inF1' (temp float) +0:49 sine (temp float) +0:49 'inF0' (temp float) +0:49 move second child to first child (temp float) +0:49 'inF2' (temp float) +0:49 cosine (temp float) +0:49 'inF0' (temp float) +0:50 hyp. sine (global float) 0:50 'inF0' (temp float) -0:50 'inF1' (temp float) -0:51 tangent (global float) +0:51 smoothstep (global float) 0:51 'inF0' (temp float) -0:52 hyp. tangent (global float) +0:51 'inF1' (temp float) +0:51 'inF2' (temp float) +0:52 sqrt (global float) 0:52 'inF0' (temp float) -0:54 trunc (global float) +0:53 step (global float) +0:53 'inF0' (temp float) +0:53 'inF1' (temp float) +0:54 tangent (global float) 0:54 'inF0' (temp float) -0:56 Branch: Return with expression -0:56 Constant: -0:56 0.000000 -0:65 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:60 Function Parameters: -0:60 'inF0' (temp 1-component vector of float) -0:60 'inF1' (temp 1-component vector of float) -0:60 'inF2' (temp 1-component vector of float) +0:55 hyp. tangent (global float) +0:55 'inF0' (temp float) +0:57 trunc (global float) +0:57 'inF0' (temp float) +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:68 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:63 Function Parameters: +0:63 'inF0' (temp 1-component vector of float) +0:63 'inF1' (temp 1-component vector of float) +0:63 'inF2' (temp 1-component vector of float) 0:? Sequence -0:62 Branch: Return with expression -0:62 Constant: -0:62 0.000000 -0:131 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) -0:66 Function Parameters: -0:66 'inF0' (temp 2-component vector of float) -0:66 'inF1' (temp 2-component vector of float) -0:66 'inF2' (temp 2-component vector of float) +0:65 Branch: Return with expression +0:65 Constant: +0:65 0.000000 +0:137 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:69 Function Parameters: +0:69 'inF0' (temp 2-component vector of float) +0:69 'inF1' (temp 2-component vector of float) +0:69 'inF2' (temp 2-component vector of float) +0:69 'inU0' (temp 2-component vector of uint) +0:69 'inU1' (temp 2-component vector of uint) 0:? Sequence -0:67 all (global bool) -0:67 'inF0' (temp 2-component vector of float) -0:68 Absolute value (global 2-component vector of float) -0:68 'inF0' (temp 2-component vector of float) -0:69 arc cosine (global 2-component vector of float) -0:69 'inF0' (temp 2-component vector of float) -0:70 any (global bool) +0:70 all (global bool) 0:70 'inF0' (temp 2-component vector of float) -0:71 arc sine (global 2-component vector of float) +0:71 Absolute value (global 2-component vector of float) 0:71 'inF0' (temp 2-component vector of float) -0:72 arc tangent (global 2-component vector of float) +0:72 arc cosine (global 2-component vector of float) 0:72 'inF0' (temp 2-component vector of float) -0:73 arc tangent (global 2-component vector of float) +0:73 any (global bool) 0:73 'inF0' (temp 2-component vector of float) -0:73 'inF1' (temp 2-component vector of float) -0:74 Ceiling (global 2-component vector of float) +0:74 arc sine (global 2-component vector of float) 0:74 'inF0' (temp 2-component vector of float) -0:75 clamp (global 2-component vector of float) +0:75 floatBitsToInt (global 2-component vector of int) 0:75 'inF0' (temp 2-component vector of float) -0:75 'inF1' (temp 2-component vector of float) -0:75 'inF2' (temp 2-component vector of float) -0:76 cosine (global 2-component vector of float) +0:76 floatBitsToUint (global 2-component vector of uint) 0:76 'inF0' (temp 2-component vector of float) -0:77 hyp. cosine (global 2-component vector of float) -0:77 'inF0' (temp 2-component vector of float) +0:77 intBitsToFloat (global 2-component vector of float) +0:77 'inU0' (temp 2-component vector of uint) +0:79 arc tangent (global 2-component vector of float) +0:79 'inF0' (temp 2-component vector of float) +0:80 arc tangent (global 2-component vector of float) +0:80 'inF0' (temp 2-component vector of float) +0:80 'inF1' (temp 2-component vector of float) +0:81 Ceiling (global 2-component vector of float) +0:81 'inF0' (temp 2-component vector of float) +0:82 clamp (global 2-component vector of float) +0:82 'inF0' (temp 2-component vector of float) +0:82 'inF1' (temp 2-component vector of float) +0:82 'inF2' (temp 2-component vector of float) +0:83 cosine (global 2-component vector of float) +0:83 'inF0' (temp 2-component vector of float) +0:84 hyp. cosine (global 2-component vector of float) +0:84 'inF0' (temp 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:79 degrees (global 2-component vector of float) -0:79 'inF0' (temp 2-component vector of float) -0:80 distance (global float) -0:80 'inF0' (temp 2-component vector of float) -0:80 'inF1' (temp 2-component vector of float) -0:81 dot-product (global float) -0:81 'inF0' (temp 2-component vector of float) -0:81 'inF1' (temp 2-component vector of float) -0:85 exp (global 2-component vector of float) -0:85 'inF0' (temp 2-component vector of float) -0:86 exp2 (global 2-component vector of float) +0:86 degrees (global 2-component vector of float) 0:86 'inF0' (temp 2-component vector of float) -0:87 face-forward (global 2-component vector of float) +0:87 distance (global float) 0:87 'inF0' (temp 2-component vector of float) 0:87 'inF1' (temp 2-component vector of float) -0:87 'inF2' (temp 2-component vector of float) -0:88 findMSB (global int) -0:88 Constant: -0:88 7 (const int) -0:89 findLSB (global int) -0:89 Constant: -0:89 7 (const int) -0:90 Floor (global 2-component vector of float) -0:90 'inF0' (temp 2-component vector of float) -0:92 mod (global 2-component vector of float) +0:88 dot-product (global float) +0:88 'inF0' (temp 2-component vector of float) +0:88 'inF1' (temp 2-component vector of float) +0:92 exp (global 2-component vector of float) 0:92 'inF0' (temp 2-component vector of float) -0:92 'inF1' (temp 2-component vector of float) -0:93 Fraction (global 2-component vector of float) +0:93 exp2 (global 2-component vector of float) 0:93 'inF0' (temp 2-component vector of float) -0:94 frexp (global 2-component vector of float) +0:94 face-forward (global 2-component vector of float) 0:94 'inF0' (temp 2-component vector of float) 0:94 'inF1' (temp 2-component vector of float) -0:95 fwidth (global 2-component vector of float) -0:95 'inF0' (temp 2-component vector of float) -0:96 isinf (global 2-component vector of bool) -0:96 'inF0' (temp 2-component vector of float) -0:97 isnan (global 2-component vector of bool) +0:94 'inF2' (temp 2-component vector of float) +0:95 findMSB (global int) +0:95 Constant: +0:95 7 (const int) +0:96 findLSB (global int) +0:96 Constant: +0:96 7 (const int) +0:97 Floor (global 2-component vector of float) 0:97 'inF0' (temp 2-component vector of float) -0:98 ldexp (global 2-component vector of float) -0:98 'inF0' (temp 2-component vector of float) -0:98 'inF1' (temp 2-component vector of float) -0:99 length (global float) +0:99 mod (global 2-component vector of float) 0:99 'inF0' (temp 2-component vector of float) -0:100 log (global 2-component vector of float) +0:99 'inF1' (temp 2-component vector of float) +0:100 Fraction (global 2-component vector of float) 0:100 'inF0' (temp 2-component vector of float) -0:101 vector-scale (temp 2-component vector of float) -0:101 log2 (temp 2-component vector of float) -0:101 'inF0' (temp 2-component vector of float) -0:101 Constant: -0:101 0.301030 -0:102 log2 (global 2-component vector of float) +0:101 frexp (global 2-component vector of float) +0:101 'inF0' (temp 2-component vector of float) +0:101 'inF1' (temp 2-component vector of float) +0:102 isinf (global 2-component vector of bool) 0:102 'inF0' (temp 2-component vector of float) -0:103 max (global 2-component vector of float) +0:103 isnan (global 2-component vector of bool) 0:103 'inF0' (temp 2-component vector of float) -0:103 'inF1' (temp 2-component vector of float) -0:104 min (global 2-component vector of float) +0:104 ldexp (global 2-component vector of float) 0:104 'inF0' (temp 2-component vector of float) 0:104 'inF1' (temp 2-component vector of float) -0:106 normalize (global 2-component vector of float) +0:105 length (global float) +0:105 'inF0' (temp 2-component vector of float) +0:106 log (global 2-component vector of float) 0:106 'inF0' (temp 2-component vector of float) -0:107 pow (global 2-component vector of float) -0:107 'inF0' (temp 2-component vector of float) -0:107 'inF1' (temp 2-component vector of float) -0:108 radians (global 2-component vector of float) +0:107 vector-scale (temp 2-component vector of float) +0:107 log2 (temp 2-component vector of float) +0:107 'inF0' (temp 2-component vector of float) +0:107 Constant: +0:107 0.301030 +0:108 log2 (global 2-component vector of float) 0:108 'inF0' (temp 2-component vector of float) -0:109 reflect (global 2-component vector of float) +0:109 max (global 2-component vector of float) 0:109 'inF0' (temp 2-component vector of float) 0:109 'inF1' (temp 2-component vector of float) -0:110 refract (global 2-component vector of float) +0:110 min (global 2-component vector of float) 0:110 'inF0' (temp 2-component vector of float) 0:110 'inF1' (temp 2-component vector of float) -0:110 Constant: -0:110 2.000000 +0:112 normalize (global 2-component vector of float) +0:112 'inF0' (temp 2-component vector of float) +0:113 pow (global 2-component vector of float) +0:113 'inF0' (temp 2-component vector of float) +0:113 'inF1' (temp 2-component vector of float) +0:114 radians (global 2-component vector of float) +0:114 'inF0' (temp 2-component vector of float) +0:115 reflect (global 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:115 'inF1' (temp 2-component vector of float) +0:116 refract (global 2-component vector of float) +0:116 'inF0' (temp 2-component vector of float) +0:116 'inF1' (temp 2-component vector of float) +0:116 Constant: +0:116 2.000000 0:? bitFieldReverse (global 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:112 roundEven (global 2-component vector of float) -0:112 'inF0' (temp 2-component vector of float) -0:113 inverse sqrt (global 2-component vector of float) -0:113 'inF0' (temp 2-component vector of float) -0:114 clamp (global 2-component vector of float) -0:114 'inF0' (temp 2-component vector of float) -0:114 Constant: -0:114 0.000000 -0:114 Constant: -0:114 1.000000 -0:115 Sign (global 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) -0:116 sine (global 2-component vector of float) -0:116 'inF0' (temp 2-component vector of float) -0:117 Sequence -0:117 move second child to first child (temp 2-component vector of float) -0:117 'inF1' (temp 2-component vector of float) -0:117 sine (temp 2-component vector of float) -0:117 'inF0' (temp 2-component vector of float) -0:117 move second child to first child (temp 2-component vector of float) -0:117 'inF2' (temp 2-component vector of float) -0:117 cosine (temp 2-component vector of float) -0:117 'inF0' (temp 2-component vector of float) -0:118 hyp. sine (global 2-component vector of float) +0:118 roundEven (global 2-component vector of float) 0:118 'inF0' (temp 2-component vector of float) -0:119 smoothstep (global 2-component vector of float) +0:119 inverse sqrt (global 2-component vector of float) 0:119 'inF0' (temp 2-component vector of float) -0:119 'inF1' (temp 2-component vector of float) -0:119 'inF2' (temp 2-component vector of float) -0:120 sqrt (global 2-component vector of float) +0:120 clamp (temp 2-component vector of float) 0:120 'inF0' (temp 2-component vector of float) -0:121 step (global 2-component vector of float) +0:120 Constant: +0:120 0.000000 +0:120 Constant: +0:120 1.000000 +0:121 Sign (global 2-component vector of float) 0:121 'inF0' (temp 2-component vector of float) -0:121 'inF1' (temp 2-component vector of float) -0:122 tangent (global 2-component vector of float) +0:122 sine (global 2-component vector of float) 0:122 'inF0' (temp 2-component vector of float) -0:123 hyp. tangent (global 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) -0:125 trunc (global 2-component vector of float) +0:123 Sequence +0:123 move second child to first child (temp 2-component vector of float) +0:123 'inF1' (temp 2-component vector of float) +0:123 sine (temp 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:123 move second child to first child (temp 2-component vector of float) +0:123 'inF2' (temp 2-component vector of float) +0:123 cosine (temp 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:124 hyp. sine (global 2-component vector of float) +0:124 'inF0' (temp 2-component vector of float) +0:125 smoothstep (global 2-component vector of float) 0:125 'inF0' (temp 2-component vector of float) -0:128 Branch: Return with expression +0:125 'inF1' (temp 2-component vector of float) +0:125 'inF2' (temp 2-component vector of float) +0:126 sqrt (global 2-component vector of float) +0:126 'inF0' (temp 2-component vector of float) +0:127 step (global 2-component vector of float) +0:127 'inF0' (temp 2-component vector of float) +0:127 'inF1' (temp 2-component vector of float) +0:128 tangent (global 2-component vector of float) +0:128 'inF0' (temp 2-component vector of float) +0:129 hyp. tangent (global 2-component vector of float) +0:129 'inF0' (temp 2-component vector of float) +0:131 trunc (global 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:134 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:198 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) -0:132 Function Parameters: -0:132 'inF0' (temp 3-component vector of float) -0:132 'inF1' (temp 3-component vector of float) -0:132 'inF2' (temp 3-component vector of float) +0:207 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:138 Function Parameters: +0:138 'inF0' (temp 3-component vector of float) +0:138 'inF1' (temp 3-component vector of float) +0:138 'inF2' (temp 3-component vector of float) +0:138 'inU0' (temp 3-component vector of uint) +0:138 'inU1' (temp 3-component vector of uint) 0:? Sequence -0:133 all (global bool) -0:133 'inF0' (temp 3-component vector of float) -0:134 Absolute value (global 3-component vector of float) -0:134 'inF0' (temp 3-component vector of float) -0:135 arc cosine (global 3-component vector of float) -0:135 'inF0' (temp 3-component vector of float) -0:136 any (global bool) -0:136 'inF0' (temp 3-component vector of float) -0:137 arc sine (global 3-component vector of float) -0:137 'inF0' (temp 3-component vector of float) -0:138 arc tangent (global 3-component vector of float) -0:138 'inF0' (temp 3-component vector of float) -0:139 arc tangent (global 3-component vector of float) +0:139 all (global bool) 0:139 'inF0' (temp 3-component vector of float) -0:139 'inF1' (temp 3-component vector of float) -0:140 Ceiling (global 3-component vector of float) +0:140 Absolute value (global 3-component vector of float) 0:140 'inF0' (temp 3-component vector of float) -0:141 clamp (global 3-component vector of float) +0:141 arc cosine (global 3-component vector of float) 0:141 'inF0' (temp 3-component vector of float) -0:141 'inF1' (temp 3-component vector of float) -0:141 'inF2' (temp 3-component vector of float) -0:142 cosine (global 3-component vector of float) +0:142 any (global bool) 0:142 'inF0' (temp 3-component vector of float) -0:143 hyp. cosine (global 3-component vector of float) +0:143 arc sine (global 3-component vector of float) 0:143 'inF0' (temp 3-component vector of float) +0:144 floatBitsToInt (global 3-component vector of int) +0:144 'inF0' (temp 3-component vector of float) +0:145 floatBitsToUint (global 3-component vector of uint) +0:145 'inF0' (temp 3-component vector of float) +0:146 intBitsToFloat (global 3-component vector of float) +0:146 'inU0' (temp 3-component vector of uint) +0:148 arc tangent (global 3-component vector of float) +0:148 'inF0' (temp 3-component vector of float) +0:149 arc tangent (global 3-component vector of float) +0:149 'inF0' (temp 3-component vector of float) +0:149 'inF1' (temp 3-component vector of float) +0:150 Ceiling (global 3-component vector of float) +0:150 'inF0' (temp 3-component vector of float) +0:151 clamp (global 3-component vector of float) +0:151 'inF0' (temp 3-component vector of float) +0:151 'inF1' (temp 3-component vector of float) +0:151 'inF2' (temp 3-component vector of float) +0:152 cosine (global 3-component vector of float) +0:152 'inF0' (temp 3-component vector of float) +0:153 hyp. cosine (global 3-component vector of float) +0:153 'inF0' (temp 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:145 cross-product (global 3-component vector of float) -0:145 'inF0' (temp 3-component vector of float) -0:145 'inF1' (temp 3-component vector of float) -0:146 degrees (global 3-component vector of float) -0:146 'inF0' (temp 3-component vector of float) -0:147 distance (global float) -0:147 'inF0' (temp 3-component vector of float) -0:147 'inF1' (temp 3-component vector of float) -0:148 dot-product (global float) -0:148 'inF0' (temp 3-component vector of float) -0:148 'inF1' (temp 3-component vector of float) -0:152 exp (global 3-component vector of float) -0:152 'inF0' (temp 3-component vector of float) -0:153 exp2 (global 3-component vector of float) -0:153 'inF0' (temp 3-component vector of float) -0:154 face-forward (global 3-component vector of float) -0:154 'inF0' (temp 3-component vector of float) -0:154 'inF1' (temp 3-component vector of float) -0:154 'inF2' (temp 3-component vector of float) -0:155 findMSB (global int) -0:155 Constant: -0:155 7 (const int) -0:156 findLSB (global int) -0:156 Constant: -0:156 7 (const int) -0:157 Floor (global 3-component vector of float) +0:155 cross-product (global 3-component vector of float) +0:155 'inF0' (temp 3-component vector of float) +0:155 'inF1' (temp 3-component vector of float) +0:156 degrees (global 3-component vector of float) +0:156 'inF0' (temp 3-component vector of float) +0:157 distance (global float) 0:157 'inF0' (temp 3-component vector of float) -0:159 mod (global 3-component vector of float) -0:159 'inF0' (temp 3-component vector of float) -0:159 'inF1' (temp 3-component vector of float) -0:160 Fraction (global 3-component vector of float) -0:160 'inF0' (temp 3-component vector of float) -0:161 frexp (global 3-component vector of float) -0:161 'inF0' (temp 3-component vector of float) -0:161 'inF1' (temp 3-component vector of float) -0:162 fwidth (global 3-component vector of float) +0:157 'inF1' (temp 3-component vector of float) +0:158 dot-product (global float) +0:158 'inF0' (temp 3-component vector of float) +0:158 'inF1' (temp 3-component vector of float) +0:162 exp (global 3-component vector of float) 0:162 'inF0' (temp 3-component vector of float) -0:163 isinf (global 3-component vector of bool) +0:163 exp2 (global 3-component vector of float) 0:163 'inF0' (temp 3-component vector of float) -0:164 isnan (global 3-component vector of bool) +0:164 face-forward (global 3-component vector of float) 0:164 'inF0' (temp 3-component vector of float) -0:165 ldexp (global 3-component vector of float) -0:165 'inF0' (temp 3-component vector of float) -0:165 'inF1' (temp 3-component vector of float) -0:166 length (global float) -0:166 'inF0' (temp 3-component vector of float) -0:167 log (global 3-component vector of float) +0:164 'inF1' (temp 3-component vector of float) +0:164 'inF2' (temp 3-component vector of float) +0:165 findMSB (global int) +0:165 Constant: +0:165 7 (const int) +0:166 findLSB (global int) +0:166 Constant: +0:166 7 (const int) +0:167 Floor (global 3-component vector of float) 0:167 'inF0' (temp 3-component vector of float) -0:168 vector-scale (temp 3-component vector of float) -0:168 log2 (temp 3-component vector of float) -0:168 'inF0' (temp 3-component vector of float) -0:168 Constant: -0:168 0.301030 -0:169 log2 (global 3-component vector of float) +0:169 mod (global 3-component vector of float) 0:169 'inF0' (temp 3-component vector of float) -0:170 max (global 3-component vector of float) +0:169 'inF1' (temp 3-component vector of float) +0:170 Fraction (global 3-component vector of float) 0:170 'inF0' (temp 3-component vector of float) -0:170 'inF1' (temp 3-component vector of float) -0:171 min (global 3-component vector of float) +0:171 frexp (global 3-component vector of float) 0:171 'inF0' (temp 3-component vector of float) 0:171 'inF1' (temp 3-component vector of float) -0:173 normalize (global 3-component vector of float) +0:172 isinf (global 3-component vector of bool) +0:172 'inF0' (temp 3-component vector of float) +0:173 isnan (global 3-component vector of bool) 0:173 'inF0' (temp 3-component vector of float) -0:174 pow (global 3-component vector of float) +0:174 ldexp (global 3-component vector of float) 0:174 'inF0' (temp 3-component vector of float) 0:174 'inF1' (temp 3-component vector of float) -0:175 radians (global 3-component vector of float) +0:175 length (global float) 0:175 'inF0' (temp 3-component vector of float) -0:176 reflect (global 3-component vector of float) +0:176 log (global 3-component vector of float) 0:176 'inF0' (temp 3-component vector of float) -0:176 'inF1' (temp 3-component vector of float) -0:177 refract (global 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) -0:177 'inF1' (temp 3-component vector of float) +0:177 vector-scale (temp 3-component vector of float) +0:177 log2 (temp 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) 0:177 Constant: -0:177 2.000000 +0:177 0.301030 +0:178 log2 (global 3-component vector of float) +0:178 'inF0' (temp 3-component vector of float) +0:179 max (global 3-component vector of float) +0:179 'inF0' (temp 3-component vector of float) +0:179 'inF1' (temp 3-component vector of float) +0:180 min (global 3-component vector of float) +0:180 'inF0' (temp 3-component vector of float) +0:180 'inF1' (temp 3-component vector of float) +0:182 normalize (global 3-component vector of float) +0:182 'inF0' (temp 3-component vector of float) +0:183 pow (global 3-component vector of float) +0:183 'inF0' (temp 3-component vector of float) +0:183 'inF1' (temp 3-component vector of float) +0:184 radians (global 3-component vector of float) +0:184 'inF0' (temp 3-component vector of float) +0:185 reflect (global 3-component vector of float) +0:185 'inF0' (temp 3-component vector of float) +0:185 'inF1' (temp 3-component vector of float) +0:186 refract (global 3-component vector of float) +0:186 'inF0' (temp 3-component vector of float) +0:186 'inF1' (temp 3-component vector of float) +0:186 Constant: +0:186 2.000000 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:179 roundEven (global 3-component vector of float) -0:179 'inF0' (temp 3-component vector of float) -0:180 inverse sqrt (global 3-component vector of float) -0:180 'inF0' (temp 3-component vector of float) -0:181 clamp (global 3-component vector of float) -0:181 'inF0' (temp 3-component vector of float) -0:181 Constant: -0:181 0.000000 -0:181 Constant: -0:181 1.000000 -0:182 Sign (global 3-component vector of float) -0:182 'inF0' (temp 3-component vector of float) -0:183 sine (global 3-component vector of float) -0:183 'inF0' (temp 3-component vector of float) -0:184 Sequence -0:184 move second child to first child (temp 3-component vector of float) -0:184 'inF1' (temp 3-component vector of float) -0:184 sine (temp 3-component vector of float) -0:184 'inF0' (temp 3-component vector of float) -0:184 move second child to first child (temp 3-component vector of float) -0:184 'inF2' (temp 3-component vector of float) -0:184 cosine (temp 3-component vector of float) -0:184 'inF0' (temp 3-component vector of float) -0:185 hyp. sine (global 3-component vector of float) -0:185 'inF0' (temp 3-component vector of float) -0:186 smoothstep (global 3-component vector of float) -0:186 'inF0' (temp 3-component vector of float) -0:186 'inF1' (temp 3-component vector of float) -0:186 'inF2' (temp 3-component vector of float) -0:187 sqrt (global 3-component vector of float) -0:187 'inF0' (temp 3-component vector of float) -0:188 step (global 3-component vector of float) +0:188 roundEven (global 3-component vector of float) 0:188 'inF0' (temp 3-component vector of float) -0:188 'inF1' (temp 3-component vector of float) -0:189 tangent (global 3-component vector of float) +0:189 inverse sqrt (global 3-component vector of float) 0:189 'inF0' (temp 3-component vector of float) -0:190 hyp. tangent (global 3-component vector of float) +0:190 clamp (temp 3-component vector of float) 0:190 'inF0' (temp 3-component vector of float) -0:192 trunc (global 3-component vector of float) +0:190 Constant: +0:190 0.000000 +0:190 Constant: +0:190 1.000000 +0:191 Sign (global 3-component vector of float) +0:191 'inF0' (temp 3-component vector of float) +0:192 sine (global 3-component vector of float) 0:192 'inF0' (temp 3-component vector of float) -0:195 Branch: Return with expression +0:193 Sequence +0:193 move second child to first child (temp 3-component vector of float) +0:193 'inF1' (temp 3-component vector of float) +0:193 sine (temp 3-component vector of float) +0:193 'inF0' (temp 3-component vector of float) +0:193 move second child to first child (temp 3-component vector of float) +0:193 'inF2' (temp 3-component vector of float) +0:193 cosine (temp 3-component vector of float) +0:193 'inF0' (temp 3-component vector of float) +0:194 hyp. sine (global 3-component vector of float) +0:194 'inF0' (temp 3-component vector of float) +0:195 smoothstep (global 3-component vector of float) +0:195 'inF0' (temp 3-component vector of float) +0:195 'inF1' (temp 3-component vector of float) +0:195 'inF2' (temp 3-component vector of float) +0:196 sqrt (global 3-component vector of float) +0:196 'inF0' (temp 3-component vector of float) +0:197 step (global 3-component vector of float) +0:197 'inF0' (temp 3-component vector of float) +0:197 'inF1' (temp 3-component vector of float) +0:198 tangent (global 3-component vector of float) +0:198 'inF0' (temp 3-component vector of float) +0:199 hyp. tangent (global 3-component vector of float) +0:199 'inF0' (temp 3-component vector of float) +0:201 trunc (global 3-component vector of float) +0:201 'inF0' (temp 3-component vector of float) +0:204 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:314 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) -0:199 Function Parameters: -0:199 'inF0' (temp 4-component vector of float) -0:199 'inF1' (temp 4-component vector of float) -0:199 'inF2' (temp 4-component vector of float) +0:330 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:208 Function Parameters: +0:208 'inF0' (temp 4-component vector of float) +0:208 'inF1' (temp 4-component vector of float) +0:208 'inF2' (temp 4-component vector of float) +0:208 'inU0' (temp 4-component vector of uint) +0:208 'inU1' (temp 4-component vector of uint) 0:? Sequence -0:200 all (global bool) -0:200 'inF0' (temp 4-component vector of float) -0:201 Absolute value (global 4-component vector of float) -0:201 'inF0' (temp 4-component vector of float) -0:202 arc cosine (global 4-component vector of float) -0:202 'inF0' (temp 4-component vector of float) -0:203 any (global bool) -0:203 'inF0' (temp 4-component vector of float) -0:204 arc sine (global 4-component vector of float) -0:204 'inF0' (temp 4-component vector of float) -0:205 arc tangent (global 4-component vector of float) -0:205 'inF0' (temp 4-component vector of float) -0:206 arc tangent (global 4-component vector of float) -0:206 'inF0' (temp 4-component vector of float) -0:206 'inF1' (temp 4-component vector of float) -0:207 Ceiling (global 4-component vector of float) -0:207 'inF0' (temp 4-component vector of float) -0:208 clamp (global 4-component vector of float) -0:208 'inF0' (temp 4-component vector of float) -0:208 'inF1' (temp 4-component vector of float) -0:208 'inF2' (temp 4-component vector of float) -0:209 cosine (global 4-component vector of float) +0:209 all (global bool) 0:209 'inF0' (temp 4-component vector of float) -0:210 hyp. cosine (global 4-component vector of float) +0:210 Absolute value (global 4-component vector of float) 0:210 'inF0' (temp 4-component vector of float) +0:211 arc cosine (global 4-component vector of float) +0:211 'inF0' (temp 4-component vector of float) +0:212 any (global bool) +0:212 'inF0' (temp 4-component vector of float) +0:213 arc sine (global 4-component vector of float) +0:213 'inF0' (temp 4-component vector of float) +0:214 floatBitsToInt (global 4-component vector of int) +0:214 'inF0' (temp 4-component vector of float) +0:215 floatBitsToUint (global 4-component vector of uint) +0:215 'inF0' (temp 4-component vector of float) +0:216 intBitsToFloat (global 4-component vector of float) +0:216 'inU0' (temp 4-component vector of uint) +0:218 arc tangent (global 4-component vector of float) +0:218 'inF0' (temp 4-component vector of float) +0:219 arc tangent (global 4-component vector of float) +0:219 'inF0' (temp 4-component vector of float) +0:219 'inF1' (temp 4-component vector of float) +0:220 Ceiling (global 4-component vector of float) +0:220 'inF0' (temp 4-component vector of float) +0:221 clamp (global 4-component vector of float) +0:221 'inF0' (temp 4-component vector of float) +0:221 'inF1' (temp 4-component vector of float) +0:221 'inF2' (temp 4-component vector of float) +0:222 cosine (global 4-component vector of float) +0:222 'inF0' (temp 4-component vector of float) +0:223 hyp. cosine (global 4-component vector of float) +0:223 'inF0' (temp 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:212 degrees (global 4-component vector of float) -0:212 'inF0' (temp 4-component vector of float) -0:213 distance (global float) -0:213 'inF0' (temp 4-component vector of float) -0:213 'inF1' (temp 4-component vector of float) -0:214 dot-product (global float) -0:214 'inF0' (temp 4-component vector of float) -0:214 'inF1' (temp 4-component vector of float) -0:215 Construct vec4 (temp float) -0:215 Constant: -0:215 1.000000 -0:215 component-wise multiply (temp float) -0:215 direct index (temp float) -0:215 'inF0' (temp 4-component vector of float) -0:215 Constant: -0:215 1 (const int) -0:215 direct index (temp float) -0:215 'inF1' (temp 4-component vector of float) -0:215 Constant: -0:215 1 (const int) -0:215 direct index (temp float) -0:215 'inF0' (temp 4-component vector of float) -0:215 Constant: -0:215 2 (const int) -0:215 direct index (temp float) -0:215 'inF1' (temp 4-component vector of float) -0:215 Constant: -0:215 3 (const int) -0:219 exp (global 4-component vector of float) -0:219 'inF0' (temp 4-component vector of float) -0:220 exp2 (global 4-component vector of float) -0:220 'inF0' (temp 4-component vector of float) -0:221 face-forward (global 4-component vector of float) -0:221 'inF0' (temp 4-component vector of float) -0:221 'inF1' (temp 4-component vector of float) -0:221 'inF2' (temp 4-component vector of float) -0:222 findMSB (global int) -0:222 Constant: -0:222 7 (const int) -0:223 findLSB (global int) -0:223 Constant: -0:223 7 (const int) -0:224 Floor (global 4-component vector of float) -0:224 'inF0' (temp 4-component vector of float) -0:226 mod (global 4-component vector of float) +0:225 degrees (global 4-component vector of float) +0:225 'inF0' (temp 4-component vector of float) +0:226 distance (global float) 0:226 'inF0' (temp 4-component vector of float) 0:226 'inF1' (temp 4-component vector of float) -0:227 Fraction (global 4-component vector of float) +0:227 dot-product (global float) 0:227 'inF0' (temp 4-component vector of float) -0:228 frexp (global 4-component vector of float) -0:228 'inF0' (temp 4-component vector of float) -0:228 'inF1' (temp 4-component vector of float) -0:229 fwidth (global 4-component vector of float) -0:229 'inF0' (temp 4-component vector of float) -0:230 isinf (global 4-component vector of bool) -0:230 'inF0' (temp 4-component vector of float) -0:231 isnan (global 4-component vector of bool) -0:231 'inF0' (temp 4-component vector of float) -0:232 ldexp (global 4-component vector of float) +0:227 'inF1' (temp 4-component vector of float) +0:228 Construct vec4 (temp float) +0:228 Constant: +0:228 1.000000 +0:228 component-wise multiply (temp float) +0:228 direct index (temp float) +0:228 'inF0' (temp 4-component vector of float) +0:228 Constant: +0:228 1 (const int) +0:228 direct index (temp float) +0:228 'inF1' (temp 4-component vector of float) +0:228 Constant: +0:228 1 (const int) +0:228 direct index (temp float) +0:228 'inF0' (temp 4-component vector of float) +0:228 Constant: +0:228 2 (const int) +0:228 direct index (temp float) +0:228 'inF1' (temp 4-component vector of float) +0:228 Constant: +0:228 3 (const int) +0:232 exp (global 4-component vector of float) 0:232 'inF0' (temp 4-component vector of float) -0:232 'inF1' (temp 4-component vector of float) -0:233 length (global float) +0:233 exp2 (global 4-component vector of float) 0:233 'inF0' (temp 4-component vector of float) -0:234 log (global 4-component vector of float) +0:234 face-forward (global 4-component vector of float) 0:234 'inF0' (temp 4-component vector of float) -0:235 vector-scale (temp 4-component vector of float) -0:235 log2 (temp 4-component vector of float) -0:235 'inF0' (temp 4-component vector of float) +0:234 'inF1' (temp 4-component vector of float) +0:234 'inF2' (temp 4-component vector of float) +0:235 findMSB (global int) 0:235 Constant: -0:235 0.301030 -0:236 log2 (global 4-component vector of float) -0:236 'inF0' (temp 4-component vector of float) -0:237 max (global 4-component vector of float) +0:235 7 (const int) +0:236 findLSB (global int) +0:236 Constant: +0:236 7 (const int) +0:237 Floor (global 4-component vector of float) 0:237 'inF0' (temp 4-component vector of float) -0:237 'inF1' (temp 4-component vector of float) -0:238 min (global 4-component vector of float) -0:238 'inF0' (temp 4-component vector of float) -0:238 'inF1' (temp 4-component vector of float) -0:240 normalize (global 4-component vector of float) +0:239 mod (global 4-component vector of float) +0:239 'inF0' (temp 4-component vector of float) +0:239 'inF1' (temp 4-component vector of float) +0:240 Fraction (global 4-component vector of float) 0:240 'inF0' (temp 4-component vector of float) -0:241 pow (global 4-component vector of float) +0:241 frexp (global 4-component vector of float) 0:241 'inF0' (temp 4-component vector of float) 0:241 'inF1' (temp 4-component vector of float) -0:242 radians (global 4-component vector of float) +0:242 isinf (global 4-component vector of bool) 0:242 'inF0' (temp 4-component vector of float) -0:243 reflect (global 4-component vector of float) +0:243 isnan (global 4-component vector of bool) 0:243 'inF0' (temp 4-component vector of float) -0:243 'inF1' (temp 4-component vector of float) -0:244 refract (global 4-component vector of float) +0:244 ldexp (global 4-component vector of float) 0:244 'inF0' (temp 4-component vector of float) 0:244 'inF1' (temp 4-component vector of float) -0:244 Constant: -0:244 2.000000 +0:245 length (global float) +0:245 'inF0' (temp 4-component vector of float) +0:246 log (global 4-component vector of float) +0:246 'inF0' (temp 4-component vector of float) +0:247 vector-scale (temp 4-component vector of float) +0:247 log2 (temp 4-component vector of float) +0:247 'inF0' (temp 4-component vector of float) +0:247 Constant: +0:247 0.301030 +0:248 log2 (global 4-component vector of float) +0:248 'inF0' (temp 4-component vector of float) +0:249 max (global 4-component vector of float) +0:249 'inF0' (temp 4-component vector of float) +0:249 'inF1' (temp 4-component vector of float) +0:250 min (global 4-component vector of float) +0:250 'inF0' (temp 4-component vector of float) +0:250 'inF1' (temp 4-component vector of float) +0:252 normalize (global 4-component vector of float) +0:252 'inF0' (temp 4-component vector of float) +0:253 pow (global 4-component vector of float) +0:253 'inF0' (temp 4-component vector of float) +0:253 'inF1' (temp 4-component vector of float) +0:254 radians (global 4-component vector of float) +0:254 'inF0' (temp 4-component vector of float) +0:255 reflect (global 4-component vector of float) +0:255 'inF0' (temp 4-component vector of float) +0:255 'inF1' (temp 4-component vector of float) +0:256 refract (global 4-component vector of float) +0:256 'inF0' (temp 4-component vector of float) +0:256 'inF1' (temp 4-component vector of float) +0:256 Constant: +0:256 2.000000 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:246 roundEven (global 4-component vector of float) -0:246 'inF0' (temp 4-component vector of float) -0:247 inverse sqrt (global 4-component vector of float) -0:247 'inF0' (temp 4-component vector of float) -0:248 clamp (global 4-component vector of float) -0:248 'inF0' (temp 4-component vector of float) -0:248 Constant: -0:248 0.000000 -0:248 Constant: -0:248 1.000000 -0:249 Sign (global 4-component vector of float) -0:249 'inF0' (temp 4-component vector of float) -0:250 sine (global 4-component vector of float) -0:250 'inF0' (temp 4-component vector of float) -0:251 Sequence -0:251 move second child to first child (temp 4-component vector of float) -0:251 'inF1' (temp 4-component vector of float) -0:251 sine (temp 4-component vector of float) -0:251 'inF0' (temp 4-component vector of float) -0:251 move second child to first child (temp 4-component vector of float) -0:251 'inF2' (temp 4-component vector of float) -0:251 cosine (temp 4-component vector of float) -0:251 'inF0' (temp 4-component vector of float) -0:252 hyp. sine (global 4-component vector of float) -0:252 'inF0' (temp 4-component vector of float) -0:253 smoothstep (global 4-component vector of float) -0:253 'inF0' (temp 4-component vector of float) -0:253 'inF1' (temp 4-component vector of float) -0:253 'inF2' (temp 4-component vector of float) -0:254 sqrt (global 4-component vector of float) -0:254 'inF0' (temp 4-component vector of float) -0:255 step (global 4-component vector of float) -0:255 'inF0' (temp 4-component vector of float) -0:255 'inF1' (temp 4-component vector of float) -0:256 tangent (global 4-component vector of float) -0:256 'inF0' (temp 4-component vector of float) -0:257 hyp. tangent (global 4-component vector of float) -0:257 'inF0' (temp 4-component vector of float) -0:259 trunc (global 4-component vector of float) +0:258 roundEven (global 4-component vector of float) +0:258 'inF0' (temp 4-component vector of float) +0:259 inverse sqrt (global 4-component vector of float) 0:259 'inF0' (temp 4-component vector of float) -0:262 Branch: Return with expression +0:260 clamp (temp 4-component vector of float) +0:260 'inF0' (temp 4-component vector of float) +0:260 Constant: +0:260 0.000000 +0:260 Constant: +0:260 1.000000 +0:261 Sign (global 4-component vector of float) +0:261 'inF0' (temp 4-component vector of float) +0:262 sine (global 4-component vector of float) +0:262 'inF0' (temp 4-component vector of float) +0:263 Sequence +0:263 move second child to first child (temp 4-component vector of float) +0:263 'inF1' (temp 4-component vector of float) +0:263 sine (temp 4-component vector of float) +0:263 'inF0' (temp 4-component vector of float) +0:263 move second child to first child (temp 4-component vector of float) +0:263 'inF2' (temp 4-component vector of float) +0:263 cosine (temp 4-component vector of float) +0:263 'inF0' (temp 4-component vector of float) +0:264 hyp. sine (global 4-component vector of float) +0:264 'inF0' (temp 4-component vector of float) +0:265 smoothstep (global 4-component vector of float) +0:265 'inF0' (temp 4-component vector of float) +0:265 'inF1' (temp 4-component vector of float) +0:265 'inF2' (temp 4-component vector of float) +0:266 sqrt (global 4-component vector of float) +0:266 'inF0' (temp 4-component vector of float) +0:267 step (global 4-component vector of float) +0:267 'inF0' (temp 4-component vector of float) +0:267 'inF1' (temp 4-component vector of float) +0:268 tangent (global 4-component vector of float) +0:268 'inF0' (temp 4-component vector of float) +0:269 hyp. tangent (global 4-component vector of float) +0:269 'inF0' (temp 4-component vector of float) +0:271 trunc (global 4-component vector of float) +0:271 'inF0' (temp 4-component vector of float) +0:274 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:323 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:315 Function Parameters: -0:315 'inF0' (temp 2X2 matrix of float) -0:315 'inF1' (temp 2X2 matrix of float) -0:315 'inF2' (temp 2X2 matrix of float) +0:339 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:331 Function Parameters: +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:317 all (global bool) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 Absolute value (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 arc cosine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 any (global bool) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 arc sine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 arc tangent (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 arc tangent (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 Ceiling (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 clamp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 'inF2' (temp 2X2 matrix of float) -0:317 cosine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 hyp. cosine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 degrees (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 determinant (global float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 exp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 exp2 (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 findMSB (global int) -0:317 Constant: -0:317 7 (const int) -0:317 findLSB (global int) -0:317 Constant: -0:317 7 (const int) -0:317 Floor (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 mod (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 Fraction (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 frexp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 fwidth (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 ldexp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 log (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 matrix-scale (temp 2X2 matrix of float) -0:317 log2 (temp 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 Constant: -0:317 0.301030 -0:317 log2 (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 max (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 min (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 pow (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 radians (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 roundEven (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 inverse sqrt (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 clamp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 Constant: -0:317 0.000000 -0:317 Constant: -0:317 1.000000 -0:317 Sign (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 sine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 Sequence -0:317 move second child to first child (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 sine (temp 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 move second child to first child (temp 2X2 matrix of float) -0:317 'inF2' (temp 2X2 matrix of float) -0:317 cosine (temp 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 hyp. sine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 smoothstep (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 'inF2' (temp 2X2 matrix of float) -0:317 sqrt (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 step (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 tangent (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 hyp. tangent (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 transpose (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 trunc (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:320 Branch: Return with expression +0:333 all (global bool) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 Absolute value (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 arc cosine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 any (global bool) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 arc sine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 arc tangent (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 arc tangent (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 Ceiling (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 clamp (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF2' (temp 2X2 matrix of float) +0:333 cosine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 hyp. cosine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 degrees (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 determinant (global float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 exp (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 exp2 (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 findMSB (global int) +0:333 Constant: +0:333 7 (const int) +0:333 findLSB (global int) +0:333 Constant: +0:333 7 (const int) +0:333 Floor (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 mod (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 Fraction (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 frexp (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 ldexp (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 log (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 matrix-scale (temp 2X2 matrix of float) +0:333 log2 (temp 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 Constant: +0:333 0.301030 +0:333 log2 (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 max (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 min (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 pow (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 radians (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 roundEven (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 inverse sqrt (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 clamp (temp 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 Constant: +0:333 0.000000 +0:333 Constant: +0:333 1.000000 +0:333 Sign (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 sine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 Sequence +0:333 move second child to first child (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 sine (temp 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 move second child to first child (temp 2X2 matrix of float) +0:333 'inF2' (temp 2X2 matrix of float) +0:333 cosine (temp 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 hyp. sine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 smoothstep (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF2' (temp 2X2 matrix of float) +0:333 sqrt (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 step (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 tangent (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 hyp. tangent (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 transpose (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 trunc (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:336 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:332 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:324 Function Parameters: -0:324 'inF0' (temp 3X3 matrix of float) -0:324 'inF1' (temp 3X3 matrix of float) -0:324 'inF2' (temp 3X3 matrix of float) +0:348 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:340 Function Parameters: +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:326 all (global bool) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 Absolute value (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 arc cosine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 any (global bool) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 arc sine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 arc tangent (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 arc tangent (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 Ceiling (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 clamp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 'inF2' (temp 3X3 matrix of float) -0:326 cosine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 hyp. cosine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 degrees (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 determinant (global float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 exp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 exp2 (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 findMSB (global int) -0:326 Constant: -0:326 7 (const int) -0:326 findLSB (global int) -0:326 Constant: -0:326 7 (const int) -0:326 Floor (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 mod (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 Fraction (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 frexp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 fwidth (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 ldexp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 log (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 matrix-scale (temp 3X3 matrix of float) -0:326 log2 (temp 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 Constant: -0:326 0.301030 -0:326 log2 (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 max (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 min (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 pow (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 radians (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 roundEven (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 inverse sqrt (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 clamp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 Constant: -0:326 0.000000 -0:326 Constant: -0:326 1.000000 -0:326 Sign (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 sine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 Sequence -0:326 move second child to first child (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 sine (temp 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 move second child to first child (temp 3X3 matrix of float) -0:326 'inF2' (temp 3X3 matrix of float) -0:326 cosine (temp 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 hyp. sine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 smoothstep (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 'inF2' (temp 3X3 matrix of float) -0:326 sqrt (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 step (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 tangent (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 hyp. tangent (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 transpose (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 trunc (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:329 Branch: Return with expression +0:342 all (global bool) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 Absolute value (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 arc cosine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 any (global bool) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 arc sine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 arc tangent (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 arc tangent (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 Ceiling (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 clamp (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF2' (temp 3X3 matrix of float) +0:342 cosine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 hyp. cosine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 degrees (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 determinant (global float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 exp (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 exp2 (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 findMSB (global int) +0:342 Constant: +0:342 7 (const int) +0:342 findLSB (global int) +0:342 Constant: +0:342 7 (const int) +0:342 Floor (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 mod (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 Fraction (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 frexp (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 ldexp (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 log (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 matrix-scale (temp 3X3 matrix of float) +0:342 log2 (temp 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 Constant: +0:342 0.301030 +0:342 log2 (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 max (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 min (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 pow (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 radians (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 roundEven (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 inverse sqrt (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 clamp (temp 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 Constant: +0:342 0.000000 +0:342 Constant: +0:342 1.000000 +0:342 Sign (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 sine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 Sequence +0:342 move second child to first child (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 sine (temp 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 move second child to first child (temp 3X3 matrix of float) +0:342 'inF2' (temp 3X3 matrix of float) +0:342 cosine (temp 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 hyp. sine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 smoothstep (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF2' (temp 3X3 matrix of float) +0:342 sqrt (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 step (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 tangent (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 hyp. tangent (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 transpose (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 trunc (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:345 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -902,129 +922,127 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:353 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:333 Function Parameters: -0:333 'inF0' (temp 4X4 matrix of float) -0:333 'inF1' (temp 4X4 matrix of float) -0:333 'inF2' (temp 4X4 matrix of float) +0:369 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:349 Function Parameters: +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:335 all (global bool) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 Absolute value (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 arc cosine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 any (global bool) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 arc sine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 arc tangent (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 arc tangent (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 Ceiling (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 clamp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 'inF2' (temp 4X4 matrix of float) -0:335 cosine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 hyp. cosine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 degrees (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 determinant (global float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 exp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 exp2 (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 findMSB (global int) -0:335 Constant: -0:335 7 (const int) -0:335 findLSB (global int) -0:335 Constant: -0:335 7 (const int) -0:335 Floor (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 mod (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 Fraction (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 frexp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 fwidth (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 ldexp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 log (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 matrix-scale (temp 4X4 matrix of float) -0:335 log2 (temp 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 Constant: -0:335 0.301030 -0:335 log2 (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 max (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 min (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 pow (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 radians (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 roundEven (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 inverse sqrt (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 clamp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 Constant: -0:335 0.000000 -0:335 Constant: -0:335 1.000000 -0:335 Sign (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 sine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 Sequence -0:335 move second child to first child (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 sine (temp 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 move second child to first child (temp 4X4 matrix of float) -0:335 'inF2' (temp 4X4 matrix of float) -0:335 cosine (temp 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 hyp. sine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 smoothstep (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 'inF2' (temp 4X4 matrix of float) -0:335 sqrt (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 step (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 tangent (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 hyp. tangent (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 transpose (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 trunc (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:338 Branch: Return with expression +0:351 all (global bool) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 Absolute value (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 arc cosine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 any (global bool) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 arc sine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 arc tangent (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 arc tangent (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 Ceiling (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 clamp (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF2' (temp 4X4 matrix of float) +0:351 cosine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 hyp. cosine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 degrees (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 determinant (global float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 exp (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 exp2 (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 findMSB (global int) +0:351 Constant: +0:351 7 (const int) +0:351 findLSB (global int) +0:351 Constant: +0:351 7 (const int) +0:351 Floor (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 mod (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 Fraction (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 frexp (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 ldexp (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 log (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 matrix-scale (temp 4X4 matrix of float) +0:351 log2 (temp 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 Constant: +0:351 0.301030 +0:351 log2 (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 max (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 min (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 pow (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 radians (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 roundEven (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 inverse sqrt (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 clamp (temp 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 Constant: +0:351 0.000000 +0:351 Constant: +0:351 1.000000 +0:351 Sign (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 sine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 Sequence +0:351 move second child to first child (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 sine (temp 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 move second child to first child (temp 4X4 matrix of float) +0:351 'inF2' (temp 4X4 matrix of float) +0:351 cosine (temp 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 hyp. sine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 smoothstep (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF2' (temp 4X4 matrix of float) +0:351 sqrt (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 step (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 tangent (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 hyp. tangent (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 transpose (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 trunc (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:354 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1042,168 +1060,168 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:360 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:356 Function Parameters: -0:356 'inF0' (temp float) -0:356 'inF1' (temp float) -0:356 'inFV0' (temp 2-component vector of float) -0:356 'inFV1' (temp 2-component vector of float) -0:356 'inFM0' (temp 2X2 matrix of float) -0:356 'inFM1' (temp 2X2 matrix of float) +0:376 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:372 Function Parameters: +0:372 'inF0' (temp float) +0:372 'inF1' (temp float) +0:372 'inFV0' (temp 2-component vector of float) +0:372 'inFV1' (temp 2-component vector of float) +0:372 'inFM0' (temp 2X2 matrix of float) +0:372 'inFM1' (temp 2X2 matrix of float) 0:? Sequence -0:357 move second child to first child (temp float) -0:357 'r0' (temp float) -0:357 component-wise multiply (temp float) -0:357 'inF0' (temp float) -0:357 'inF1' (temp float) -0:357 move second child to first child (temp 2-component vector of float) -0:357 'r1' (temp 2-component vector of float) -0:357 vector-scale (temp 2-component vector of float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 'inF0' (temp float) -0:357 move second child to first child (temp 2-component vector of float) -0:357 'r2' (temp 2-component vector of float) -0:357 vector-scale (temp 2-component vector of float) -0:357 'inF0' (temp float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 move second child to first child (temp float) -0:357 'r3' (temp float) -0:357 dot-product (global float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 'inFV1' (temp 2-component vector of float) -0:357 move second child to first child (temp 2-component vector of float) -0:357 'r4' (temp 2-component vector of float) -0:357 matrix-times-vector (temp 2-component vector of float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 move second child to first child (temp 2-component vector of float) -0:357 'r5' (temp 2-component vector of float) -0:357 vector-times-matrix (temp 2-component vector of float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 move second child to first child (temp 2X2 matrix of float) -0:357 'r6' (temp 2X2 matrix of float) -0:357 matrix-scale (temp 2X2 matrix of float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 'inF0' (temp float) -0:357 move second child to first child (temp 2X2 matrix of float) -0:357 'r7' (temp 2X2 matrix of float) -0:357 matrix-scale (temp 2X2 matrix of float) -0:357 'inF0' (temp float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 move second child to first child (temp 2X2 matrix of float) -0:357 'r8' (temp 2X2 matrix of float) -0:357 matrix-multiply (temp 2X2 matrix of float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 'inFM1' (temp 2X2 matrix of float) -0:367 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:363 Function Parameters: -0:363 'inF0' (temp float) -0:363 'inF1' (temp float) -0:363 'inFV0' (temp 3-component vector of float) -0:363 'inFV1' (temp 3-component vector of float) -0:363 'inFM0' (temp 3X3 matrix of float) -0:363 'inFM1' (temp 3X3 matrix of float) +0:373 move second child to first child (temp float) +0:373 'r0' (temp float) +0:373 component-wise multiply (temp float) +0:373 'inF0' (temp float) +0:373 'inF1' (temp float) +0:373 move second child to first child (temp 2-component vector of float) +0:373 'r1' (temp 2-component vector of float) +0:373 vector-scale (temp 2-component vector of float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 'inF0' (temp float) +0:373 move second child to first child (temp 2-component vector of float) +0:373 'r2' (temp 2-component vector of float) +0:373 vector-scale (temp 2-component vector of float) +0:373 'inF0' (temp float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 move second child to first child (temp float) +0:373 'r3' (temp float) +0:373 dot-product (global float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 'inFV1' (temp 2-component vector of float) +0:373 move second child to first child (temp 2-component vector of float) +0:373 'r4' (temp 2-component vector of float) +0:373 matrix-times-vector (temp 2-component vector of float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 move second child to first child (temp 2-component vector of float) +0:373 'r5' (temp 2-component vector of float) +0:373 vector-times-matrix (temp 2-component vector of float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 move second child to first child (temp 2X2 matrix of float) +0:373 'r6' (temp 2X2 matrix of float) +0:373 matrix-scale (temp 2X2 matrix of float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inF0' (temp float) +0:373 move second child to first child (temp 2X2 matrix of float) +0:373 'r7' (temp 2X2 matrix of float) +0:373 matrix-scale (temp 2X2 matrix of float) +0:373 'inF0' (temp float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 move second child to first child (temp 2X2 matrix of float) +0:373 'r8' (temp 2X2 matrix of float) +0:373 matrix-multiply (temp 2X2 matrix of float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inFM1' (temp 2X2 matrix of float) +0:383 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:379 Function Parameters: +0:379 'inF0' (temp float) +0:379 'inF1' (temp float) +0:379 'inFV0' (temp 3-component vector of float) +0:379 'inFV1' (temp 3-component vector of float) +0:379 'inFM0' (temp 3X3 matrix of float) +0:379 'inFM1' (temp 3X3 matrix of float) 0:? Sequence -0:364 move second child to first child (temp float) -0:364 'r0' (temp float) -0:364 component-wise multiply (temp float) -0:364 'inF0' (temp float) -0:364 'inF1' (temp float) -0:364 move second child to first child (temp 3-component vector of float) -0:364 'r1' (temp 3-component vector of float) -0:364 vector-scale (temp 3-component vector of float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 'inF0' (temp float) -0:364 move second child to first child (temp 3-component vector of float) -0:364 'r2' (temp 3-component vector of float) -0:364 vector-scale (temp 3-component vector of float) -0:364 'inF0' (temp float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 move second child to first child (temp float) -0:364 'r3' (temp float) -0:364 dot-product (global float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 'inFV1' (temp 3-component vector of float) -0:364 move second child to first child (temp 3-component vector of float) -0:364 'r4' (temp 3-component vector of float) -0:364 matrix-times-vector (temp 3-component vector of float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 move second child to first child (temp 3-component vector of float) -0:364 'r5' (temp 3-component vector of float) -0:364 vector-times-matrix (temp 3-component vector of float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 move second child to first child (temp 3X3 matrix of float) -0:364 'r6' (temp 3X3 matrix of float) -0:364 matrix-scale (temp 3X3 matrix of float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 'inF0' (temp float) -0:364 move second child to first child (temp 3X3 matrix of float) -0:364 'r7' (temp 3X3 matrix of float) -0:364 matrix-scale (temp 3X3 matrix of float) -0:364 'inF0' (temp float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 move second child to first child (temp 3X3 matrix of float) -0:364 'r8' (temp 3X3 matrix of float) -0:364 matrix-multiply (temp 3X3 matrix of float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 'inFM1' (temp 3X3 matrix of float) -0:373 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:370 Function Parameters: -0:370 'inF0' (temp float) -0:370 'inF1' (temp float) -0:370 'inFV0' (temp 4-component vector of float) -0:370 'inFV1' (temp 4-component vector of float) -0:370 'inFM0' (temp 4X4 matrix of float) -0:370 'inFM1' (temp 4X4 matrix of float) +0:380 move second child to first child (temp float) +0:380 'r0' (temp float) +0:380 component-wise multiply (temp float) +0:380 'inF0' (temp float) +0:380 'inF1' (temp float) +0:380 move second child to first child (temp 3-component vector of float) +0:380 'r1' (temp 3-component vector of float) +0:380 vector-scale (temp 3-component vector of float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 'inF0' (temp float) +0:380 move second child to first child (temp 3-component vector of float) +0:380 'r2' (temp 3-component vector of float) +0:380 vector-scale (temp 3-component vector of float) +0:380 'inF0' (temp float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 move second child to first child (temp float) +0:380 'r3' (temp float) +0:380 dot-product (global float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 'inFV1' (temp 3-component vector of float) +0:380 move second child to first child (temp 3-component vector of float) +0:380 'r4' (temp 3-component vector of float) +0:380 matrix-times-vector (temp 3-component vector of float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 move second child to first child (temp 3-component vector of float) +0:380 'r5' (temp 3-component vector of float) +0:380 vector-times-matrix (temp 3-component vector of float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 move second child to first child (temp 3X3 matrix of float) +0:380 'r6' (temp 3X3 matrix of float) +0:380 matrix-scale (temp 3X3 matrix of float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inF0' (temp float) +0:380 move second child to first child (temp 3X3 matrix of float) +0:380 'r7' (temp 3X3 matrix of float) +0:380 matrix-scale (temp 3X3 matrix of float) +0:380 'inF0' (temp float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 move second child to first child (temp 3X3 matrix of float) +0:380 'r8' (temp 3X3 matrix of float) +0:380 matrix-multiply (temp 3X3 matrix of float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inFM1' (temp 3X3 matrix of float) +0:389 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:386 Function Parameters: +0:386 'inF0' (temp float) +0:386 'inF1' (temp float) +0:386 'inFV0' (temp 4-component vector of float) +0:386 'inFV1' (temp 4-component vector of float) +0:386 'inFM0' (temp 4X4 matrix of float) +0:386 'inFM1' (temp 4X4 matrix of float) 0:? Sequence -0:371 move second child to first child (temp float) -0:371 'r0' (temp float) -0:371 component-wise multiply (temp float) -0:371 'inF0' (temp float) -0:371 'inF1' (temp float) -0:371 move second child to first child (temp 4-component vector of float) -0:371 'r1' (temp 4-component vector of float) -0:371 vector-scale (temp 4-component vector of float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 'inF0' (temp float) -0:371 move second child to first child (temp 4-component vector of float) -0:371 'r2' (temp 4-component vector of float) -0:371 vector-scale (temp 4-component vector of float) -0:371 'inF0' (temp float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 move second child to first child (temp float) -0:371 'r3' (temp float) -0:371 dot-product (global float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 'inFV1' (temp 4-component vector of float) -0:371 move second child to first child (temp 4-component vector of float) -0:371 'r4' (temp 4-component vector of float) -0:371 matrix-times-vector (temp 4-component vector of float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 move second child to first child (temp 4-component vector of float) -0:371 'r5' (temp 4-component vector of float) -0:371 vector-times-matrix (temp 4-component vector of float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 move second child to first child (temp 4X4 matrix of float) -0:371 'r6' (temp 4X4 matrix of float) -0:371 matrix-scale (temp 4X4 matrix of float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 'inF0' (temp float) -0:371 move second child to first child (temp 4X4 matrix of float) -0:371 'r7' (temp 4X4 matrix of float) -0:371 matrix-scale (temp 4X4 matrix of float) -0:371 'inF0' (temp float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 move second child to first child (temp 4X4 matrix of float) -0:371 'r8' (temp 4X4 matrix of float) -0:371 matrix-multiply (temp 4X4 matrix of float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 'inFM1' (temp 4X4 matrix of float) +0:387 move second child to first child (temp float) +0:387 'r0' (temp float) +0:387 component-wise multiply (temp float) +0:387 'inF0' (temp float) +0:387 'inF1' (temp float) +0:387 move second child to first child (temp 4-component vector of float) +0:387 'r1' (temp 4-component vector of float) +0:387 vector-scale (temp 4-component vector of float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 'inF0' (temp float) +0:387 move second child to first child (temp 4-component vector of float) +0:387 'r2' (temp 4-component vector of float) +0:387 vector-scale (temp 4-component vector of float) +0:387 'inF0' (temp float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 move second child to first child (temp float) +0:387 'r3' (temp float) +0:387 dot-product (global float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 'inFV1' (temp 4-component vector of float) +0:387 move second child to first child (temp 4-component vector of float) +0:387 'r4' (temp 4-component vector of float) +0:387 matrix-times-vector (temp 4-component vector of float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 move second child to first child (temp 4-component vector of float) +0:387 'r5' (temp 4-component vector of float) +0:387 vector-times-matrix (temp 4-component vector of float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 move second child to first child (temp 4X4 matrix of float) +0:387 'r6' (temp 4X4 matrix of float) +0:387 matrix-scale (temp 4X4 matrix of float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inF0' (temp float) +0:387 move second child to first child (temp 4X4 matrix of float) +0:387 'r7' (temp 4X4 matrix of float) +0:387 matrix-scale (temp 4X4 matrix of float) +0:387 'inF0' (temp float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 move second child to first child (temp 4X4 matrix of float) +0:387 'r8' (temp 4X4 matrix of float) +0:387 matrix-multiply (temp 4X4 matrix of float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inFM1' (temp 4X4 matrix of float) 0:? Linker Objects @@ -1212,11 +1230,13 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:59 Function Definition: VertexShaderFunction(f1;f1;f1; (temp float) +0:62 Function Definition: VertexShaderFunction(f1;f1;f1;u1;u1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (temp float) 0:2 'inF1' (temp float) 0:2 'inF2' (temp float) +0:2 'inU0' (temp uint) +0:2 'inU1' (temp uint) 0:? Sequence 0:3 all (global bool) 0:3 'inF0' (temp float) @@ -1228,881 +1248,899 @@ Shader version: 450 0:6 'inF0' (temp float) 0:7 arc sine (global float) 0:7 'inF0' (temp float) -0:8 arc tangent (global float) +0:8 floatBitsToInt (global int) 0:8 'inF0' (temp float) -0:9 arc tangent (global float) +0:9 floatBitsToUint (global uint) 0:9 'inF0' (temp float) -0:9 'inF1' (temp float) -0:10 Ceiling (global float) -0:10 'inF0' (temp float) -0:11 clamp (global float) -0:11 'inF0' (temp float) -0:11 'inF1' (temp float) -0:11 'inF2' (temp float) -0:12 cosine (global float) +0:10 intBitsToFloat (global float) +0:10 'inU0' (temp uint) +0:12 arc tangent (global float) 0:12 'inF0' (temp float) -0:13 hyp. cosine (global float) +0:13 arc tangent (global float) 0:13 'inF0' (temp float) -0:14 bitCount (global uint) -0:14 Constant: -0:14 7 (const uint) -0:15 degrees (global float) +0:13 'inF1' (temp float) +0:14 Ceiling (global float) +0:14 'inF0' (temp float) +0:15 clamp (global float) 0:15 'inF0' (temp float) -0:19 exp (global float) +0:15 'inF1' (temp float) +0:15 'inF2' (temp float) +0:16 cosine (global float) +0:16 'inF0' (temp float) +0:17 hyp. cosine (global float) +0:17 'inF0' (temp float) +0:18 bitCount (global uint) +0:18 Constant: +0:18 7 (const uint) +0:19 degrees (global float) 0:19 'inF0' (temp float) -0:20 exp2 (global float) -0:20 'inF0' (temp float) -0:21 findMSB (global int) -0:21 Constant: -0:21 7 (const int) -0:22 findLSB (global int) -0:22 Constant: -0:22 7 (const int) -0:23 Floor (global float) +0:23 exp (global float) 0:23 'inF0' (temp float) -0:25 mod (global float) -0:25 'inF0' (temp float) -0:25 'inF1' (temp float) -0:26 Fraction (global float) -0:26 'inF0' (temp float) -0:27 frexp (global float) +0:24 exp2 (global float) +0:24 'inF0' (temp float) +0:25 findMSB (global int) +0:25 Constant: +0:25 7 (const int) +0:26 findLSB (global int) +0:26 Constant: +0:26 7 (const int) +0:27 Floor (global float) 0:27 'inF0' (temp float) -0:27 'inF1' (temp float) -0:28 fwidth (global float) -0:28 'inF0' (temp float) -0:29 isinf (global bool) +0:29 mod (global float) 0:29 'inF0' (temp float) -0:30 isnan (global bool) +0:29 'inF1' (temp float) +0:30 Fraction (global float) 0:30 'inF0' (temp float) -0:31 ldexp (global float) +0:31 frexp (global float) 0:31 'inF0' (temp float) 0:31 'inF1' (temp float) -0:32 log (global float) +0:32 isinf (global bool) 0:32 'inF0' (temp float) -0:33 component-wise multiply (temp float) -0:33 log2 (temp float) -0:33 'inF0' (temp float) -0:33 Constant: -0:33 0.301030 -0:34 log2 (global float) +0:33 isnan (global bool) +0:33 'inF0' (temp float) +0:34 ldexp (global float) 0:34 'inF0' (temp float) -0:35 max (global float) +0:34 'inF1' (temp float) +0:35 log (global float) 0:35 'inF0' (temp float) -0:35 'inF1' (temp float) -0:36 min (global float) -0:36 'inF0' (temp float) -0:36 'inF1' (temp float) -0:38 pow (global float) +0:36 component-wise multiply (temp float) +0:36 log2 (temp float) +0:36 'inF0' (temp float) +0:36 Constant: +0:36 0.301030 +0:37 log2 (global float) +0:37 'inF0' (temp float) +0:38 max (global float) 0:38 'inF0' (temp float) 0:38 'inF1' (temp float) -0:39 radians (global float) +0:39 min (global float) 0:39 'inF0' (temp float) -0:40 bitFieldReverse (global uint) -0:40 Constant: -0:40 2 (const uint) -0:41 roundEven (global float) +0:39 'inF1' (temp float) +0:41 pow (global float) 0:41 'inF0' (temp float) -0:42 inverse sqrt (global float) +0:41 'inF1' (temp float) +0:42 radians (global float) 0:42 'inF0' (temp float) -0:43 clamp (global float) -0:43 'inF0' (temp float) +0:43 bitFieldReverse (global uint) 0:43 Constant: -0:43 0.000000 -0:43 Constant: -0:43 1.000000 -0:44 Sign (global float) +0:43 2 (const uint) +0:44 roundEven (global float) 0:44 'inF0' (temp float) -0:45 sine (global float) +0:45 inverse sqrt (global float) 0:45 'inF0' (temp float) -0:46 Sequence -0:46 move second child to first child (temp float) -0:46 'inF1' (temp float) -0:46 sine (temp float) -0:46 'inF0' (temp float) -0:46 move second child to first child (temp float) -0:46 'inF2' (temp float) -0:46 cosine (temp float) -0:46 'inF0' (temp float) -0:47 hyp. sine (global float) +0:46 clamp (temp float) +0:46 'inF0' (temp float) +0:46 Constant: +0:46 0.000000 +0:46 Constant: +0:46 1.000000 +0:47 Sign (global float) 0:47 'inF0' (temp float) -0:48 smoothstep (global float) +0:48 sine (global float) 0:48 'inF0' (temp float) -0:48 'inF1' (temp float) -0:48 'inF2' (temp float) -0:49 sqrt (global float) -0:49 'inF0' (temp float) -0:50 step (global float) +0:49 Sequence +0:49 move second child to first child (temp float) +0:49 'inF1' (temp float) +0:49 sine (temp float) +0:49 'inF0' (temp float) +0:49 move second child to first child (temp float) +0:49 'inF2' (temp float) +0:49 cosine (temp float) +0:49 'inF0' (temp float) +0:50 hyp. sine (global float) 0:50 'inF0' (temp float) -0:50 'inF1' (temp float) -0:51 tangent (global float) +0:51 smoothstep (global float) 0:51 'inF0' (temp float) -0:52 hyp. tangent (global float) +0:51 'inF1' (temp float) +0:51 'inF2' (temp float) +0:52 sqrt (global float) 0:52 'inF0' (temp float) -0:54 trunc (global float) +0:53 step (global float) +0:53 'inF0' (temp float) +0:53 'inF1' (temp float) +0:54 tangent (global float) 0:54 'inF0' (temp float) -0:56 Branch: Return with expression -0:56 Constant: -0:56 0.000000 -0:65 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:60 Function Parameters: -0:60 'inF0' (temp 1-component vector of float) -0:60 'inF1' (temp 1-component vector of float) -0:60 'inF2' (temp 1-component vector of float) +0:55 hyp. tangent (global float) +0:55 'inF0' (temp float) +0:57 trunc (global float) +0:57 'inF0' (temp float) +0:59 Branch: Return with expression +0:59 Constant: +0:59 0.000000 +0:68 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:63 Function Parameters: +0:63 'inF0' (temp 1-component vector of float) +0:63 'inF1' (temp 1-component vector of float) +0:63 'inF2' (temp 1-component vector of float) 0:? Sequence -0:62 Branch: Return with expression -0:62 Constant: -0:62 0.000000 -0:131 Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float) -0:66 Function Parameters: -0:66 'inF0' (temp 2-component vector of float) -0:66 'inF1' (temp 2-component vector of float) -0:66 'inF2' (temp 2-component vector of float) +0:65 Branch: Return with expression +0:65 Constant: +0:65 0.000000 +0:137 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:69 Function Parameters: +0:69 'inF0' (temp 2-component vector of float) +0:69 'inF1' (temp 2-component vector of float) +0:69 'inF2' (temp 2-component vector of float) +0:69 'inU0' (temp 2-component vector of uint) +0:69 'inU1' (temp 2-component vector of uint) 0:? Sequence -0:67 all (global bool) -0:67 'inF0' (temp 2-component vector of float) -0:68 Absolute value (global 2-component vector of float) -0:68 'inF0' (temp 2-component vector of float) -0:69 arc cosine (global 2-component vector of float) -0:69 'inF0' (temp 2-component vector of float) -0:70 any (global bool) +0:70 all (global bool) 0:70 'inF0' (temp 2-component vector of float) -0:71 arc sine (global 2-component vector of float) +0:71 Absolute value (global 2-component vector of float) 0:71 'inF0' (temp 2-component vector of float) -0:72 arc tangent (global 2-component vector of float) +0:72 arc cosine (global 2-component vector of float) 0:72 'inF0' (temp 2-component vector of float) -0:73 arc tangent (global 2-component vector of float) +0:73 any (global bool) 0:73 'inF0' (temp 2-component vector of float) -0:73 'inF1' (temp 2-component vector of float) -0:74 Ceiling (global 2-component vector of float) +0:74 arc sine (global 2-component vector of float) 0:74 'inF0' (temp 2-component vector of float) -0:75 clamp (global 2-component vector of float) +0:75 floatBitsToInt (global 2-component vector of int) 0:75 'inF0' (temp 2-component vector of float) -0:75 'inF1' (temp 2-component vector of float) -0:75 'inF2' (temp 2-component vector of float) -0:76 cosine (global 2-component vector of float) +0:76 floatBitsToUint (global 2-component vector of uint) 0:76 'inF0' (temp 2-component vector of float) -0:77 hyp. cosine (global 2-component vector of float) -0:77 'inF0' (temp 2-component vector of float) +0:77 intBitsToFloat (global 2-component vector of float) +0:77 'inU0' (temp 2-component vector of uint) +0:79 arc tangent (global 2-component vector of float) +0:79 'inF0' (temp 2-component vector of float) +0:80 arc tangent (global 2-component vector of float) +0:80 'inF0' (temp 2-component vector of float) +0:80 'inF1' (temp 2-component vector of float) +0:81 Ceiling (global 2-component vector of float) +0:81 'inF0' (temp 2-component vector of float) +0:82 clamp (global 2-component vector of float) +0:82 'inF0' (temp 2-component vector of float) +0:82 'inF1' (temp 2-component vector of float) +0:82 'inF2' (temp 2-component vector of float) +0:83 cosine (global 2-component vector of float) +0:83 'inF0' (temp 2-component vector of float) +0:84 hyp. cosine (global 2-component vector of float) +0:84 'inF0' (temp 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:79 degrees (global 2-component vector of float) -0:79 'inF0' (temp 2-component vector of float) -0:80 distance (global float) -0:80 'inF0' (temp 2-component vector of float) -0:80 'inF1' (temp 2-component vector of float) -0:81 dot-product (global float) -0:81 'inF0' (temp 2-component vector of float) -0:81 'inF1' (temp 2-component vector of float) -0:85 exp (global 2-component vector of float) -0:85 'inF0' (temp 2-component vector of float) -0:86 exp2 (global 2-component vector of float) +0:86 degrees (global 2-component vector of float) 0:86 'inF0' (temp 2-component vector of float) -0:87 face-forward (global 2-component vector of float) +0:87 distance (global float) 0:87 'inF0' (temp 2-component vector of float) 0:87 'inF1' (temp 2-component vector of float) -0:87 'inF2' (temp 2-component vector of float) -0:88 findMSB (global int) -0:88 Constant: -0:88 7 (const int) -0:89 findLSB (global int) -0:89 Constant: -0:89 7 (const int) -0:90 Floor (global 2-component vector of float) -0:90 'inF0' (temp 2-component vector of float) -0:92 mod (global 2-component vector of float) +0:88 dot-product (global float) +0:88 'inF0' (temp 2-component vector of float) +0:88 'inF1' (temp 2-component vector of float) +0:92 exp (global 2-component vector of float) 0:92 'inF0' (temp 2-component vector of float) -0:92 'inF1' (temp 2-component vector of float) -0:93 Fraction (global 2-component vector of float) +0:93 exp2 (global 2-component vector of float) 0:93 'inF0' (temp 2-component vector of float) -0:94 frexp (global 2-component vector of float) +0:94 face-forward (global 2-component vector of float) 0:94 'inF0' (temp 2-component vector of float) 0:94 'inF1' (temp 2-component vector of float) -0:95 fwidth (global 2-component vector of float) -0:95 'inF0' (temp 2-component vector of float) -0:96 isinf (global 2-component vector of bool) -0:96 'inF0' (temp 2-component vector of float) -0:97 isnan (global 2-component vector of bool) +0:94 'inF2' (temp 2-component vector of float) +0:95 findMSB (global int) +0:95 Constant: +0:95 7 (const int) +0:96 findLSB (global int) +0:96 Constant: +0:96 7 (const int) +0:97 Floor (global 2-component vector of float) 0:97 'inF0' (temp 2-component vector of float) -0:98 ldexp (global 2-component vector of float) -0:98 'inF0' (temp 2-component vector of float) -0:98 'inF1' (temp 2-component vector of float) -0:99 length (global float) +0:99 mod (global 2-component vector of float) 0:99 'inF0' (temp 2-component vector of float) -0:100 log (global 2-component vector of float) +0:99 'inF1' (temp 2-component vector of float) +0:100 Fraction (global 2-component vector of float) 0:100 'inF0' (temp 2-component vector of float) -0:101 vector-scale (temp 2-component vector of float) -0:101 log2 (temp 2-component vector of float) -0:101 'inF0' (temp 2-component vector of float) -0:101 Constant: -0:101 0.301030 -0:102 log2 (global 2-component vector of float) +0:101 frexp (global 2-component vector of float) +0:101 'inF0' (temp 2-component vector of float) +0:101 'inF1' (temp 2-component vector of float) +0:102 isinf (global 2-component vector of bool) 0:102 'inF0' (temp 2-component vector of float) -0:103 max (global 2-component vector of float) +0:103 isnan (global 2-component vector of bool) 0:103 'inF0' (temp 2-component vector of float) -0:103 'inF1' (temp 2-component vector of float) -0:104 min (global 2-component vector of float) +0:104 ldexp (global 2-component vector of float) 0:104 'inF0' (temp 2-component vector of float) 0:104 'inF1' (temp 2-component vector of float) -0:106 normalize (global 2-component vector of float) +0:105 length (global float) +0:105 'inF0' (temp 2-component vector of float) +0:106 log (global 2-component vector of float) 0:106 'inF0' (temp 2-component vector of float) -0:107 pow (global 2-component vector of float) -0:107 'inF0' (temp 2-component vector of float) -0:107 'inF1' (temp 2-component vector of float) -0:108 radians (global 2-component vector of float) +0:107 vector-scale (temp 2-component vector of float) +0:107 log2 (temp 2-component vector of float) +0:107 'inF0' (temp 2-component vector of float) +0:107 Constant: +0:107 0.301030 +0:108 log2 (global 2-component vector of float) 0:108 'inF0' (temp 2-component vector of float) -0:109 reflect (global 2-component vector of float) +0:109 max (global 2-component vector of float) 0:109 'inF0' (temp 2-component vector of float) 0:109 'inF1' (temp 2-component vector of float) -0:110 refract (global 2-component vector of float) +0:110 min (global 2-component vector of float) 0:110 'inF0' (temp 2-component vector of float) 0:110 'inF1' (temp 2-component vector of float) -0:110 Constant: -0:110 2.000000 +0:112 normalize (global 2-component vector of float) +0:112 'inF0' (temp 2-component vector of float) +0:113 pow (global 2-component vector of float) +0:113 'inF0' (temp 2-component vector of float) +0:113 'inF1' (temp 2-component vector of float) +0:114 radians (global 2-component vector of float) +0:114 'inF0' (temp 2-component vector of float) +0:115 reflect (global 2-component vector of float) +0:115 'inF0' (temp 2-component vector of float) +0:115 'inF1' (temp 2-component vector of float) +0:116 refract (global 2-component vector of float) +0:116 'inF0' (temp 2-component vector of float) +0:116 'inF1' (temp 2-component vector of float) +0:116 Constant: +0:116 2.000000 0:? bitFieldReverse (global 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:112 roundEven (global 2-component vector of float) -0:112 'inF0' (temp 2-component vector of float) -0:113 inverse sqrt (global 2-component vector of float) -0:113 'inF0' (temp 2-component vector of float) -0:114 clamp (global 2-component vector of float) -0:114 'inF0' (temp 2-component vector of float) -0:114 Constant: -0:114 0.000000 -0:114 Constant: -0:114 1.000000 -0:115 Sign (global 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) -0:116 sine (global 2-component vector of float) -0:116 'inF0' (temp 2-component vector of float) -0:117 Sequence -0:117 move second child to first child (temp 2-component vector of float) -0:117 'inF1' (temp 2-component vector of float) -0:117 sine (temp 2-component vector of float) -0:117 'inF0' (temp 2-component vector of float) -0:117 move second child to first child (temp 2-component vector of float) -0:117 'inF2' (temp 2-component vector of float) -0:117 cosine (temp 2-component vector of float) -0:117 'inF0' (temp 2-component vector of float) -0:118 hyp. sine (global 2-component vector of float) +0:118 roundEven (global 2-component vector of float) 0:118 'inF0' (temp 2-component vector of float) -0:119 smoothstep (global 2-component vector of float) +0:119 inverse sqrt (global 2-component vector of float) 0:119 'inF0' (temp 2-component vector of float) -0:119 'inF1' (temp 2-component vector of float) -0:119 'inF2' (temp 2-component vector of float) -0:120 sqrt (global 2-component vector of float) +0:120 clamp (temp 2-component vector of float) 0:120 'inF0' (temp 2-component vector of float) -0:121 step (global 2-component vector of float) +0:120 Constant: +0:120 0.000000 +0:120 Constant: +0:120 1.000000 +0:121 Sign (global 2-component vector of float) 0:121 'inF0' (temp 2-component vector of float) -0:121 'inF1' (temp 2-component vector of float) -0:122 tangent (global 2-component vector of float) +0:122 sine (global 2-component vector of float) 0:122 'inF0' (temp 2-component vector of float) -0:123 hyp. tangent (global 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) -0:125 trunc (global 2-component vector of float) +0:123 Sequence +0:123 move second child to first child (temp 2-component vector of float) +0:123 'inF1' (temp 2-component vector of float) +0:123 sine (temp 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:123 move second child to first child (temp 2-component vector of float) +0:123 'inF2' (temp 2-component vector of float) +0:123 cosine (temp 2-component vector of float) +0:123 'inF0' (temp 2-component vector of float) +0:124 hyp. sine (global 2-component vector of float) +0:124 'inF0' (temp 2-component vector of float) +0:125 smoothstep (global 2-component vector of float) 0:125 'inF0' (temp 2-component vector of float) -0:128 Branch: Return with expression +0:125 'inF1' (temp 2-component vector of float) +0:125 'inF2' (temp 2-component vector of float) +0:126 sqrt (global 2-component vector of float) +0:126 'inF0' (temp 2-component vector of float) +0:127 step (global 2-component vector of float) +0:127 'inF0' (temp 2-component vector of float) +0:127 'inF1' (temp 2-component vector of float) +0:128 tangent (global 2-component vector of float) +0:128 'inF0' (temp 2-component vector of float) +0:129 hyp. tangent (global 2-component vector of float) +0:129 'inF0' (temp 2-component vector of float) +0:131 trunc (global 2-component vector of float) +0:131 'inF0' (temp 2-component vector of float) +0:134 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:198 Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float) -0:132 Function Parameters: -0:132 'inF0' (temp 3-component vector of float) -0:132 'inF1' (temp 3-component vector of float) -0:132 'inF2' (temp 3-component vector of float) +0:207 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:138 Function Parameters: +0:138 'inF0' (temp 3-component vector of float) +0:138 'inF1' (temp 3-component vector of float) +0:138 'inF2' (temp 3-component vector of float) +0:138 'inU0' (temp 3-component vector of uint) +0:138 'inU1' (temp 3-component vector of uint) 0:? Sequence -0:133 all (global bool) -0:133 'inF0' (temp 3-component vector of float) -0:134 Absolute value (global 3-component vector of float) -0:134 'inF0' (temp 3-component vector of float) -0:135 arc cosine (global 3-component vector of float) -0:135 'inF0' (temp 3-component vector of float) -0:136 any (global bool) -0:136 'inF0' (temp 3-component vector of float) -0:137 arc sine (global 3-component vector of float) -0:137 'inF0' (temp 3-component vector of float) -0:138 arc tangent (global 3-component vector of float) -0:138 'inF0' (temp 3-component vector of float) -0:139 arc tangent (global 3-component vector of float) +0:139 all (global bool) 0:139 'inF0' (temp 3-component vector of float) -0:139 'inF1' (temp 3-component vector of float) -0:140 Ceiling (global 3-component vector of float) +0:140 Absolute value (global 3-component vector of float) 0:140 'inF0' (temp 3-component vector of float) -0:141 clamp (global 3-component vector of float) +0:141 arc cosine (global 3-component vector of float) 0:141 'inF0' (temp 3-component vector of float) -0:141 'inF1' (temp 3-component vector of float) -0:141 'inF2' (temp 3-component vector of float) -0:142 cosine (global 3-component vector of float) +0:142 any (global bool) 0:142 'inF0' (temp 3-component vector of float) -0:143 hyp. cosine (global 3-component vector of float) +0:143 arc sine (global 3-component vector of float) 0:143 'inF0' (temp 3-component vector of float) +0:144 floatBitsToInt (global 3-component vector of int) +0:144 'inF0' (temp 3-component vector of float) +0:145 floatBitsToUint (global 3-component vector of uint) +0:145 'inF0' (temp 3-component vector of float) +0:146 intBitsToFloat (global 3-component vector of float) +0:146 'inU0' (temp 3-component vector of uint) +0:148 arc tangent (global 3-component vector of float) +0:148 'inF0' (temp 3-component vector of float) +0:149 arc tangent (global 3-component vector of float) +0:149 'inF0' (temp 3-component vector of float) +0:149 'inF1' (temp 3-component vector of float) +0:150 Ceiling (global 3-component vector of float) +0:150 'inF0' (temp 3-component vector of float) +0:151 clamp (global 3-component vector of float) +0:151 'inF0' (temp 3-component vector of float) +0:151 'inF1' (temp 3-component vector of float) +0:151 'inF2' (temp 3-component vector of float) +0:152 cosine (global 3-component vector of float) +0:152 'inF0' (temp 3-component vector of float) +0:153 hyp. cosine (global 3-component vector of float) +0:153 'inF0' (temp 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:145 cross-product (global 3-component vector of float) -0:145 'inF0' (temp 3-component vector of float) -0:145 'inF1' (temp 3-component vector of float) -0:146 degrees (global 3-component vector of float) -0:146 'inF0' (temp 3-component vector of float) -0:147 distance (global float) -0:147 'inF0' (temp 3-component vector of float) -0:147 'inF1' (temp 3-component vector of float) -0:148 dot-product (global float) -0:148 'inF0' (temp 3-component vector of float) -0:148 'inF1' (temp 3-component vector of float) -0:152 exp (global 3-component vector of float) -0:152 'inF0' (temp 3-component vector of float) -0:153 exp2 (global 3-component vector of float) -0:153 'inF0' (temp 3-component vector of float) -0:154 face-forward (global 3-component vector of float) -0:154 'inF0' (temp 3-component vector of float) -0:154 'inF1' (temp 3-component vector of float) -0:154 'inF2' (temp 3-component vector of float) -0:155 findMSB (global int) -0:155 Constant: -0:155 7 (const int) -0:156 findLSB (global int) -0:156 Constant: -0:156 7 (const int) -0:157 Floor (global 3-component vector of float) +0:155 cross-product (global 3-component vector of float) +0:155 'inF0' (temp 3-component vector of float) +0:155 'inF1' (temp 3-component vector of float) +0:156 degrees (global 3-component vector of float) +0:156 'inF0' (temp 3-component vector of float) +0:157 distance (global float) 0:157 'inF0' (temp 3-component vector of float) -0:159 mod (global 3-component vector of float) -0:159 'inF0' (temp 3-component vector of float) -0:159 'inF1' (temp 3-component vector of float) -0:160 Fraction (global 3-component vector of float) -0:160 'inF0' (temp 3-component vector of float) -0:161 frexp (global 3-component vector of float) -0:161 'inF0' (temp 3-component vector of float) -0:161 'inF1' (temp 3-component vector of float) -0:162 fwidth (global 3-component vector of float) +0:157 'inF1' (temp 3-component vector of float) +0:158 dot-product (global float) +0:158 'inF0' (temp 3-component vector of float) +0:158 'inF1' (temp 3-component vector of float) +0:162 exp (global 3-component vector of float) 0:162 'inF0' (temp 3-component vector of float) -0:163 isinf (global 3-component vector of bool) +0:163 exp2 (global 3-component vector of float) 0:163 'inF0' (temp 3-component vector of float) -0:164 isnan (global 3-component vector of bool) +0:164 face-forward (global 3-component vector of float) 0:164 'inF0' (temp 3-component vector of float) -0:165 ldexp (global 3-component vector of float) -0:165 'inF0' (temp 3-component vector of float) -0:165 'inF1' (temp 3-component vector of float) -0:166 length (global float) -0:166 'inF0' (temp 3-component vector of float) -0:167 log (global 3-component vector of float) +0:164 'inF1' (temp 3-component vector of float) +0:164 'inF2' (temp 3-component vector of float) +0:165 findMSB (global int) +0:165 Constant: +0:165 7 (const int) +0:166 findLSB (global int) +0:166 Constant: +0:166 7 (const int) +0:167 Floor (global 3-component vector of float) 0:167 'inF0' (temp 3-component vector of float) -0:168 vector-scale (temp 3-component vector of float) -0:168 log2 (temp 3-component vector of float) -0:168 'inF0' (temp 3-component vector of float) -0:168 Constant: -0:168 0.301030 -0:169 log2 (global 3-component vector of float) +0:169 mod (global 3-component vector of float) 0:169 'inF0' (temp 3-component vector of float) -0:170 max (global 3-component vector of float) +0:169 'inF1' (temp 3-component vector of float) +0:170 Fraction (global 3-component vector of float) 0:170 'inF0' (temp 3-component vector of float) -0:170 'inF1' (temp 3-component vector of float) -0:171 min (global 3-component vector of float) +0:171 frexp (global 3-component vector of float) 0:171 'inF0' (temp 3-component vector of float) 0:171 'inF1' (temp 3-component vector of float) -0:173 normalize (global 3-component vector of float) +0:172 isinf (global 3-component vector of bool) +0:172 'inF0' (temp 3-component vector of float) +0:173 isnan (global 3-component vector of bool) 0:173 'inF0' (temp 3-component vector of float) -0:174 pow (global 3-component vector of float) +0:174 ldexp (global 3-component vector of float) 0:174 'inF0' (temp 3-component vector of float) 0:174 'inF1' (temp 3-component vector of float) -0:175 radians (global 3-component vector of float) +0:175 length (global float) 0:175 'inF0' (temp 3-component vector of float) -0:176 reflect (global 3-component vector of float) +0:176 log (global 3-component vector of float) 0:176 'inF0' (temp 3-component vector of float) -0:176 'inF1' (temp 3-component vector of float) -0:177 refract (global 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) -0:177 'inF1' (temp 3-component vector of float) +0:177 vector-scale (temp 3-component vector of float) +0:177 log2 (temp 3-component vector of float) +0:177 'inF0' (temp 3-component vector of float) 0:177 Constant: -0:177 2.000000 +0:177 0.301030 +0:178 log2 (global 3-component vector of float) +0:178 'inF0' (temp 3-component vector of float) +0:179 max (global 3-component vector of float) +0:179 'inF0' (temp 3-component vector of float) +0:179 'inF1' (temp 3-component vector of float) +0:180 min (global 3-component vector of float) +0:180 'inF0' (temp 3-component vector of float) +0:180 'inF1' (temp 3-component vector of float) +0:182 normalize (global 3-component vector of float) +0:182 'inF0' (temp 3-component vector of float) +0:183 pow (global 3-component vector of float) +0:183 'inF0' (temp 3-component vector of float) +0:183 'inF1' (temp 3-component vector of float) +0:184 radians (global 3-component vector of float) +0:184 'inF0' (temp 3-component vector of float) +0:185 reflect (global 3-component vector of float) +0:185 'inF0' (temp 3-component vector of float) +0:185 'inF1' (temp 3-component vector of float) +0:186 refract (global 3-component vector of float) +0:186 'inF0' (temp 3-component vector of float) +0:186 'inF1' (temp 3-component vector of float) +0:186 Constant: +0:186 2.000000 0:? bitFieldReverse (global 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:179 roundEven (global 3-component vector of float) -0:179 'inF0' (temp 3-component vector of float) -0:180 inverse sqrt (global 3-component vector of float) -0:180 'inF0' (temp 3-component vector of float) -0:181 clamp (global 3-component vector of float) -0:181 'inF0' (temp 3-component vector of float) -0:181 Constant: -0:181 0.000000 -0:181 Constant: -0:181 1.000000 -0:182 Sign (global 3-component vector of float) -0:182 'inF0' (temp 3-component vector of float) -0:183 sine (global 3-component vector of float) -0:183 'inF0' (temp 3-component vector of float) -0:184 Sequence -0:184 move second child to first child (temp 3-component vector of float) -0:184 'inF1' (temp 3-component vector of float) -0:184 sine (temp 3-component vector of float) -0:184 'inF0' (temp 3-component vector of float) -0:184 move second child to first child (temp 3-component vector of float) -0:184 'inF2' (temp 3-component vector of float) -0:184 cosine (temp 3-component vector of float) -0:184 'inF0' (temp 3-component vector of float) -0:185 hyp. sine (global 3-component vector of float) -0:185 'inF0' (temp 3-component vector of float) -0:186 smoothstep (global 3-component vector of float) -0:186 'inF0' (temp 3-component vector of float) -0:186 'inF1' (temp 3-component vector of float) -0:186 'inF2' (temp 3-component vector of float) -0:187 sqrt (global 3-component vector of float) -0:187 'inF0' (temp 3-component vector of float) -0:188 step (global 3-component vector of float) +0:188 roundEven (global 3-component vector of float) 0:188 'inF0' (temp 3-component vector of float) -0:188 'inF1' (temp 3-component vector of float) -0:189 tangent (global 3-component vector of float) +0:189 inverse sqrt (global 3-component vector of float) 0:189 'inF0' (temp 3-component vector of float) -0:190 hyp. tangent (global 3-component vector of float) +0:190 clamp (temp 3-component vector of float) 0:190 'inF0' (temp 3-component vector of float) -0:192 trunc (global 3-component vector of float) +0:190 Constant: +0:190 0.000000 +0:190 Constant: +0:190 1.000000 +0:191 Sign (global 3-component vector of float) +0:191 'inF0' (temp 3-component vector of float) +0:192 sine (global 3-component vector of float) 0:192 'inF0' (temp 3-component vector of float) -0:195 Branch: Return with expression +0:193 Sequence +0:193 move second child to first child (temp 3-component vector of float) +0:193 'inF1' (temp 3-component vector of float) +0:193 sine (temp 3-component vector of float) +0:193 'inF0' (temp 3-component vector of float) +0:193 move second child to first child (temp 3-component vector of float) +0:193 'inF2' (temp 3-component vector of float) +0:193 cosine (temp 3-component vector of float) +0:193 'inF0' (temp 3-component vector of float) +0:194 hyp. sine (global 3-component vector of float) +0:194 'inF0' (temp 3-component vector of float) +0:195 smoothstep (global 3-component vector of float) +0:195 'inF0' (temp 3-component vector of float) +0:195 'inF1' (temp 3-component vector of float) +0:195 'inF2' (temp 3-component vector of float) +0:196 sqrt (global 3-component vector of float) +0:196 'inF0' (temp 3-component vector of float) +0:197 step (global 3-component vector of float) +0:197 'inF0' (temp 3-component vector of float) +0:197 'inF1' (temp 3-component vector of float) +0:198 tangent (global 3-component vector of float) +0:198 'inF0' (temp 3-component vector of float) +0:199 hyp. tangent (global 3-component vector of float) +0:199 'inF0' (temp 3-component vector of float) +0:201 trunc (global 3-component vector of float) +0:201 'inF0' (temp 3-component vector of float) +0:204 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:314 Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float) -0:199 Function Parameters: -0:199 'inF0' (temp 4-component vector of float) -0:199 'inF1' (temp 4-component vector of float) -0:199 'inF2' (temp 4-component vector of float) +0:330 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:208 Function Parameters: +0:208 'inF0' (temp 4-component vector of float) +0:208 'inF1' (temp 4-component vector of float) +0:208 'inF2' (temp 4-component vector of float) +0:208 'inU0' (temp 4-component vector of uint) +0:208 'inU1' (temp 4-component vector of uint) 0:? Sequence -0:200 all (global bool) -0:200 'inF0' (temp 4-component vector of float) -0:201 Absolute value (global 4-component vector of float) -0:201 'inF0' (temp 4-component vector of float) -0:202 arc cosine (global 4-component vector of float) -0:202 'inF0' (temp 4-component vector of float) -0:203 any (global bool) -0:203 'inF0' (temp 4-component vector of float) -0:204 arc sine (global 4-component vector of float) -0:204 'inF0' (temp 4-component vector of float) -0:205 arc tangent (global 4-component vector of float) -0:205 'inF0' (temp 4-component vector of float) -0:206 arc tangent (global 4-component vector of float) -0:206 'inF0' (temp 4-component vector of float) -0:206 'inF1' (temp 4-component vector of float) -0:207 Ceiling (global 4-component vector of float) -0:207 'inF0' (temp 4-component vector of float) -0:208 clamp (global 4-component vector of float) -0:208 'inF0' (temp 4-component vector of float) -0:208 'inF1' (temp 4-component vector of float) -0:208 'inF2' (temp 4-component vector of float) -0:209 cosine (global 4-component vector of float) +0:209 all (global bool) 0:209 'inF0' (temp 4-component vector of float) -0:210 hyp. cosine (global 4-component vector of float) +0:210 Absolute value (global 4-component vector of float) 0:210 'inF0' (temp 4-component vector of float) +0:211 arc cosine (global 4-component vector of float) +0:211 'inF0' (temp 4-component vector of float) +0:212 any (global bool) +0:212 'inF0' (temp 4-component vector of float) +0:213 arc sine (global 4-component vector of float) +0:213 'inF0' (temp 4-component vector of float) +0:214 floatBitsToInt (global 4-component vector of int) +0:214 'inF0' (temp 4-component vector of float) +0:215 floatBitsToUint (global 4-component vector of uint) +0:215 'inF0' (temp 4-component vector of float) +0:216 intBitsToFloat (global 4-component vector of float) +0:216 'inU0' (temp 4-component vector of uint) +0:218 arc tangent (global 4-component vector of float) +0:218 'inF0' (temp 4-component vector of float) +0:219 arc tangent (global 4-component vector of float) +0:219 'inF0' (temp 4-component vector of float) +0:219 'inF1' (temp 4-component vector of float) +0:220 Ceiling (global 4-component vector of float) +0:220 'inF0' (temp 4-component vector of float) +0:221 clamp (global 4-component vector of float) +0:221 'inF0' (temp 4-component vector of float) +0:221 'inF1' (temp 4-component vector of float) +0:221 'inF2' (temp 4-component vector of float) +0:222 cosine (global 4-component vector of float) +0:222 'inF0' (temp 4-component vector of float) +0:223 hyp. cosine (global 4-component vector of float) +0:223 'inF0' (temp 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:212 degrees (global 4-component vector of float) -0:212 'inF0' (temp 4-component vector of float) -0:213 distance (global float) -0:213 'inF0' (temp 4-component vector of float) -0:213 'inF1' (temp 4-component vector of float) -0:214 dot-product (global float) -0:214 'inF0' (temp 4-component vector of float) -0:214 'inF1' (temp 4-component vector of float) -0:215 Construct vec4 (temp float) -0:215 Constant: -0:215 1.000000 -0:215 component-wise multiply (temp float) -0:215 direct index (temp float) -0:215 'inF0' (temp 4-component vector of float) -0:215 Constant: -0:215 1 (const int) -0:215 direct index (temp float) -0:215 'inF1' (temp 4-component vector of float) -0:215 Constant: -0:215 1 (const int) -0:215 direct index (temp float) -0:215 'inF0' (temp 4-component vector of float) -0:215 Constant: -0:215 2 (const int) -0:215 direct index (temp float) -0:215 'inF1' (temp 4-component vector of float) -0:215 Constant: -0:215 3 (const int) -0:219 exp (global 4-component vector of float) -0:219 'inF0' (temp 4-component vector of float) -0:220 exp2 (global 4-component vector of float) -0:220 'inF0' (temp 4-component vector of float) -0:221 face-forward (global 4-component vector of float) -0:221 'inF0' (temp 4-component vector of float) -0:221 'inF1' (temp 4-component vector of float) -0:221 'inF2' (temp 4-component vector of float) -0:222 findMSB (global int) -0:222 Constant: -0:222 7 (const int) -0:223 findLSB (global int) -0:223 Constant: -0:223 7 (const int) -0:224 Floor (global 4-component vector of float) -0:224 'inF0' (temp 4-component vector of float) -0:226 mod (global 4-component vector of float) +0:225 degrees (global 4-component vector of float) +0:225 'inF0' (temp 4-component vector of float) +0:226 distance (global float) 0:226 'inF0' (temp 4-component vector of float) 0:226 'inF1' (temp 4-component vector of float) -0:227 Fraction (global 4-component vector of float) +0:227 dot-product (global float) 0:227 'inF0' (temp 4-component vector of float) -0:228 frexp (global 4-component vector of float) -0:228 'inF0' (temp 4-component vector of float) -0:228 'inF1' (temp 4-component vector of float) -0:229 fwidth (global 4-component vector of float) -0:229 'inF0' (temp 4-component vector of float) -0:230 isinf (global 4-component vector of bool) -0:230 'inF0' (temp 4-component vector of float) -0:231 isnan (global 4-component vector of bool) -0:231 'inF0' (temp 4-component vector of float) -0:232 ldexp (global 4-component vector of float) +0:227 'inF1' (temp 4-component vector of float) +0:228 Construct vec4 (temp float) +0:228 Constant: +0:228 1.000000 +0:228 component-wise multiply (temp float) +0:228 direct index (temp float) +0:228 'inF0' (temp 4-component vector of float) +0:228 Constant: +0:228 1 (const int) +0:228 direct index (temp float) +0:228 'inF1' (temp 4-component vector of float) +0:228 Constant: +0:228 1 (const int) +0:228 direct index (temp float) +0:228 'inF0' (temp 4-component vector of float) +0:228 Constant: +0:228 2 (const int) +0:228 direct index (temp float) +0:228 'inF1' (temp 4-component vector of float) +0:228 Constant: +0:228 3 (const int) +0:232 exp (global 4-component vector of float) 0:232 'inF0' (temp 4-component vector of float) -0:232 'inF1' (temp 4-component vector of float) -0:233 length (global float) +0:233 exp2 (global 4-component vector of float) 0:233 'inF0' (temp 4-component vector of float) -0:234 log (global 4-component vector of float) +0:234 face-forward (global 4-component vector of float) 0:234 'inF0' (temp 4-component vector of float) -0:235 vector-scale (temp 4-component vector of float) -0:235 log2 (temp 4-component vector of float) -0:235 'inF0' (temp 4-component vector of float) +0:234 'inF1' (temp 4-component vector of float) +0:234 'inF2' (temp 4-component vector of float) +0:235 findMSB (global int) 0:235 Constant: -0:235 0.301030 -0:236 log2 (global 4-component vector of float) -0:236 'inF0' (temp 4-component vector of float) -0:237 max (global 4-component vector of float) +0:235 7 (const int) +0:236 findLSB (global int) +0:236 Constant: +0:236 7 (const int) +0:237 Floor (global 4-component vector of float) 0:237 'inF0' (temp 4-component vector of float) -0:237 'inF1' (temp 4-component vector of float) -0:238 min (global 4-component vector of float) -0:238 'inF0' (temp 4-component vector of float) -0:238 'inF1' (temp 4-component vector of float) -0:240 normalize (global 4-component vector of float) +0:239 mod (global 4-component vector of float) +0:239 'inF0' (temp 4-component vector of float) +0:239 'inF1' (temp 4-component vector of float) +0:240 Fraction (global 4-component vector of float) 0:240 'inF0' (temp 4-component vector of float) -0:241 pow (global 4-component vector of float) +0:241 frexp (global 4-component vector of float) 0:241 'inF0' (temp 4-component vector of float) 0:241 'inF1' (temp 4-component vector of float) -0:242 radians (global 4-component vector of float) +0:242 isinf (global 4-component vector of bool) 0:242 'inF0' (temp 4-component vector of float) -0:243 reflect (global 4-component vector of float) +0:243 isnan (global 4-component vector of bool) 0:243 'inF0' (temp 4-component vector of float) -0:243 'inF1' (temp 4-component vector of float) -0:244 refract (global 4-component vector of float) +0:244 ldexp (global 4-component vector of float) 0:244 'inF0' (temp 4-component vector of float) 0:244 'inF1' (temp 4-component vector of float) -0:244 Constant: -0:244 2.000000 +0:245 length (global float) +0:245 'inF0' (temp 4-component vector of float) +0:246 log (global 4-component vector of float) +0:246 'inF0' (temp 4-component vector of float) +0:247 vector-scale (temp 4-component vector of float) +0:247 log2 (temp 4-component vector of float) +0:247 'inF0' (temp 4-component vector of float) +0:247 Constant: +0:247 0.301030 +0:248 log2 (global 4-component vector of float) +0:248 'inF0' (temp 4-component vector of float) +0:249 max (global 4-component vector of float) +0:249 'inF0' (temp 4-component vector of float) +0:249 'inF1' (temp 4-component vector of float) +0:250 min (global 4-component vector of float) +0:250 'inF0' (temp 4-component vector of float) +0:250 'inF1' (temp 4-component vector of float) +0:252 normalize (global 4-component vector of float) +0:252 'inF0' (temp 4-component vector of float) +0:253 pow (global 4-component vector of float) +0:253 'inF0' (temp 4-component vector of float) +0:253 'inF1' (temp 4-component vector of float) +0:254 radians (global 4-component vector of float) +0:254 'inF0' (temp 4-component vector of float) +0:255 reflect (global 4-component vector of float) +0:255 'inF0' (temp 4-component vector of float) +0:255 'inF1' (temp 4-component vector of float) +0:256 refract (global 4-component vector of float) +0:256 'inF0' (temp 4-component vector of float) +0:256 'inF1' (temp 4-component vector of float) +0:256 Constant: +0:256 2.000000 0:? bitFieldReverse (global 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:246 roundEven (global 4-component vector of float) -0:246 'inF0' (temp 4-component vector of float) -0:247 inverse sqrt (global 4-component vector of float) -0:247 'inF0' (temp 4-component vector of float) -0:248 clamp (global 4-component vector of float) -0:248 'inF0' (temp 4-component vector of float) -0:248 Constant: -0:248 0.000000 -0:248 Constant: -0:248 1.000000 -0:249 Sign (global 4-component vector of float) -0:249 'inF0' (temp 4-component vector of float) -0:250 sine (global 4-component vector of float) -0:250 'inF0' (temp 4-component vector of float) -0:251 Sequence -0:251 move second child to first child (temp 4-component vector of float) -0:251 'inF1' (temp 4-component vector of float) -0:251 sine (temp 4-component vector of float) -0:251 'inF0' (temp 4-component vector of float) -0:251 move second child to first child (temp 4-component vector of float) -0:251 'inF2' (temp 4-component vector of float) -0:251 cosine (temp 4-component vector of float) -0:251 'inF0' (temp 4-component vector of float) -0:252 hyp. sine (global 4-component vector of float) -0:252 'inF0' (temp 4-component vector of float) -0:253 smoothstep (global 4-component vector of float) -0:253 'inF0' (temp 4-component vector of float) -0:253 'inF1' (temp 4-component vector of float) -0:253 'inF2' (temp 4-component vector of float) -0:254 sqrt (global 4-component vector of float) -0:254 'inF0' (temp 4-component vector of float) -0:255 step (global 4-component vector of float) -0:255 'inF0' (temp 4-component vector of float) -0:255 'inF1' (temp 4-component vector of float) -0:256 tangent (global 4-component vector of float) -0:256 'inF0' (temp 4-component vector of float) -0:257 hyp. tangent (global 4-component vector of float) -0:257 'inF0' (temp 4-component vector of float) -0:259 trunc (global 4-component vector of float) +0:258 roundEven (global 4-component vector of float) +0:258 'inF0' (temp 4-component vector of float) +0:259 inverse sqrt (global 4-component vector of float) 0:259 'inF0' (temp 4-component vector of float) -0:262 Branch: Return with expression +0:260 clamp (temp 4-component vector of float) +0:260 'inF0' (temp 4-component vector of float) +0:260 Constant: +0:260 0.000000 +0:260 Constant: +0:260 1.000000 +0:261 Sign (global 4-component vector of float) +0:261 'inF0' (temp 4-component vector of float) +0:262 sine (global 4-component vector of float) +0:262 'inF0' (temp 4-component vector of float) +0:263 Sequence +0:263 move second child to first child (temp 4-component vector of float) +0:263 'inF1' (temp 4-component vector of float) +0:263 sine (temp 4-component vector of float) +0:263 'inF0' (temp 4-component vector of float) +0:263 move second child to first child (temp 4-component vector of float) +0:263 'inF2' (temp 4-component vector of float) +0:263 cosine (temp 4-component vector of float) +0:263 'inF0' (temp 4-component vector of float) +0:264 hyp. sine (global 4-component vector of float) +0:264 'inF0' (temp 4-component vector of float) +0:265 smoothstep (global 4-component vector of float) +0:265 'inF0' (temp 4-component vector of float) +0:265 'inF1' (temp 4-component vector of float) +0:265 'inF2' (temp 4-component vector of float) +0:266 sqrt (global 4-component vector of float) +0:266 'inF0' (temp 4-component vector of float) +0:267 step (global 4-component vector of float) +0:267 'inF0' (temp 4-component vector of float) +0:267 'inF1' (temp 4-component vector of float) +0:268 tangent (global 4-component vector of float) +0:268 'inF0' (temp 4-component vector of float) +0:269 hyp. tangent (global 4-component vector of float) +0:269 'inF0' (temp 4-component vector of float) +0:271 trunc (global 4-component vector of float) +0:271 'inF0' (temp 4-component vector of float) +0:274 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:323 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:315 Function Parameters: -0:315 'inF0' (temp 2X2 matrix of float) -0:315 'inF1' (temp 2X2 matrix of float) -0:315 'inF2' (temp 2X2 matrix of float) +0:339 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) +0:331 Function Parameters: +0:331 'inF0' (temp 2X2 matrix of float) +0:331 'inF1' (temp 2X2 matrix of float) +0:331 'inF2' (temp 2X2 matrix of float) 0:? Sequence -0:317 all (global bool) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 Absolute value (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 arc cosine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 any (global bool) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 arc sine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 arc tangent (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 arc tangent (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 Ceiling (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 clamp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 'inF2' (temp 2X2 matrix of float) -0:317 cosine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 hyp. cosine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 degrees (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 determinant (global float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 exp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 exp2 (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 findMSB (global int) -0:317 Constant: -0:317 7 (const int) -0:317 findLSB (global int) -0:317 Constant: -0:317 7 (const int) -0:317 Floor (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 mod (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 Fraction (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 frexp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 fwidth (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 ldexp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 log (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 matrix-scale (temp 2X2 matrix of float) -0:317 log2 (temp 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 Constant: -0:317 0.301030 -0:317 log2 (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 max (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 min (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 pow (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 radians (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 roundEven (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 inverse sqrt (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 clamp (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 Constant: -0:317 0.000000 -0:317 Constant: -0:317 1.000000 -0:317 Sign (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 sine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 Sequence -0:317 move second child to first child (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 sine (temp 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 move second child to first child (temp 2X2 matrix of float) -0:317 'inF2' (temp 2X2 matrix of float) -0:317 cosine (temp 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 hyp. sine (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 smoothstep (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 'inF2' (temp 2X2 matrix of float) -0:317 sqrt (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 step (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 'inF1' (temp 2X2 matrix of float) -0:317 tangent (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 hyp. tangent (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 transpose (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:317 trunc (global 2X2 matrix of float) -0:317 'inF0' (temp 2X2 matrix of float) -0:320 Branch: Return with expression +0:333 all (global bool) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 Absolute value (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 arc cosine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 any (global bool) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 arc sine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 arc tangent (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 arc tangent (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 Ceiling (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 clamp (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF2' (temp 2X2 matrix of float) +0:333 cosine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 hyp. cosine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 degrees (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 determinant (global float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 exp (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 exp2 (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 findMSB (global int) +0:333 Constant: +0:333 7 (const int) +0:333 findLSB (global int) +0:333 Constant: +0:333 7 (const int) +0:333 Floor (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 mod (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 Fraction (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 frexp (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 ldexp (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 log (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 matrix-scale (temp 2X2 matrix of float) +0:333 log2 (temp 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 Constant: +0:333 0.301030 +0:333 log2 (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 max (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 min (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 pow (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 radians (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 roundEven (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 inverse sqrt (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 clamp (temp 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 Constant: +0:333 0.000000 +0:333 Constant: +0:333 1.000000 +0:333 Sign (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 sine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 Sequence +0:333 move second child to first child (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 sine (temp 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 move second child to first child (temp 2X2 matrix of float) +0:333 'inF2' (temp 2X2 matrix of float) +0:333 cosine (temp 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 hyp. sine (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 smoothstep (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF2' (temp 2X2 matrix of float) +0:333 sqrt (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 step (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF1' (temp 2X2 matrix of float) +0:333 tangent (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 hyp. tangent (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 transpose (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:333 trunc (global 2X2 matrix of float) +0:333 'inF0' (temp 2X2 matrix of float) +0:336 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:332 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:324 Function Parameters: -0:324 'inF0' (temp 3X3 matrix of float) -0:324 'inF1' (temp 3X3 matrix of float) -0:324 'inF2' (temp 3X3 matrix of float) +0:348 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) +0:340 Function Parameters: +0:340 'inF0' (temp 3X3 matrix of float) +0:340 'inF1' (temp 3X3 matrix of float) +0:340 'inF2' (temp 3X3 matrix of float) 0:? Sequence -0:326 all (global bool) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 Absolute value (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 arc cosine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 any (global bool) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 arc sine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 arc tangent (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 arc tangent (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 Ceiling (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 clamp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 'inF2' (temp 3X3 matrix of float) -0:326 cosine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 hyp. cosine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 degrees (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 determinant (global float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 exp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 exp2 (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 findMSB (global int) -0:326 Constant: -0:326 7 (const int) -0:326 findLSB (global int) -0:326 Constant: -0:326 7 (const int) -0:326 Floor (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 mod (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 Fraction (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 frexp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 fwidth (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 ldexp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 log (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 matrix-scale (temp 3X3 matrix of float) -0:326 log2 (temp 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 Constant: -0:326 0.301030 -0:326 log2 (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 max (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 min (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 pow (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 radians (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 roundEven (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 inverse sqrt (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 clamp (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 Constant: -0:326 0.000000 -0:326 Constant: -0:326 1.000000 -0:326 Sign (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 sine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 Sequence -0:326 move second child to first child (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 sine (temp 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 move second child to first child (temp 3X3 matrix of float) -0:326 'inF2' (temp 3X3 matrix of float) -0:326 cosine (temp 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 hyp. sine (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 smoothstep (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 'inF2' (temp 3X3 matrix of float) -0:326 sqrt (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 step (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 'inF1' (temp 3X3 matrix of float) -0:326 tangent (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 hyp. tangent (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 transpose (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:326 trunc (global 3X3 matrix of float) -0:326 'inF0' (temp 3X3 matrix of float) -0:329 Branch: Return with expression +0:342 all (global bool) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 Absolute value (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 arc cosine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 any (global bool) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 arc sine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 arc tangent (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 arc tangent (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 Ceiling (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 clamp (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF2' (temp 3X3 matrix of float) +0:342 cosine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 hyp. cosine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 degrees (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 determinant (global float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 exp (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 exp2 (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 findMSB (global int) +0:342 Constant: +0:342 7 (const int) +0:342 findLSB (global int) +0:342 Constant: +0:342 7 (const int) +0:342 Floor (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 mod (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 Fraction (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 frexp (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 ldexp (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 log (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 matrix-scale (temp 3X3 matrix of float) +0:342 log2 (temp 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 Constant: +0:342 0.301030 +0:342 log2 (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 max (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 min (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 pow (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 radians (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 roundEven (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 inverse sqrt (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 clamp (temp 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 Constant: +0:342 0.000000 +0:342 Constant: +0:342 1.000000 +0:342 Sign (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 sine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 Sequence +0:342 move second child to first child (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 sine (temp 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 move second child to first child (temp 3X3 matrix of float) +0:342 'inF2' (temp 3X3 matrix of float) +0:342 cosine (temp 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 hyp. sine (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 smoothstep (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF2' (temp 3X3 matrix of float) +0:342 sqrt (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 step (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF1' (temp 3X3 matrix of float) +0:342 tangent (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 hyp. tangent (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 transpose (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:342 trunc (global 3X3 matrix of float) +0:342 'inF0' (temp 3X3 matrix of float) +0:345 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -2113,129 +2151,127 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:353 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:333 Function Parameters: -0:333 'inF0' (temp 4X4 matrix of float) -0:333 'inF1' (temp 4X4 matrix of float) -0:333 'inF2' (temp 4X4 matrix of float) +0:369 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) +0:349 Function Parameters: +0:349 'inF0' (temp 4X4 matrix of float) +0:349 'inF1' (temp 4X4 matrix of float) +0:349 'inF2' (temp 4X4 matrix of float) 0:? Sequence -0:335 all (global bool) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 Absolute value (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 arc cosine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 any (global bool) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 arc sine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 arc tangent (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 arc tangent (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 Ceiling (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 clamp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 'inF2' (temp 4X4 matrix of float) -0:335 cosine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 hyp. cosine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 degrees (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 determinant (global float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 exp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 exp2 (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 findMSB (global int) -0:335 Constant: -0:335 7 (const int) -0:335 findLSB (global int) -0:335 Constant: -0:335 7 (const int) -0:335 Floor (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 mod (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 Fraction (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 frexp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 fwidth (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 ldexp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 log (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 matrix-scale (temp 4X4 matrix of float) -0:335 log2 (temp 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 Constant: -0:335 0.301030 -0:335 log2 (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 max (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 min (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 pow (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 radians (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 roundEven (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 inverse sqrt (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 clamp (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 Constant: -0:335 0.000000 -0:335 Constant: -0:335 1.000000 -0:335 Sign (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 sine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 Sequence -0:335 move second child to first child (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 sine (temp 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 move second child to first child (temp 4X4 matrix of float) -0:335 'inF2' (temp 4X4 matrix of float) -0:335 cosine (temp 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 hyp. sine (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 smoothstep (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 'inF2' (temp 4X4 matrix of float) -0:335 sqrt (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 step (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 'inF1' (temp 4X4 matrix of float) -0:335 tangent (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 hyp. tangent (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 transpose (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:335 trunc (global 4X4 matrix of float) -0:335 'inF0' (temp 4X4 matrix of float) -0:338 Branch: Return with expression +0:351 all (global bool) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 Absolute value (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 arc cosine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 any (global bool) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 arc sine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 arc tangent (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 arc tangent (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 Ceiling (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 clamp (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF2' (temp 4X4 matrix of float) +0:351 cosine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 hyp. cosine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 degrees (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 determinant (global float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 exp (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 exp2 (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 findMSB (global int) +0:351 Constant: +0:351 7 (const int) +0:351 findLSB (global int) +0:351 Constant: +0:351 7 (const int) +0:351 Floor (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 mod (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 Fraction (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 frexp (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 ldexp (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 log (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 matrix-scale (temp 4X4 matrix of float) +0:351 log2 (temp 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 Constant: +0:351 0.301030 +0:351 log2 (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 max (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 min (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 pow (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 radians (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 roundEven (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 inverse sqrt (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 clamp (temp 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 Constant: +0:351 0.000000 +0:351 Constant: +0:351 1.000000 +0:351 Sign (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 sine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 Sequence +0:351 move second child to first child (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 sine (temp 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 move second child to first child (temp 4X4 matrix of float) +0:351 'inF2' (temp 4X4 matrix of float) +0:351 cosine (temp 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 hyp. sine (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 smoothstep (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF2' (temp 4X4 matrix of float) +0:351 sqrt (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 step (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF1' (temp 4X4 matrix of float) +0:351 tangent (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 hyp. tangent (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 transpose (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:351 trunc (global 4X4 matrix of float) +0:351 'inF0' (temp 4X4 matrix of float) +0:354 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -2253,173 +2289,173 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:360 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:356 Function Parameters: -0:356 'inF0' (temp float) -0:356 'inF1' (temp float) -0:356 'inFV0' (temp 2-component vector of float) -0:356 'inFV1' (temp 2-component vector of float) -0:356 'inFM0' (temp 2X2 matrix of float) -0:356 'inFM1' (temp 2X2 matrix of float) +0:376 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) +0:372 Function Parameters: +0:372 'inF0' (temp float) +0:372 'inF1' (temp float) +0:372 'inFV0' (temp 2-component vector of float) +0:372 'inFV1' (temp 2-component vector of float) +0:372 'inFM0' (temp 2X2 matrix of float) +0:372 'inFM1' (temp 2X2 matrix of float) 0:? Sequence -0:357 move second child to first child (temp float) -0:357 'r0' (temp float) -0:357 component-wise multiply (temp float) -0:357 'inF0' (temp float) -0:357 'inF1' (temp float) -0:357 move second child to first child (temp 2-component vector of float) -0:357 'r1' (temp 2-component vector of float) -0:357 vector-scale (temp 2-component vector of float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 'inF0' (temp float) -0:357 move second child to first child (temp 2-component vector of float) -0:357 'r2' (temp 2-component vector of float) -0:357 vector-scale (temp 2-component vector of float) -0:357 'inF0' (temp float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 move second child to first child (temp float) -0:357 'r3' (temp float) -0:357 dot-product (global float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 'inFV1' (temp 2-component vector of float) -0:357 move second child to first child (temp 2-component vector of float) -0:357 'r4' (temp 2-component vector of float) -0:357 matrix-times-vector (temp 2-component vector of float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 move second child to first child (temp 2-component vector of float) -0:357 'r5' (temp 2-component vector of float) -0:357 vector-times-matrix (temp 2-component vector of float) -0:357 'inFV0' (temp 2-component vector of float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 move second child to first child (temp 2X2 matrix of float) -0:357 'r6' (temp 2X2 matrix of float) -0:357 matrix-scale (temp 2X2 matrix of float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 'inF0' (temp float) -0:357 move second child to first child (temp 2X2 matrix of float) -0:357 'r7' (temp 2X2 matrix of float) -0:357 matrix-scale (temp 2X2 matrix of float) -0:357 'inF0' (temp float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 move second child to first child (temp 2X2 matrix of float) -0:357 'r8' (temp 2X2 matrix of float) -0:357 matrix-multiply (temp 2X2 matrix of float) -0:357 'inFM0' (temp 2X2 matrix of float) -0:357 'inFM1' (temp 2X2 matrix of float) -0:367 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:363 Function Parameters: -0:363 'inF0' (temp float) -0:363 'inF1' (temp float) -0:363 'inFV0' (temp 3-component vector of float) -0:363 'inFV1' (temp 3-component vector of float) -0:363 'inFM0' (temp 3X3 matrix of float) -0:363 'inFM1' (temp 3X3 matrix of float) +0:373 move second child to first child (temp float) +0:373 'r0' (temp float) +0:373 component-wise multiply (temp float) +0:373 'inF0' (temp float) +0:373 'inF1' (temp float) +0:373 move second child to first child (temp 2-component vector of float) +0:373 'r1' (temp 2-component vector of float) +0:373 vector-scale (temp 2-component vector of float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 'inF0' (temp float) +0:373 move second child to first child (temp 2-component vector of float) +0:373 'r2' (temp 2-component vector of float) +0:373 vector-scale (temp 2-component vector of float) +0:373 'inF0' (temp float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 move second child to first child (temp float) +0:373 'r3' (temp float) +0:373 dot-product (global float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 'inFV1' (temp 2-component vector of float) +0:373 move second child to first child (temp 2-component vector of float) +0:373 'r4' (temp 2-component vector of float) +0:373 matrix-times-vector (temp 2-component vector of float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 move second child to first child (temp 2-component vector of float) +0:373 'r5' (temp 2-component vector of float) +0:373 vector-times-matrix (temp 2-component vector of float) +0:373 'inFV0' (temp 2-component vector of float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 move second child to first child (temp 2X2 matrix of float) +0:373 'r6' (temp 2X2 matrix of float) +0:373 matrix-scale (temp 2X2 matrix of float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inF0' (temp float) +0:373 move second child to first child (temp 2X2 matrix of float) +0:373 'r7' (temp 2X2 matrix of float) +0:373 matrix-scale (temp 2X2 matrix of float) +0:373 'inF0' (temp float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 move second child to first child (temp 2X2 matrix of float) +0:373 'r8' (temp 2X2 matrix of float) +0:373 matrix-multiply (temp 2X2 matrix of float) +0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inFM1' (temp 2X2 matrix of float) +0:383 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) +0:379 Function Parameters: +0:379 'inF0' (temp float) +0:379 'inF1' (temp float) +0:379 'inFV0' (temp 3-component vector of float) +0:379 'inFV1' (temp 3-component vector of float) +0:379 'inFM0' (temp 3X3 matrix of float) +0:379 'inFM1' (temp 3X3 matrix of float) 0:? Sequence -0:364 move second child to first child (temp float) -0:364 'r0' (temp float) -0:364 component-wise multiply (temp float) -0:364 'inF0' (temp float) -0:364 'inF1' (temp float) -0:364 move second child to first child (temp 3-component vector of float) -0:364 'r1' (temp 3-component vector of float) -0:364 vector-scale (temp 3-component vector of float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 'inF0' (temp float) -0:364 move second child to first child (temp 3-component vector of float) -0:364 'r2' (temp 3-component vector of float) -0:364 vector-scale (temp 3-component vector of float) -0:364 'inF0' (temp float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 move second child to first child (temp float) -0:364 'r3' (temp float) -0:364 dot-product (global float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 'inFV1' (temp 3-component vector of float) -0:364 move second child to first child (temp 3-component vector of float) -0:364 'r4' (temp 3-component vector of float) -0:364 matrix-times-vector (temp 3-component vector of float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 move second child to first child (temp 3-component vector of float) -0:364 'r5' (temp 3-component vector of float) -0:364 vector-times-matrix (temp 3-component vector of float) -0:364 'inFV0' (temp 3-component vector of float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 move second child to first child (temp 3X3 matrix of float) -0:364 'r6' (temp 3X3 matrix of float) -0:364 matrix-scale (temp 3X3 matrix of float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 'inF0' (temp float) -0:364 move second child to first child (temp 3X3 matrix of float) -0:364 'r7' (temp 3X3 matrix of float) -0:364 matrix-scale (temp 3X3 matrix of float) -0:364 'inF0' (temp float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 move second child to first child (temp 3X3 matrix of float) -0:364 'r8' (temp 3X3 matrix of float) -0:364 matrix-multiply (temp 3X3 matrix of float) -0:364 'inFM0' (temp 3X3 matrix of float) -0:364 'inFM1' (temp 3X3 matrix of float) -0:373 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:370 Function Parameters: -0:370 'inF0' (temp float) -0:370 'inF1' (temp float) -0:370 'inFV0' (temp 4-component vector of float) -0:370 'inFV1' (temp 4-component vector of float) -0:370 'inFM0' (temp 4X4 matrix of float) -0:370 'inFM1' (temp 4X4 matrix of float) +0:380 move second child to first child (temp float) +0:380 'r0' (temp float) +0:380 component-wise multiply (temp float) +0:380 'inF0' (temp float) +0:380 'inF1' (temp float) +0:380 move second child to first child (temp 3-component vector of float) +0:380 'r1' (temp 3-component vector of float) +0:380 vector-scale (temp 3-component vector of float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 'inF0' (temp float) +0:380 move second child to first child (temp 3-component vector of float) +0:380 'r2' (temp 3-component vector of float) +0:380 vector-scale (temp 3-component vector of float) +0:380 'inF0' (temp float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 move second child to first child (temp float) +0:380 'r3' (temp float) +0:380 dot-product (global float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 'inFV1' (temp 3-component vector of float) +0:380 move second child to first child (temp 3-component vector of float) +0:380 'r4' (temp 3-component vector of float) +0:380 matrix-times-vector (temp 3-component vector of float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 move second child to first child (temp 3-component vector of float) +0:380 'r5' (temp 3-component vector of float) +0:380 vector-times-matrix (temp 3-component vector of float) +0:380 'inFV0' (temp 3-component vector of float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 move second child to first child (temp 3X3 matrix of float) +0:380 'r6' (temp 3X3 matrix of float) +0:380 matrix-scale (temp 3X3 matrix of float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inF0' (temp float) +0:380 move second child to first child (temp 3X3 matrix of float) +0:380 'r7' (temp 3X3 matrix of float) +0:380 matrix-scale (temp 3X3 matrix of float) +0:380 'inF0' (temp float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 move second child to first child (temp 3X3 matrix of float) +0:380 'r8' (temp 3X3 matrix of float) +0:380 matrix-multiply (temp 3X3 matrix of float) +0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inFM1' (temp 3X3 matrix of float) +0:389 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) +0:386 Function Parameters: +0:386 'inF0' (temp float) +0:386 'inF1' (temp float) +0:386 'inFV0' (temp 4-component vector of float) +0:386 'inFV1' (temp 4-component vector of float) +0:386 'inFM0' (temp 4X4 matrix of float) +0:386 'inFM1' (temp 4X4 matrix of float) 0:? Sequence -0:371 move second child to first child (temp float) -0:371 'r0' (temp float) -0:371 component-wise multiply (temp float) -0:371 'inF0' (temp float) -0:371 'inF1' (temp float) -0:371 move second child to first child (temp 4-component vector of float) -0:371 'r1' (temp 4-component vector of float) -0:371 vector-scale (temp 4-component vector of float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 'inF0' (temp float) -0:371 move second child to first child (temp 4-component vector of float) -0:371 'r2' (temp 4-component vector of float) -0:371 vector-scale (temp 4-component vector of float) -0:371 'inF0' (temp float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 move second child to first child (temp float) -0:371 'r3' (temp float) -0:371 dot-product (global float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 'inFV1' (temp 4-component vector of float) -0:371 move second child to first child (temp 4-component vector of float) -0:371 'r4' (temp 4-component vector of float) -0:371 matrix-times-vector (temp 4-component vector of float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 move second child to first child (temp 4-component vector of float) -0:371 'r5' (temp 4-component vector of float) -0:371 vector-times-matrix (temp 4-component vector of float) -0:371 'inFV0' (temp 4-component vector of float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 move second child to first child (temp 4X4 matrix of float) -0:371 'r6' (temp 4X4 matrix of float) -0:371 matrix-scale (temp 4X4 matrix of float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 'inF0' (temp float) -0:371 move second child to first child (temp 4X4 matrix of float) -0:371 'r7' (temp 4X4 matrix of float) -0:371 matrix-scale (temp 4X4 matrix of float) -0:371 'inF0' (temp float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 move second child to first child (temp 4X4 matrix of float) -0:371 'r8' (temp 4X4 matrix of float) -0:371 matrix-multiply (temp 4X4 matrix of float) -0:371 'inFM0' (temp 4X4 matrix of float) -0:371 'inFM1' (temp 4X4 matrix of float) +0:387 move second child to first child (temp float) +0:387 'r0' (temp float) +0:387 component-wise multiply (temp float) +0:387 'inF0' (temp float) +0:387 'inF1' (temp float) +0:387 move second child to first child (temp 4-component vector of float) +0:387 'r1' (temp 4-component vector of float) +0:387 vector-scale (temp 4-component vector of float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 'inF0' (temp float) +0:387 move second child to first child (temp 4-component vector of float) +0:387 'r2' (temp 4-component vector of float) +0:387 vector-scale (temp 4-component vector of float) +0:387 'inF0' (temp float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 move second child to first child (temp float) +0:387 'r3' (temp float) +0:387 dot-product (global float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 'inFV1' (temp 4-component vector of float) +0:387 move second child to first child (temp 4-component vector of float) +0:387 'r4' (temp 4-component vector of float) +0:387 matrix-times-vector (temp 4-component vector of float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 move second child to first child (temp 4-component vector of float) +0:387 'r5' (temp 4-component vector of float) +0:387 vector-times-matrix (temp 4-component vector of float) +0:387 'inFV0' (temp 4-component vector of float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 move second child to first child (temp 4X4 matrix of float) +0:387 'r6' (temp 4X4 matrix of float) +0:387 matrix-scale (temp 4X4 matrix of float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inF0' (temp float) +0:387 move second child to first child (temp 4X4 matrix of float) +0:387 'r7' (temp 4X4 matrix of float) +0:387 matrix-scale (temp 4X4 matrix of float) +0:387 'inF0' (temp float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 move second child to first child (temp 4X4 matrix of float) +0:387 'r8' (temp 4X4 matrix of float) +0:387 matrix-multiply (temp 4X4 matrix of float) +0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inFM1' (temp 4X4 matrix of float) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1064 +// Id's are bound by 1082 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -2449,60 +2485,64 @@ Shader version: 450 Name 43 "inFM0" Name 44 "inFM1" Name 47 "inF0" - Name 62 "inF1" - Name 69 "inF2" - Name 97 "ResType" - Name 166 "inF0" - Name 180 "inF1" - Name 187 "inF2" - Name 225 "ResType" - Name 306 "inF0" - Name 320 "inF1" - Name 327 "inF2" - Name 368 "ResType" - Name 448 "inF0" - Name 462 "inF1" - Name 469 "inF2" - Name 515 "ResType" - Name 596 "inF0" - Name 610 "inF1" - Name 617 "inF2" - Name 648 "ResType" - Name 713 "inF0" - Name 727 "inF1" - Name 734 "inF2" - Name 768 "ResType" - Name 833 "inF0" - Name 847 "inF1" - Name 854 "inF2" - Name 891 "ResType" - Name 956 "r0" - Name 960 "r1" - Name 964 "r2" - Name 968 "r3" - Name 972 "r4" - Name 976 "r5" - Name 980 "r6" - Name 984 "r7" - Name 988 "r8" - Name 992 "r0" - Name 996 "r1" - Name 1000 "r2" - Name 1004 "r3" - Name 1008 "r4" - Name 1012 "r5" - Name 1016 "r6" - Name 1020 "r7" - Name 1024 "r8" - Name 1028 "r0" - Name 1032 "r1" - Name 1036 "r2" - Name 1040 "r3" - Name 1044 "r4" - Name 1048 "r5" - Name 1052 "r6" - Name 1056 "r7" - Name 1060 "r8" + Name 66 "inU0" + Name 72 "inF1" + Name 79 "inF2" + Name 105 "ResType" + Name 172 "inF0" + Name 190 "inU0" + Name 196 "inF1" + Name 203 "inF2" + Name 239 "ResType" + Name 318 "inF0" + Name 336 "inU0" + Name 342 "inF1" + Name 349 "inF2" + Name 388 "ResType" + Name 466 "inF0" + Name 484 "inU0" + Name 490 "inF1" + Name 497 "inF2" + Name 541 "ResType" + Name 620 "inF0" + Name 634 "inF1" + Name 641 "inF2" + Name 672 "ResType" + Name 735 "inF0" + Name 749 "inF1" + Name 756 "inF2" + Name 790 "ResType" + Name 853 "inF0" + Name 867 "inF1" + Name 874 "inF2" + Name 911 "ResType" + Name 974 "r0" + Name 978 "r1" + Name 982 "r2" + Name 986 "r3" + Name 990 "r4" + Name 994 "r5" + Name 998 "r6" + Name 1002 "r7" + Name 1006 "r8" + Name 1010 "r0" + Name 1014 "r1" + Name 1018 "r2" + Name 1022 "r3" + Name 1026 "r4" + Name 1030 "r5" + Name 1034 "r6" + Name 1038 "r7" + Name 1042 "r8" + Name 1046 "r0" + Name 1050 "r1" + Name 1054 "r2" + Name 1058 "r3" + Name 1062 "r4" + Name 1066 "r5" + Name 1070 "r6" + Name 1074 "r7" + Name 1078 "r8" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -2523,75 +2563,83 @@ Shader version: 450 37: TypePointer Function 36 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr) 49: TypeBool - 76: TypeInt 32 0 - 77: 76(int) Constant 7 - 85: TypeInt 32 1 - 86: 85(int) Constant 7 - 97(ResType): TypeStruct 6(float) 85(int) - 114: 6(float) Constant 1050288283 - 129: 76(int) Constant 2 - 136: 6(float) Constant 0 - 137: 6(float) Constant 1065353216 - 194: TypeVector 76(int) 2 - 195: 76(int) Constant 3 - 196: 194(ivec2) ConstantComposite 77 195 - 224: TypeVector 85(int) 2 - 225(ResType): TypeStruct 8(fvec2) 224(ivec2) - 232: TypeVector 49(bool) 2 - 266: 6(float) Constant 1073741824 - 268: 76(int) Constant 1 - 269: 194(ivec2) ConstantComposite 268 129 - 304: 8(fvec2) ConstantComposite 137 266 - 334: TypeVector 76(int) 3 - 335: 76(int) Constant 5 - 336: 334(ivec3) ConstantComposite 77 195 335 - 367: TypeVector 85(int) 3 - 368(ResType): TypeStruct 21(fvec3) 367(ivec3) - 375: TypeVector 49(bool) 3 - 410: 334(ivec3) ConstantComposite 268 129 195 - 445: 6(float) Constant 1077936128 - 446: 21(fvec3) ConstantComposite 137 266 445 - 476: TypeVector 76(int) 4 - 477: 476(ivec4) ConstantComposite 77 195 335 129 - 514: TypeVector 85(int) 4 - 515(ResType): TypeStruct 34(fvec4) 514(ivec4) - 522: TypeVector 49(bool) 4 - 557: 76(int) Constant 4 - 558: 476(ivec4) ConstantComposite 268 129 195 557 - 593: 6(float) Constant 1082130432 - 594: 34(fvec4) ConstantComposite 137 266 445 593 - 648(ResType): TypeStruct 10 224(ivec2) - 710: 8(fvec2) ConstantComposite 266 266 - 711: 10 ConstantComposite 710 710 - 768(ResType): TypeStruct 23 367(ivec3) - 830: 21(fvec3) ConstantComposite 445 445 445 - 831: 23 ConstantComposite 830 830 830 - 891(ResType): TypeStruct 36 514(ivec4) - 953: 34(fvec4) ConstantComposite 593 593 593 593 - 954: 36 ConstantComposite 953 953 953 953 + 60: TypeInt 32 1 + 63: TypeInt 32 0 + 65: TypePointer Function 63(int) + 86: 63(int) Constant 7 + 94: 60(int) Constant 7 + 105(ResType): TypeStruct 6(float) 60(int) + 120: 6(float) Constant 1050288283 + 135: 63(int) Constant 2 + 142: 6(float) Constant 0 + 143: 6(float) Constant 1065353216 + 184: TypeVector 60(int) 2 + 187: TypeVector 63(int) 2 + 189: TypePointer Function 187(ivec2) + 210: 63(int) Constant 3 + 211: 187(ivec2) ConstantComposite 86 210 + 239(ResType): TypeStruct 8(fvec2) 184(ivec2) + 244: TypeVector 49(bool) 2 + 278: 6(float) Constant 1073741824 + 280: 63(int) Constant 1 + 281: 187(ivec2) ConstantComposite 280 135 + 316: 8(fvec2) ConstantComposite 143 278 + 330: TypeVector 60(int) 3 + 333: TypeVector 63(int) 3 + 335: TypePointer Function 333(ivec3) + 356: 63(int) Constant 5 + 357: 333(ivec3) ConstantComposite 86 210 356 + 388(ResType): TypeStruct 21(fvec3) 330(ivec3) + 393: TypeVector 49(bool) 3 + 428: 333(ivec3) ConstantComposite 280 135 210 + 463: 6(float) Constant 1077936128 + 464: 21(fvec3) ConstantComposite 143 278 463 + 478: TypeVector 60(int) 4 + 481: TypeVector 63(int) 4 + 483: TypePointer Function 481(ivec4) + 504: 481(ivec4) ConstantComposite 86 210 356 135 + 541(ResType): TypeStruct 34(fvec4) 478(ivec4) + 546: TypeVector 49(bool) 4 + 581: 63(int) Constant 4 + 582: 481(ivec4) ConstantComposite 280 135 210 581 + 617: 6(float) Constant 1082130432 + 618: 34(fvec4) ConstantComposite 143 278 463 617 + 672(ResType): TypeStruct 10 184(ivec2) + 732: 8(fvec2) ConstantComposite 278 278 + 733: 10 ConstantComposite 732 732 + 790(ResType): TypeStruct 23 330(ivec3) + 850: 21(fvec3) ConstantComposite 463 463 463 + 851: 23 ConstantComposite 850 850 850 + 911(ResType): TypeStruct 36 478(ivec4) + 971: 34(fvec4) ConstantComposite 617 617 617 617 + 972: 36 ConstantComposite 971 971 971 971 4(VertexShaderFunction): 2 Function None 3 5: Label 47(inF0): 7(ptr) Variable Function - 62(inF1): 7(ptr) Variable Function - 69(inF2): 7(ptr) Variable Function - 166(inF0): 9(ptr) Variable Function - 180(inF1): 9(ptr) Variable Function - 187(inF2): 9(ptr) Variable Function - 306(inF0): 22(ptr) Variable Function - 320(inF1): 22(ptr) Variable Function - 327(inF2): 22(ptr) Variable Function - 448(inF0): 35(ptr) Variable Function - 462(inF1): 35(ptr) Variable Function - 469(inF2): 35(ptr) Variable Function - 596(inF0): 11(ptr) Variable Function - 610(inF1): 11(ptr) Variable Function - 617(inF2): 11(ptr) Variable Function - 713(inF0): 24(ptr) Variable Function - 727(inF1): 24(ptr) Variable Function - 734(inF2): 24(ptr) Variable Function - 833(inF0): 37(ptr) Variable Function - 847(inF1): 37(ptr) Variable Function - 854(inF2): 37(ptr) Variable Function + 66(inU0): 65(ptr) Variable Function + 72(inF1): 7(ptr) Variable Function + 79(inF2): 7(ptr) Variable Function + 172(inF0): 9(ptr) Variable Function + 190(inU0): 189(ptr) Variable Function + 196(inF1): 9(ptr) Variable Function + 203(inF2): 9(ptr) Variable Function + 318(inF0): 22(ptr) Variable Function + 336(inU0): 335(ptr) Variable Function + 342(inF1): 22(ptr) Variable Function + 349(inF2): 22(ptr) Variable Function + 466(inF0): 35(ptr) Variable Function + 484(inU0): 483(ptr) Variable Function + 490(inF1): 35(ptr) Variable Function + 497(inF2): 35(ptr) Variable Function + 620(inF0): 11(ptr) Variable Function + 634(inF1): 11(ptr) Variable Function + 641(inF2): 11(ptr) Variable Function + 735(inF0): 24(ptr) Variable Function + 749(inF1): 24(ptr) Variable Function + 756(inF2): 24(ptr) Variable Function + 853(inF0): 37(ptr) Variable Function + 867(inF1): 37(ptr) Variable Function + 874(inF2): 37(ptr) Variable Function 48: 6(float) Load 47(inF0) 50: 49(bool) All 48 51: 6(float) Load 47(inF0) @@ -2603,103 +2651,107 @@ Shader version: 450 57: 6(float) Load 47(inF0) 58: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 57 59: 6(float) Load 47(inF0) - 60: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 59 - 61: 6(float) Load 47(inF0) - 63: 6(float) Load 62(inF1) - 64: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 61 63 - 65: 6(float) Load 47(inF0) - 66: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 65 - 67: 6(float) Load 47(inF0) - 68: 6(float) Load 62(inF1) - 70: 6(float) Load 69(inF2) - 71: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 67 68 70 - 72: 6(float) Load 47(inF0) - 73: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 72 - 74: 6(float) Load 47(inF0) - 75: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 74 - 78: 76(int) BitCount 77 - 79: 6(float) Load 47(inF0) - 80: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 79 - 81: 6(float) Load 47(inF0) - 82: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 81 - 83: 6(float) Load 47(inF0) - 84: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 83 - 87: 85(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 86 - 88: 85(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 86 - 89: 6(float) Load 47(inF0) - 90: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 89 - 91: 6(float) Load 47(inF0) - 92: 6(float) Load 62(inF1) - 93: 6(float) FMod 91 92 - 94: 6(float) Load 47(inF0) - 95: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 94 - 96: 6(float) Load 47(inF0) - 98: 97(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 96 - 99: 85(int) CompositeExtract 98 1 - Store 62(inF1) 99 - 100: 6(float) CompositeExtract 98 0 - 101: 6(float) Load 47(inF0) - 102: 6(float) Fwidth 101 - 103: 6(float) Load 47(inF0) - 104: 49(bool) IsInf 103 - 105: 6(float) Load 47(inF0) - 106: 49(bool) IsNan 105 - 107: 6(float) Load 47(inF0) - 108: 6(float) Load 62(inF1) - 109: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 107 108 - 110: 6(float) Load 47(inF0) - 111: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 110 - 112: 6(float) Load 47(inF0) - 113: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 112 - 115: 6(float) FMul 113 114 + 61: 60(int) Bitcast 59 + 62: 6(float) Load 47(inF0) + 64: 63(int) Bitcast 62 + 67: 63(int) Load 66(inU0) + 68: 6(float) Bitcast 67 + 69: 6(float) Load 47(inF0) + 70: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 69 + 71: 6(float) Load 47(inF0) + 73: 6(float) Load 72(inF1) + 74: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 71 73 + 75: 6(float) Load 47(inF0) + 76: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 75 + 77: 6(float) Load 47(inF0) + 78: 6(float) Load 72(inF1) + 80: 6(float) Load 79(inF2) + 81: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 77 78 80 + 82: 6(float) Load 47(inF0) + 83: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 82 + 84: 6(float) Load 47(inF0) + 85: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 84 + 87: 63(int) BitCount 86 + 88: 6(float) Load 47(inF0) + 89: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 88 + 90: 6(float) Load 47(inF0) + 91: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 90 + 92: 6(float) Load 47(inF0) + 93: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 92 + 95: 60(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 94 + 96: 60(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 94 + 97: 6(float) Load 47(inF0) + 98: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 97 + 99: 6(float) Load 47(inF0) + 100: 6(float) Load 72(inF1) + 101: 6(float) FMod 99 100 + 102: 6(float) Load 47(inF0) + 103: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 102 + 104: 6(float) Load 47(inF0) + 106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 104 + 107: 60(int) CompositeExtract 106 1 + Store 72(inF1) 107 + 108: 6(float) CompositeExtract 106 0 + 109: 6(float) Load 47(inF0) + 110: 49(bool) IsInf 109 + 111: 6(float) Load 47(inF0) + 112: 49(bool) IsNan 111 + 113: 6(float) Load 47(inF0) + 114: 6(float) Load 72(inF1) + 115: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 113 114 116: 6(float) Load 47(inF0) - 117: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 116 + 117: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 116 118: 6(float) Load 47(inF0) - 119: 6(float) Load 62(inF1) - 120: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 118 119 - 121: 6(float) Load 47(inF0) - 122: 6(float) Load 62(inF1) - 123: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 121 122 + 119: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 118 + 121: 6(float) FMul 119 120 + 122: 6(float) Load 47(inF0) + 123: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 122 124: 6(float) Load 47(inF0) - 125: 6(float) Load 62(inF1) - 126: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 124 125 + 125: 6(float) Load 72(inF1) + 126: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 124 125 127: 6(float) Load 47(inF0) - 128: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 127 - 130: 76(int) BitReverse 129 - 131: 6(float) Load 47(inF0) - 132: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 131 + 128: 6(float) Load 72(inF1) + 129: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 127 128 + 130: 6(float) Load 47(inF0) + 131: 6(float) Load 72(inF1) + 132: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 130 131 133: 6(float) Load 47(inF0) - 134: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 133 - 135: 6(float) Load 47(inF0) - 138: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 135 136 137 + 134: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 133 + 136: 63(int) BitReverse 135 + 137: 6(float) Load 47(inF0) + 138: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 137 139: 6(float) Load 47(inF0) - 140: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 139 + 140: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 139 141: 6(float) Load 47(inF0) - 142: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 141 - 143: 6(float) Load 47(inF0) - 144: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 143 - Store 62(inF1) 144 + 144: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 141 142 143 145: 6(float) Load 47(inF0) - 146: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 145 - Store 69(inF2) 146 + 146: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 145 147: 6(float) Load 47(inF0) - 148: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 147 + 148: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 147 149: 6(float) Load 47(inF0) - 150: 6(float) Load 62(inF1) - 151: 6(float) Load 69(inF2) - 152: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 149 150 151 + 150: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 149 + Store 72(inF1) 150 + 151: 6(float) Load 47(inF0) + 152: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 151 + Store 79(inF2) 152 153: 6(float) Load 47(inF0) - 154: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 153 + 154: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 153 155: 6(float) Load 47(inF0) - 156: 6(float) Load 62(inF1) - 157: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 155 156 - 158: 6(float) Load 47(inF0) - 159: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 158 - 160: 6(float) Load 47(inF0) - 161: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 160 - 162: 6(float) Load 47(inF0) - 163: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 162 - ReturnValue 136 + 156: 6(float) Load 72(inF1) + 157: 6(float) Load 79(inF2) + 158: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 155 156 157 + 159: 6(float) Load 47(inF0) + 160: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 159 + 161: 6(float) Load 47(inF0) + 162: 6(float) Load 72(inF1) + 163: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 161 162 + 164: 6(float) Load 47(inF0) + 165: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 164 + 166: 6(float) Load 47(inF0) + 167: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 166 + 168: 6(float) Load 47(inF0) + 169: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 168 + ReturnValue 142 FunctionEnd 19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12 13(inF0): 7(ptr) FunctionParameter @@ -2709,51 +2761,51 @@ Shader version: 450 17(inFM0): 11(ptr) FunctionParameter 18(inFM1): 11(ptr) FunctionParameter 20: Label - 956(r0): 7(ptr) Variable Function - 960(r1): 9(ptr) Variable Function - 964(r2): 9(ptr) Variable Function - 968(r3): 7(ptr) Variable Function - 972(r4): 9(ptr) Variable Function - 976(r5): 9(ptr) Variable Function - 980(r6): 11(ptr) Variable Function - 984(r7): 11(ptr) Variable Function - 988(r8): 11(ptr) Variable Function - 957: 6(float) Load 13(inF0) - 958: 6(float) Load 14(inF1) - 959: 6(float) FMul 957 958 - Store 956(r0) 959 - 961: 8(fvec2) Load 15(inFV0) - 962: 6(float) Load 13(inF0) - 963: 8(fvec2) VectorTimesScalar 961 962 - Store 960(r1) 963 - 965: 6(float) Load 13(inF0) - 966: 8(fvec2) Load 15(inFV0) - 967: 8(fvec2) VectorTimesScalar 966 965 - Store 964(r2) 967 - 969: 8(fvec2) Load 15(inFV0) - 970: 8(fvec2) Load 16(inFV1) - 971: 6(float) Dot 969 970 - Store 968(r3) 971 - 973: 10 Load 17(inFM0) - 974: 8(fvec2) Load 15(inFV0) - 975: 8(fvec2) MatrixTimesVector 973 974 - Store 972(r4) 975 - 977: 8(fvec2) Load 15(inFV0) - 978: 10 Load 17(inFM0) - 979: 8(fvec2) VectorTimesMatrix 977 978 - Store 976(r5) 979 - 981: 10 Load 17(inFM0) - 982: 6(float) Load 13(inF0) - 983: 10 MatrixTimesScalar 981 982 - Store 980(r6) 983 - 985: 6(float) Load 13(inF0) - 986: 10 Load 17(inFM0) - 987: 10 MatrixTimesScalar 986 985 - Store 984(r7) 987 - 989: 10 Load 17(inFM0) - 990: 10 Load 18(inFM1) - 991: 10 MatrixTimesMatrix 989 990 - Store 988(r8) 991 + 974(r0): 7(ptr) Variable Function + 978(r1): 9(ptr) Variable Function + 982(r2): 9(ptr) Variable Function + 986(r3): 7(ptr) Variable Function + 990(r4): 9(ptr) Variable Function + 994(r5): 9(ptr) Variable Function + 998(r6): 11(ptr) Variable Function + 1002(r7): 11(ptr) Variable Function + 1006(r8): 11(ptr) Variable Function + 975: 6(float) Load 13(inF0) + 976: 6(float) Load 14(inF1) + 977: 6(float) FMul 975 976 + Store 974(r0) 977 + 979: 8(fvec2) Load 15(inFV0) + 980: 6(float) Load 13(inF0) + 981: 8(fvec2) VectorTimesScalar 979 980 + Store 978(r1) 981 + 983: 6(float) Load 13(inF0) + 984: 8(fvec2) Load 15(inFV0) + 985: 8(fvec2) VectorTimesScalar 984 983 + Store 982(r2) 985 + 987: 8(fvec2) Load 15(inFV0) + 988: 8(fvec2) Load 16(inFV1) + 989: 6(float) Dot 987 988 + Store 986(r3) 989 + 991: 10 Load 17(inFM0) + 992: 8(fvec2) Load 15(inFV0) + 993: 8(fvec2) MatrixTimesVector 991 992 + Store 990(r4) 993 + 995: 8(fvec2) Load 15(inFV0) + 996: 10 Load 17(inFM0) + 997: 8(fvec2) VectorTimesMatrix 995 996 + Store 994(r5) 997 + 999: 10 Load 17(inFM0) + 1000: 6(float) Load 13(inF0) + 1001: 10 MatrixTimesScalar 999 1000 + Store 998(r6) 1001 + 1003: 6(float) Load 13(inF0) + 1004: 10 Load 17(inFM0) + 1005: 10 MatrixTimesScalar 1004 1003 + Store 1002(r7) 1005 + 1007: 10 Load 17(inFM0) + 1008: 10 Load 18(inFM1) + 1009: 10 MatrixTimesMatrix 1007 1008 + Store 1006(r8) 1009 Return FunctionEnd 32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 @@ -2764,51 +2816,51 @@ Shader version: 450 30(inFM0): 24(ptr) FunctionParameter 31(inFM1): 24(ptr) FunctionParameter 33: Label - 992(r0): 7(ptr) Variable Function - 996(r1): 22(ptr) Variable Function - 1000(r2): 22(ptr) Variable Function - 1004(r3): 7(ptr) Variable Function - 1008(r4): 22(ptr) Variable Function - 1012(r5): 22(ptr) Variable Function - 1016(r6): 24(ptr) Variable Function - 1020(r7): 24(ptr) Variable Function - 1024(r8): 24(ptr) Variable Function - 993: 6(float) Load 26(inF0) - 994: 6(float) Load 27(inF1) - 995: 6(float) FMul 993 994 - Store 992(r0) 995 - 997: 21(fvec3) Load 28(inFV0) - 998: 6(float) Load 26(inF0) - 999: 21(fvec3) VectorTimesScalar 997 998 - Store 996(r1) 999 - 1001: 6(float) Load 26(inF0) - 1002: 21(fvec3) Load 28(inFV0) - 1003: 21(fvec3) VectorTimesScalar 1002 1001 - Store 1000(r2) 1003 - 1005: 21(fvec3) Load 28(inFV0) - 1006: 21(fvec3) Load 29(inFV1) - 1007: 6(float) Dot 1005 1006 - Store 1004(r3) 1007 - 1009: 23 Load 30(inFM0) - 1010: 21(fvec3) Load 28(inFV0) - 1011: 21(fvec3) MatrixTimesVector 1009 1010 - Store 1008(r4) 1011 - 1013: 21(fvec3) Load 28(inFV0) - 1014: 23 Load 30(inFM0) - 1015: 21(fvec3) VectorTimesMatrix 1013 1014 - Store 1012(r5) 1015 - 1017: 23 Load 30(inFM0) - 1018: 6(float) Load 26(inF0) - 1019: 23 MatrixTimesScalar 1017 1018 - Store 1016(r6) 1019 - 1021: 6(float) Load 26(inF0) - 1022: 23 Load 30(inFM0) - 1023: 23 MatrixTimesScalar 1022 1021 - Store 1020(r7) 1023 - 1025: 23 Load 30(inFM0) - 1026: 23 Load 31(inFM1) - 1027: 23 MatrixTimesMatrix 1025 1026 - Store 1024(r8) 1027 + 1010(r0): 7(ptr) Variable Function + 1014(r1): 22(ptr) Variable Function + 1018(r2): 22(ptr) Variable Function + 1022(r3): 7(ptr) Variable Function + 1026(r4): 22(ptr) Variable Function + 1030(r5): 22(ptr) Variable Function + 1034(r6): 24(ptr) Variable Function + 1038(r7): 24(ptr) Variable Function + 1042(r8): 24(ptr) Variable Function + 1011: 6(float) Load 26(inF0) + 1012: 6(float) Load 27(inF1) + 1013: 6(float) FMul 1011 1012 + Store 1010(r0) 1013 + 1015: 21(fvec3) Load 28(inFV0) + 1016: 6(float) Load 26(inF0) + 1017: 21(fvec3) VectorTimesScalar 1015 1016 + Store 1014(r1) 1017 + 1019: 6(float) Load 26(inF0) + 1020: 21(fvec3) Load 28(inFV0) + 1021: 21(fvec3) VectorTimesScalar 1020 1019 + Store 1018(r2) 1021 + 1023: 21(fvec3) Load 28(inFV0) + 1024: 21(fvec3) Load 29(inFV1) + 1025: 6(float) Dot 1023 1024 + Store 1022(r3) 1025 + 1027: 23 Load 30(inFM0) + 1028: 21(fvec3) Load 28(inFV0) + 1029: 21(fvec3) MatrixTimesVector 1027 1028 + Store 1026(r4) 1029 + 1031: 21(fvec3) Load 28(inFV0) + 1032: 23 Load 30(inFM0) + 1033: 21(fvec3) VectorTimesMatrix 1031 1032 + Store 1030(r5) 1033 + 1035: 23 Load 30(inFM0) + 1036: 6(float) Load 26(inF0) + 1037: 23 MatrixTimesScalar 1035 1036 + Store 1034(r6) 1037 + 1039: 6(float) Load 26(inF0) + 1040: 23 Load 30(inFM0) + 1041: 23 MatrixTimesScalar 1040 1039 + Store 1038(r7) 1041 + 1043: 23 Load 30(inFM0) + 1044: 23 Load 31(inFM1) + 1045: 23 MatrixTimesMatrix 1043 1044 + Store 1042(r8) 1045 Return FunctionEnd 45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 @@ -2819,50 +2871,50 @@ Shader version: 450 43(inFM0): 37(ptr) FunctionParameter 44(inFM1): 37(ptr) FunctionParameter 46: Label - 1028(r0): 7(ptr) Variable Function - 1032(r1): 35(ptr) Variable Function - 1036(r2): 35(ptr) Variable Function - 1040(r3): 7(ptr) Variable Function - 1044(r4): 35(ptr) Variable Function - 1048(r5): 35(ptr) Variable Function - 1052(r6): 37(ptr) Variable Function - 1056(r7): 37(ptr) Variable Function - 1060(r8): 37(ptr) Variable Function - 1029: 6(float) Load 39(inF0) - 1030: 6(float) Load 40(inF1) - 1031: 6(float) FMul 1029 1030 - Store 1028(r0) 1031 - 1033: 34(fvec4) Load 41(inFV0) - 1034: 6(float) Load 39(inF0) - 1035: 34(fvec4) VectorTimesScalar 1033 1034 - Store 1032(r1) 1035 - 1037: 6(float) Load 39(inF0) - 1038: 34(fvec4) Load 41(inFV0) - 1039: 34(fvec4) VectorTimesScalar 1038 1037 - Store 1036(r2) 1039 - 1041: 34(fvec4) Load 41(inFV0) - 1042: 34(fvec4) Load 42(inFV1) - 1043: 6(float) Dot 1041 1042 - Store 1040(r3) 1043 - 1045: 36 Load 43(inFM0) - 1046: 34(fvec4) Load 41(inFV0) - 1047: 34(fvec4) MatrixTimesVector 1045 1046 - Store 1044(r4) 1047 - 1049: 34(fvec4) Load 41(inFV0) - 1050: 36 Load 43(inFM0) - 1051: 34(fvec4) VectorTimesMatrix 1049 1050 - Store 1048(r5) 1051 - 1053: 36 Load 43(inFM0) - 1054: 6(float) Load 39(inF0) - 1055: 36 MatrixTimesScalar 1053 1054 - Store 1052(r6) 1055 - 1057: 6(float) Load 39(inF0) - 1058: 36 Load 43(inFM0) - 1059: 36 MatrixTimesScalar 1058 1057 - Store 1056(r7) 1059 - 1061: 36 Load 43(inFM0) - 1062: 36 Load 44(inFM1) - 1063: 36 MatrixTimesMatrix 1061 1062 - Store 1060(r8) 1063 + 1046(r0): 7(ptr) Variable Function + 1050(r1): 35(ptr) Variable Function + 1054(r2): 35(ptr) Variable Function + 1058(r3): 7(ptr) Variable Function + 1062(r4): 35(ptr) Variable Function + 1066(r5): 35(ptr) Variable Function + 1070(r6): 37(ptr) Variable Function + 1074(r7): 37(ptr) Variable Function + 1078(r8): 37(ptr) Variable Function + 1047: 6(float) Load 39(inF0) + 1048: 6(float) Load 40(inF1) + 1049: 6(float) FMul 1047 1048 + Store 1046(r0) 1049 + 1051: 34(fvec4) Load 41(inFV0) + 1052: 6(float) Load 39(inF0) + 1053: 34(fvec4) VectorTimesScalar 1051 1052 + Store 1050(r1) 1053 + 1055: 6(float) Load 39(inF0) + 1056: 34(fvec4) Load 41(inFV0) + 1057: 34(fvec4) VectorTimesScalar 1056 1055 + Store 1054(r2) 1057 + 1059: 34(fvec4) Load 41(inFV0) + 1060: 34(fvec4) Load 42(inFV1) + 1061: 6(float) Dot 1059 1060 + Store 1058(r3) 1061 + 1063: 36 Load 43(inFM0) + 1064: 34(fvec4) Load 41(inFV0) + 1065: 34(fvec4) MatrixTimesVector 1063 1064 + Store 1062(r4) 1065 + 1067: 34(fvec4) Load 41(inFV0) + 1068: 36 Load 43(inFM0) + 1069: 34(fvec4) VectorTimesMatrix 1067 1068 + Store 1066(r5) 1069 + 1071: 36 Load 43(inFM0) + 1072: 6(float) Load 39(inF0) + 1073: 36 MatrixTimesScalar 1071 1072 + Store 1070(r6) 1073 + 1075: 6(float) Load 39(inF0) + 1076: 36 Load 43(inFM0) + 1077: 36 MatrixTimesScalar 1076 1075 + Store 1074(r7) 1077 + 1079: 36 Load 43(inFM0) + 1080: 36 Load 44(inFM1) + 1081: 36 MatrixTimesMatrix 1079 1080 + Store 1078(r8) 1081 Return FunctionEnd diff --git a/Test/hlsl.intrinsics.comp b/Test/hlsl.intrinsics.comp new file mode 100644 index 00000000..79f3d7d1 --- /dev/null +++ b/Test/hlsl.intrinsics.comp @@ -0,0 +1,129 @@ + +#define gs // TODO: define as groupshared when available in the grammar +gs uint gs_ua; +gs uint gs_ub; +gs uint gs_uc; +gs uint2 gs_ua2; +gs uint2 gs_ub2; +gs uint2 gs_uc2; +gs uint3 gs_ua3; +gs uint3 gs_ub3; +gs uint3 gs_uc3; +gs uint4 gs_ua4; +gs uint4 gs_ub4; +gs uint4 gs_uc4; + +float ComputeShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1) +{ + uint out_u1; + + // Don't repeat all the pixel/vertex fns - just one for sanity. + all(inF0); + + // Test atomics + InterlockedAdd(gs_ua, gs_ub); + InterlockedAdd(gs_ua, gs_ub, out_u1); + InterlockedAnd(gs_ua, gs_ub); + InterlockedAnd(gs_ua, gs_ub, out_u1); + InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); + InterlockedExchange(gs_ua, gs_ub, out_u1); + InterlockedMax(gs_ua, gs_ub); + InterlockedMax(gs_ua, gs_ub, out_u1); + InterlockedMin(gs_ua, gs_ub); + InterlockedMin(gs_ua, gs_ub, out_u1); + InterlockedOr(gs_ua, gs_ub); + InterlockedOr(gs_ua, gs_ub, out_u1); + InterlockedXor(gs_ua, gs_ub); + InterlockedXor(gs_ua, gs_ub, out_u1); + + // CheckAccessFullyMapped(3); // TODO: ... + + return 0.0; +} + +float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2) +{ + // TODO: ... add when float1 prototypes are generated + return 0.0; +} + +float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) +{ + uint2 out_u2; + + // Don't repeat all the pixel/vertex fns - just one for sanity. + all(inF0); + + // Test atomics + InterlockedAdd(gs_ua2, gs_ub2); + InterlockedAdd(gs_ua2, gs_ub2, out_u2); + InterlockedAnd(gs_ua2, gs_ub2); + InterlockedAnd(gs_ua2, gs_ub2, out_u2); + InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); + InterlockedExchange(gs_ua2, gs_ub2, out_u2); + InterlockedMax(gs_ua2, gs_ub2); + InterlockedMax(gs_ua2, gs_ub2, out_u2); + InterlockedMin(gs_ua2, gs_ub2); + InterlockedMin(gs_ua2, gs_ub2, out_u2); + InterlockedOr(gs_ua2, gs_ub2); + InterlockedOr(gs_ua2, gs_ub2, out_u2); + InterlockedXor(gs_ua2, gs_ub2); + InterlockedXor(gs_ua2, gs_ub2, out_u2); + + // TODO: ... add when float1 prototypes are generated + return float2(1,2); +} + +float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) +{ + uint3 out_u3; + + // Don't repeat all the pixel/vertex fns - just one for sanity. + all(inF0); + + // Test atomics + InterlockedAdd(gs_ua3, gs_ub3); + InterlockedAdd(gs_ua3, gs_ub3, out_u3); + InterlockedAnd(gs_ua3, gs_ub3); + InterlockedAnd(gs_ua3, gs_ub3, out_u3); + InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); + InterlockedExchange(gs_ua3, gs_ub3, out_u3); + InterlockedMax(gs_ua3, gs_ub3); + InterlockedMax(gs_ua3, gs_ub3, out_u3); + InterlockedMin(gs_ua3, gs_ub3); + InterlockedMin(gs_ua3, gs_ub3, out_u3); + InterlockedOr(gs_ua3, gs_ub3); + InterlockedOr(gs_ua3, gs_ub3, out_u3); + InterlockedXor(gs_ua3, gs_ub3); + InterlockedXor(gs_ua3, gs_ub3, out_u3); + + // TODO: ... add when float1 prototypes are generated + return float3(1,2,3); +} + +float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) +{ + uint4 out_u4; + + // Don't repeat all the pixel/vertex fns - just one for sanity. + all(inF0); + + // Test atomics + InterlockedAdd(gs_ua4, gs_ub4); + InterlockedAdd(gs_ua4, gs_ub4, out_u4); + InterlockedAnd(gs_ua4, gs_ub4); + InterlockedAnd(gs_ua4, gs_ub4, out_u4); + InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); + InterlockedExchange(gs_ua4, gs_ub4, out_u4); + InterlockedMax(gs_ua4, gs_ub4); + InterlockedMax(gs_ua4, gs_ub4, out_u4); + InterlockedMin(gs_ua4, gs_ub4); + InterlockedMin(gs_ua4, gs_ub4, out_u4); + InterlockedOr(gs_ua4, gs_ub4); + InterlockedOr(gs_ua4, gs_ub4, out_u4); + InterlockedXor(gs_ua4, gs_ub4); + InterlockedXor(gs_ua4, gs_ub4, out_u4); + + // TODO: ... add when float1 prototypes are generated + return float4(1,2,3,4); +} diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index a8a49a0f..a0915c29 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -1,10 +1,31 @@ -float PixelShaderFunction(float inF0, float inF1, float inF2) + +#define gs // TODO: define as groupshared when available in the grammar +gs uint gs_ua; +gs uint gs_ub; +gs uint gs_uc; +gs uint2 gs_ua2; +gs uint2 gs_ub2; +gs uint2 gs_uc2; +gs uint3 gs_ua3; +gs uint3 gs_ub3; +gs uint3 gs_uc3; +gs uint4 gs_ua4; +gs uint4 gs_ub4; +gs uint4 gs_uc4; + +float PixelShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1) { + uint out_u1; + all(inF0); abs(inF0); acos(inF0); any(inF0); asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics atan(inF0); atan2(inF0, inF1); ceil(inF0); @@ -69,13 +90,19 @@ float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2) return 0.0; } -float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2) +float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) { + uint2 out_u2; + all(inF0); abs(inF0); acos(inF0); any(inF0); asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics atan(inF0); atan2(inF0, inF1); ceil(inF0); @@ -142,13 +169,19 @@ float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2) return float2(1,2); } -float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2) +float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) { + uint3 out_u3; + all(inF0); abs(inF0); acos(inF0); any(inF0); asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics atan(inF0); atan2(inF0, inF1); ceil(inF0); @@ -216,13 +249,19 @@ float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2) return float3(1,2,3); } -float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2) +float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) { + uint4 out_u4; + all(inF0); abs(inF0); acos(inF0); any(inF0); asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics atan(inF0); atan2(inF0, inF1); ceil(inF0); @@ -290,6 +329,11 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2) return float4(1,2,3,4); } +// TODO: for mats: +// asfloat(inU0); \ +// asint(inF0); \ +// asuint(inF0); \ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. #define MATFNS() \ all(inF0); \ diff --git a/Test/hlsl.intrinsics.negative.comp b/Test/hlsl.intrinsics.negative.comp new file mode 100644 index 00000000..1b2ecd95 --- /dev/null +++ b/Test/hlsl.intrinsics.negative.comp @@ -0,0 +1,201 @@ +float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0) +{ + uint out_u1; + + // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list + // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list + asdouble(inF0, inF1); // expected error: only integer inputs + CheckAccessFullyMapped(3.0); // expected error: only valid on integers + clip(inF0); // expected error: only valid in pixel stage + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + ddx(inF0); // expected error: only valid in pixel stage + ddx_coarse(inF0); // expected error: only valid in pixel stage + ddx_fine(inF0); // expected error: only valid in pixel stage + ddy(inF0); // expected error: only valid in pixel stage + ddy_coarse(inF0); // expected error: only valid in pixel stage + ddy_fine(inF0); // expected error: only valid in pixel stage + determinant(inF0); // expected error: only valid on mats + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + fwidth(inF0); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage + InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage + InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + length(inF0); // expect error: invalid on scalars + msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs + normalize(inF0); // expect error: invalid on scalars + reflect(inF0, inF1); // expect error: invalid on scalars + refract(inF0, inF1, inF2); // expect error: invalid on scalars + refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return 0.0; +} + +float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +{ + // TODO: ... add when float1 prototypes are generated + + GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs + + return 0.0; +} + +float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) +{ + uint2 out_u2; + + asdouble(inF0, inF1); // expected error: only integer inputs + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + ddx(inF0); // only valid in pixel stage + ddx_coarse(inF0); // only valid in pixel stage + ddx_fine(inF0); // only valid in pixel stage + ddy(inF0); // only valid in pixel stage + ddy_coarse(inF0); // only valid in pixel stage + ddy_fine(inF0); // only valid in pixel stage + determinant(inF0); // expect error: only valid on mats + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + fwidth(inF0); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage + InterlockedExchange(gs_ua2, gs_ub2, out_u2);// expected error: only valid in pixel stage + InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float2(1,2); +} + +float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +{ + uint3 out_u3; + + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + ddx(inF0); // only valid in pixel stage + ddx_coarse(inF0); // only valid in pixel stage + ddx_fine(inF0); // only valid in pixel stage + ddy(inF0); // only valid in pixel stage + ddy_coarse(inF0); // only valid in pixel stage + ddy_fine(inF0); // only valid in pixel stage + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expect error: only valid on mats + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + fwidth(inF0); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage + InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float3(1,2,3); +} + +float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) +{ + uint4 out_u4; + + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + determinant(inF0); // expect error: only valid on mats + ddx(inF0); // only valid in pixel stage + ddx_coarse(inF0); // only valid in pixel stage + ddx_fine(inF0); // only valid in pixel stage + ddy(inF0); // only valid in pixel stage + ddy_coarse(inF0); // only valid in pixel stage + ddy_fine(inF0); // only valid in pixel stage + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + fwidth(inF0); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage + InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats + + // TODO: texture intrinsics, when we can declare samplers. + + return float4(1,2,3,4); +} + diff --git a/Test/hlsl.intrinsics.negative.frag b/Test/hlsl.intrinsics.negative.frag index b93f104d..ddbac06a 100644 --- a/Test/hlsl.intrinsics.negative.frag +++ b/Test/hlsl.intrinsics.negative.frag @@ -78,16 +78,16 @@ float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) { - CheckAccessFullyMapped(inF0); // expected error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - determinant(inF0); // expected error: only valid on mats - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expected error: only valid on mats + CheckAccessFullyMapped(inF0); // expected error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + determinant(inF0); // expected error: only valid on mats + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expected error: only valid on mats return float4(1,2,3,4); } diff --git a/Test/hlsl.intrinsics.negative.vert b/Test/hlsl.intrinsics.negative.vert index ee2a29d5..c37d8bc6 100644 --- a/Test/hlsl.intrinsics.negative.vert +++ b/Test/hlsl.intrinsics.negative.vert @@ -1,22 +1,37 @@ +uint gs_ua; +uint gs_ub; +uint gs_uc; +uint2 gs_ua2; +uint2 gs_ub2; +uint2 gs_uc2; +uint3 gs_ua3; +uint3 gs_ub3; +uint3 gs_uc3; +uint4 gs_ua4; +uint4 gs_ub4; +uint4 gs_uc4; + float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) { + uint out_u1; + // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list asdouble(inF0, inF1); // expected error: only integer inputs CheckAccessFullyMapped(3.0); // expected error: only valid on integers CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages - clip(inF0); // expected error: only valid in pixel & compute stages + clip(inF0); // expected error: only valid in pixel stage countbits(inF0); // expected error: only integer inputs cross(inF0, inF1); // expected error: only on float3 inputs D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs // DeviceMemoryBarrier(); // TODO: expected error: only valid in pixel & compute stages // DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage - ddx(inF0); // expected error: only valid in pixel & compute stages - ddx_coarse(inF0); // expected error: only valid in pixel & compute stages - ddx_fine(inF0); // expected error: only valid in pixel & compute stages - ddy(inF0); // expected error: only valid in pixel & compute stages - ddy_coarse(inF0); // expected error: only valid in pixel & compute stages - ddy_fine(inF0); // expected error: only valid in pixel & compute stages + ddx(inF0); // expected error: only valid in pixel stage + ddx_coarse(inF0); // expected error: only valid in pixel stage + ddx_fine(inF0); // expected error: only valid in pixel stage + ddy(inF0); // expected error: only valid in pixel stage + ddy_coarse(inF0); // expected error: only valid in pixel stage + ddy_fine(inF0); // expected error: only valid in pixel stage determinant(inF0); // expected error: only valid on mats EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage @@ -25,11 +40,21 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs fma(inF0, inF1, inF2); // expected error: only double inputs - // InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // InterlockedAnd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out i // InterlockedMax(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // InterlockedOor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator - // InterlockedXor(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator + fwidth(inF0); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage + InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage + InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage + InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage + InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage // GroupMemoryBarrier(); // TODO: expected error: only valid in compute stage // GroupMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage length(inF0); // expect error: invalid on scalars @@ -57,28 +82,45 @@ float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) { - asdouble(inF0, inF1); // expected error: only integer inputs - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - ddx(inF0); // only valid in pixel & compute stages - ddx_coarse(inF0); // only valid in pixel & compute stages - ddx_fine(inF0); // only valid in pixel & compute stages - ddy(inF0); // only valid in pixel & compute stages - ddy_coarse(inF0); // only valid in pixel & compute stages - ddy_fine(inF0); // only valid in pixel & compute stages - determinant(inF0); // expect error: only valid on mats - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + uint2 out_u2; + + asdouble(inF0, inF1); // expected error: only integer inputs + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + ddx(inF0); // only valid in pixel stage + ddx_coarse(inF0); // only valid in pixel stage + ddx_fine(inF0); // only valid in pixel stage + ddy(inF0); // only valid in pixel stage + ddy_coarse(inF0); // only valid in pixel stage + ddy_fine(inF0); // only valid in pixel stage + determinant(inF0); // expect error: only valid on mats + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + fwidth(inF0); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage + InterlockedExchange(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage + InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -87,26 +129,43 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) { - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - ddx(inF0); // only valid in pixel & compute stages - ddx_coarse(inF0); // only valid in pixel & compute stages - ddx_fine(inF0); // only valid in pixel & compute stages - ddy(inF0); // only valid in pixel & compute stages - ddy_coarse(inF0); // only valid in pixel & compute stages - ddy_fine(inF0); // only valid in pixel & compute stages - D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - determinant(inF0); // expect error: only valid on mats - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + uint3 out_u3; + + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + ddx(inF0); // only valid in pixel stage + ddx_coarse(inF0); // only valid in pixel stage + ddx_fine(inF0); // only valid in pixel stage + ddy(inF0); // only valid in pixel stage + ddy_coarse(inF0); // only valid in pixel stage + ddy_fine(inF0); // only valid in pixel stage + D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs + determinant(inF0); // expect error: only valid on mats + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + fwidth(inF0); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage + InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage + InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -115,26 +174,43 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) { - CheckAccessFullyMapped(inF0); // expect error: only valid on scalars - countbits(inF0); // expected error: only integer inputs - cross(inF0, inF1); // expected error: only on float3 inputs - determinant(inF0); // expect error: only valid on mats - ddx(inF0); // only valid in pixel & compute stages - ddx_coarse(inF0); // only valid in pixel & compute stages - ddx_fine(inF0); // only valid in pixel & compute stages - ddy(inF0); // only valid in pixel & compute stages - ddy_coarse(inF0); // only valid in pixel & compute stages - ddy_fine(inF0); // only valid in pixel & compute stages - EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage - EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage - EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage - f16tof32(inF0); // expected error: only integer inputs - firstbithigh(inF0); // expected error: only integer inputs - firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs - noise(inF0); // expected error: only valid in pixel stage - reversebits(inF0); // expected error: only integer inputs - transpose(inF0); // expect error: only valid on mats + uint4 out_u4; + + CheckAccessFullyMapped(inF0); // expect error: only valid on scalars + countbits(inF0); // expected error: only integer inputs + cross(inF0, inF1); // expected error: only on float3 inputs + determinant(inF0); // expect error: only valid on mats + ddx(inF0); // only valid in pixel stage + ddx_coarse(inF0); // only valid in pixel stage + ddx_fine(inF0); // only valid in pixel stage + ddy(inF0); // only valid in pixel stage + ddy_coarse(inF0); // only valid in pixel stage + ddy_fine(inF0); // only valid in pixel stage + EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage + EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage + EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage + f16tof32(inF0); // expected error: only integer inputs + firstbithigh(inF0); // expected error: only integer inputs + firstbitlow(inF0); // expected error: only integer inputs + fma(inF0, inF1, inF2); // expected error: only double inputs + fwidth(inF0); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage + InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage + InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage + noise(inF0); // expected error: only valid in pixel stage + reversebits(inF0); // expected error: only integer inputs + transpose(inF0); // expect error: only valid on mats // TODO: texture intrinsics, when we can declare samplers. @@ -159,6 +235,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) firstbithigh(inF0); \ firstbitlow(inF0); \ fma(inF0, inF1, inF2); \ + fwidth(inF0); \ noise(inF0); \ reversebits(inF0); \ length(inF0); \ diff --git a/Test/hlsl.intrinsics.vert b/Test/hlsl.intrinsics.vert index cab79a83..c77404ed 100644 --- a/Test/hlsl.intrinsics.vert +++ b/Test/hlsl.intrinsics.vert @@ -1,10 +1,14 @@ -float VertexShaderFunction(float inF0, float inF1, float inF2) +float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1) { all(inF0); abs(inF0); acos(inF0); any(inF0); asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics atan(inF0); atan2(inF0, inF1); ceil(inF0); @@ -25,7 +29,6 @@ float VertexShaderFunction(float inF0, float inF1, float inF2) fmod(inF0, inF1); frac(inF0); frexp(inF0, inF1); - fwidth(inF0); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -62,13 +65,17 @@ float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2) return 0.0; } -float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2) +float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) { all(inF0); abs(inF0); acos(inF0); any(inF0); asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics atan(inF0); atan2(inF0, inF1); ceil(inF0); @@ -92,7 +99,6 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2) fmod(inF0, inF1); frac(inF0); frexp(inF0, inF1); - fwidth(inF0); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -128,13 +134,17 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2) return float2(1,2); } -float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2) +float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) { all(inF0); abs(inF0); acos(inF0); any(inF0); asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics atan(inF0); atan2(inF0, inF1); ceil(inF0); @@ -159,7 +169,6 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2) fmod(inF0, inF1); frac(inF0); frexp(inF0, inF1); - fwidth(inF0); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -195,13 +204,17 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2) return float3(1,2,3); } -float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) +float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) { all(inF0); abs(inF0); acos(inF0); any(inF0); asin(inF0); + asint(inF0); + asuint(inF0); + asfloat(inU0); + // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics atan(inF0); atan2(inF0, inF1); ceil(inF0); @@ -226,7 +239,6 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) fmod(inF0, inF1); frac(inF0); frexp(inF0, inF1); - fwidth(inF0); isinf(inF0); isnan(inF0); ldexp(inF0, inF1); @@ -262,6 +274,11 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) return float4(1,2,3,4); } +// TODO: for mats: +// asfloat(inU0); \ +// asint(inF0); \ +// asuint(inF0); \ + // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. #define MATFNS() \ all(inF0); \ @@ -285,7 +302,6 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2) fmod(inF0, inF1); \ frac(inF0); \ frexp(inF0, inF1); \ - fwidth(inF0); \ ldexp(inF0, inF1); \ log(inF0); \ log10(inF0); \ diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 1759c867..95363d55 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -498,14 +498,24 @@ enum TOperator { // HLSL operations // - EOpClip, + EOpClip, // discard if input value < 0 EOpIsFinite, - EOpLog10, - EOpRcp, - EOpSaturate, - EOpSinCos, - EOpGenMul, // mul(x,y) on any of mat/vec/scalars - EOpDst, + EOpLog10, // base 10 log + EOpRcp, // 1/x + EOpSaturate, // clamp from 0 to 1 + EOpSinCos, // sin and cos in out parameters + EOpGenMul, // mul(x,y) on any of mat/vec/scalars + EOpDst, // x = 1, y=src0.y * src1.y, z=src0.z, w=src1.w + EOpInterlockedAdd, // atomic ops, but uses [optional] out arg instead of return + EOpInterlockedAnd, // ... + EOpInterlockedCompareExchange, // ... + EOpInterlockedCompareStore, // ... + EOpInterlockedExchange, // ... + EOpInterlockedMax, // ... + EOpInterlockedMin, // ... + EOpInterlockedOr, // ... + EOpInterlockedXor, // ... + }; class TIntermTraverser; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 22425014..2aa6b923 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -80,7 +80,9 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, {"hlsl.if.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 2a2fe1a1..cb80f294 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -771,6 +771,29 @@ void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped* arguments = newArg; } +// +// HLSL atomic operations have slightly different arguments than +// GLSL/AST/SPIRV. The semantics are converted below in decomposeIntrinsic. +// This provides the post-decomposition equivalent opcode. +// +TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage) +{ + switch (op) { + case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd; + case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd; + case EOpInterlockedCompareExchange: return isImage ? EOpImageAtomicCompSwap : EOpAtomicCompSwap; + case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax; + case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin; + case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr; + case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor; + case EOpInterlockedExchange: return isImage ? EOpImageAtomicExchange : EOpAtomicExchange; + case EOpInterlockedCompareStore: // TODO: ... + default: + error(loc, "unknown atomic operation", "unknown op", ""); + return EOpNull; + } +} + // Optionally decompose intrinsics to AST opcodes. // void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) @@ -825,6 +848,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& clamp->getSequence().push_back(intermediate.addConstantUnion(1, type0, loc, true)); clamp->setLoc(loc); clamp->setType(node->getType()); + clamp->getWritableType().getQualifier().makeTemporary(); node = clamp; break; @@ -944,6 +968,61 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& break; } + case EOpInterlockedAdd: // optional last argument (if present) is assigned from return value + case EOpInterlockedMin: // ... + case EOpInterlockedMax: // ... + case EOpInterlockedAnd: // ... + case EOpInterlockedOr: // ... + case EOpInterlockedXor: // ... + case EOpInterlockedExchange: // always has output arg + { + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + + const bool isImage = arg0->getType().isImage(); + const TOperator atomicOp = mapAtomicOp(loc, op, isImage); + + if (argAggregate->getSequence().size() > 2) { + // optional output param is present. return value goes to arg2. + TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); + + TIntermAggregate* atomic = new TIntermAggregate(atomicOp); + atomic->getSequence().push_back(arg0); + atomic->getSequence().push_back(arg1); + atomic->setLoc(loc); + atomic->setType(arg0->getType()); + atomic->getWritableType().getQualifier().makeTemporary(); + + node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + } else { + // Set the matching operator. Since output is absent, this is all we need to do. + node->getAsAggregate()->setOperator(atomicOp); + } + + break; + } + + case EOpInterlockedCompareExchange: + { + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // dest + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // cmp + TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); // value + TIntermTyped* arg3 = argAggregate->getSequence()[3]->getAsTyped(); // orig + + const bool isImage = arg0->getType().isImage(); + TIntermAggregate* atomic = new TIntermAggregate(mapAtomicOp(loc, op, isImage)); + atomic->getSequence().push_back(arg0); + atomic->getSequence().push_back(arg1); + atomic->getSequence().push_back(arg2); + atomic->setLoc(loc); + atomic->setType(arg2->getType()); + atomic->getWritableType().getQualifier().makeTemporary(); + + node = intermediate.addAssign(EOpAssign, arg3, atomic, loc); + + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index a50bb957..bcc22029 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -155,6 +155,7 @@ protected: TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); TOperator mapTypeToConstructorOp(const TType&) const; + TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, TPrefixType prefix, va_list args); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index b676a8ef..6643e166 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -296,20 +296,26 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll }, { "frac", nullptr, nullptr, "SVM", "F", EShLangAll }, { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, - { "fwidth", nullptr, nullptr, "SVM", "F", EShLangAll }, + { "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll }, { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll }, { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask }, { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask }, { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangFragmentMask | EShLangComputeMask }, { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangFragmentMask | EShLangComputeMask }, { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask }, + { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask }, { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll }, { "isinf", nullptr, "B" , "SVM", "F", EShLangAll }, { "isnan", nullptr, "B" , "SVM", "F", EShLangAll }, @@ -516,11 +522,11 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int // symbolTable.relateToOperator("AllMemoryBarrier"); // symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync"); symbolTable.relateToOperator("any", EOpAny); - // symbolTable.relateToOperator("asdouble"); - // symbolTable.relateToOperator("asfloat"); + symbolTable.relateToOperator("asdouble", EOpUint64BitsToDouble); + symbolTable.relateToOperator("asfloat", EOpIntBitsToFloat); symbolTable.relateToOperator("asin", EOpAsin); - // symbolTable.relateToOperator("asint"); - // symbolTable.relateToOperator("asuint"); + symbolTable.relateToOperator("asint", EOpFloatBitsToInt); + symbolTable.relateToOperator("asuint", EOpFloatBitsToUint); symbolTable.relateToOperator("atan", EOpAtan); symbolTable.relateToOperator("atan2", EOpAtan); symbolTable.relateToOperator("ceil", EOpCeil); @@ -566,15 +572,15 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int // symbolTable.relateToOperator("GetRenderTargetSamplePosition"); // symbolTable.relateToOperator("GroupMemoryBarrier"); // symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync"); - // symbolTable.relateToOperator("InterlockedAdd"); - // symbolTable.relateToOperator("InterlockedAnd"); - // symbolTable.relateToOperator("InterlockedCompareExchange"); - // symbolTable.relateToOperator("InterlockedCompareStore"); - // symbolTable.relateToOperator("InterlockedExchange"); - // symbolTable.relateToOperator("InterlockedMax"); - // symbolTable.relateToOperator("InterlockedMin"); - // symbolTable.relateToOperator("InterlockedOr"); - // symbolTable.relateToOperator("InterlockedXor"); + symbolTable.relateToOperator("InterlockedAdd", EOpInterlockedAdd); + symbolTable.relateToOperator("InterlockedAnd", EOpInterlockedAnd); + symbolTable.relateToOperator("InterlockedCompareExchange", EOpInterlockedCompareExchange); + symbolTable.relateToOperator("InterlockedCompareStore", EOpInterlockedCompareStore); + symbolTable.relateToOperator("InterlockedExchange", EOpInterlockedExchange); + symbolTable.relateToOperator("InterlockedMax", EOpInterlockedMax); + symbolTable.relateToOperator("InterlockedMin", EOpInterlockedMin); + symbolTable.relateToOperator("InterlockedOr", EOpInterlockedOr); + symbolTable.relateToOperator("InterlockedXor", EOpInterlockedXor); symbolTable.relateToOperator("isfinite", EOpIsFinite); symbolTable.relateToOperator("isinf", EOpIsInf); symbolTable.relateToOperator("isnan", EOpIsNan); From ec1476b7060306fd9109faf7a4c70a20ea3b538c Mon Sep 17 00:00:00 2001 From: David Neto Date: Tue, 14 Jun 2016 12:15:59 -0400 Subject: [PATCH 36/48] Tracking allocator must use const key Fixes TMap template. This is required to build with newer libc++ versions that have a static assert on const-ness of value_type --- glslang/Include/Common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index 05c8447f..efb78d44 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -175,7 +175,7 @@ template class TList : public std::list > { }; template > -class TMap : public std::map > > { +class TMap : public std::map > > { }; template , class PRED = std::equal_to > From c51287d744fb6e7e9ccc09f6f8451e6c64b1dad6 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 14 Jun 2016 19:46:20 -0600 Subject: [PATCH 37/48] SPV: Update to spec. decisions (and issue #205) for barrier(). A barrier (ESSL/GLSL) or OpControlBarrier when in a tessellation control shader also means doing memory synchronization for output variables. --- SPIRV/GlslangToSpv.cpp | 2 - SPIRV/spvIR.h | 5 +- Test/baseResults/spv.400.tesc.out | 302 +++++++++++++++--------------- 3 files changed, 151 insertions(+), 158 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 0324468c..e4280a33 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -3924,8 +3924,6 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op) builder.createNoResultOp(spv::OpEndPrimitive); return 0; case glslang::EOpBarrier: - if (glslangIntermediate->getProfile() != EEsProfile) - builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory); builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsMaskNone); return 0; case glslang::EOpMemoryBarrier: diff --git a/SPIRV/spvIR.h b/SPIRV/spvIR.h index 7c9fb987..42c054a4 100755 --- a/SPIRV/spvIR.h +++ b/SPIRV/spvIR.h @@ -67,10 +67,7 @@ const Id NoType = 0; const unsigned int BadValue = 0xFFFFFFFF; const Decoration NoPrecision = (Decoration)BadValue; const MemorySemanticsMask MemorySemanticsAllMemory = - (MemorySemanticsMask)(MemorySemanticsAcquireMask | - MemorySemanticsReleaseMask | - MemorySemanticsAcquireReleaseMask | - MemorySemanticsSequentiallyConsistentMask | + (MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask | MemorySemanticsUniformMemoryMask | MemorySemanticsSubgroupMemoryMask | MemorySemanticsWorkgroupMemoryMask | diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out index 290a19cd..bcfd963e 100755 --- a/Test/baseResults/spv.400.tesc.out +++ b/Test/baseResults/spv.400.tesc.out @@ -7,173 +7,171 @@ Linked tessellation control stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 94 +// Id's are bound by 93 Capability Tessellation Capability TessellationPointSize Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 24 41 44 47 55 69 74 80 84 85 88 89 92 93 + EntryPoint TessellationControl 4 "main" 23 40 43 46 54 68 73 79 83 84 87 88 91 92 ExecutionMode 4 OutputVertices 4 Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" Name 4 "main" - Name 12 "a" - Name 17 "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 51 "gl_PerVertex" - MemberName 51(gl_PerVertex) 0 "gl_Position" - MemberName 51(gl_PerVertex) 1 "gl_PointSize" - MemberName 51(gl_PerVertex) 2 "gl_ClipDistance" - Name 55 "gl_out" - Name 69 "gl_TessLevelOuter" - Name 74 "gl_TessLevelInner" - Name 79 "outa" - Name 80 "patchOut" - Name 84 "inb" - Name 85 "ind" - Name 88 "ivla" - Name 89 "ivlb" - Name 92 "ovla" - Name 93 "ovlb" - MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 20(gl_PerVertex) Block - Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices - Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 47(gl_InvocationID) BuiltIn InvocationId - MemberDecorate 51(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 51(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 51(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 51(gl_PerVertex) Block - Decorate 69(gl_TessLevelOuter) Patch - Decorate 69(gl_TessLevelOuter) BuiltIn TessLevelOuter - Decorate 74(gl_TessLevelInner) Patch - Decorate 74(gl_TessLevelInner) BuiltIn TessLevelInner - Decorate 80(patchOut) Patch - Decorate 88(ivla) Location 3 - Decorate 89(ivlb) Location 4 - Decorate 92(ovla) Location 3 - Decorate 93(ovlb) Location 4 + Name 11 "a" + Name 16 "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 50 "gl_PerVertex" + MemberName 50(gl_PerVertex) 0 "gl_Position" + MemberName 50(gl_PerVertex) 1 "gl_PointSize" + MemberName 50(gl_PerVertex) 2 "gl_ClipDistance" + Name 54 "gl_out" + Name 68 "gl_TessLevelOuter" + Name 73 "gl_TessLevelInner" + Name 78 "outa" + Name 79 "patchOut" + Name 83 "inb" + Name 84 "ind" + Name 87 "ivla" + Name 88 "ivlb" + Name 91 "ovla" + Name 92 "ovlb" + MemberDecorate 19(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 19(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 19(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 19(gl_PerVertex) Block + Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices + Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 46(gl_InvocationID) BuiltIn InvocationId + MemberDecorate 50(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 50(gl_PerVertex) Block + Decorate 68(gl_TessLevelOuter) Patch + Decorate 68(gl_TessLevelOuter) BuiltIn TessLevelOuter + Decorate 73(gl_TessLevelInner) Patch + Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner + Decorate 79(patchOut) Patch + Decorate 87(ivla) Location 3 + Decorate 88(ivlb) Location 4 + Decorate 91(ovla) Location 3 + Decorate 92(ovlb) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: 6(int) Constant 1 - 8: 6(int) Constant 4062 - 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: 6(int) Constant 3 - 19: TypeArray 14(float) 18 -20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19 - 21: 6(int) Constant 32 - 22: TypeArray 20(gl_PerVertex) 21 - 23: TypePointer Input 22 - 24(gl_in): 23(ptr) Variable Input - 25: 10(int) Constant 1 - 26: 10(int) Constant 0 - 27: TypePointer Input 15(fvec4) - 30: TypePointer Function 14(float) - 32: TypePointer Input 14(float) - 36: 10(int) Constant 2 - 40: TypePointer Input 10(int) -41(gl_PatchVerticesIn): 40(ptr) Variable Input -44(gl_PrimitiveID): 40(ptr) Variable Input -47(gl_InvocationID): 40(ptr) Variable Input - 49: 6(int) Constant 2 - 50: TypeArray 14(float) 49 -51(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 50 - 52: 6(int) Constant 4 - 53: TypeArray 51(gl_PerVertex) 52 - 54: TypePointer Output 53 - 55(gl_out): 54(ptr) Variable Output - 58: TypePointer Output 15(fvec4) - 62: TypePointer Output 14(float) - 67: TypeArray 14(float) 52 - 68: TypePointer Output 67 -69(gl_TessLevelOuter): 68(ptr) Variable Output - 70: 10(int) Constant 3 - 71: 14(float) Constant 1078774989 - 73: TypePointer Output 50 -74(gl_TessLevelInner): 73(ptr) Variable Output - 75: 14(float) Constant 1067869798 - 77: TypeArray 10(int) 52 - 78: TypePointer Private 77 - 79(outa): 78(ptr) Variable Private - 80(patchOut): 58(ptr) Variable Output - 81: TypeVector 14(float) 2 - 82: TypeArray 81(fvec2) 21 - 83: TypePointer Input 82 - 84(inb): 83(ptr) Variable Input - 85(ind): 83(ptr) Variable Input - 86: TypeArray 15(fvec4) 21 - 87: TypePointer Input 86 - 88(ivla): 87(ptr) Variable Input - 89(ivlb): 87(ptr) Variable Input - 90: TypeArray 15(fvec4) 52 - 91: TypePointer Output 90 - 92(ovla): 91(ptr) Variable Output - 93(ovlb): 91(ptr) Variable Output + 8: 6(int) Constant 0 + 9: TypeInt 32 1 + 10: TypePointer Function 9(int) + 12: 9(int) Constant 5392 + 13: TypeFloat 32 + 14: TypeVector 13(float) 4 + 15: TypePointer Function 14(fvec4) + 17: 6(int) Constant 3 + 18: TypeArray 13(float) 17 +19(gl_PerVertex): TypeStruct 14(fvec4) 13(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: 9(int) Constant 1 + 25: 9(int) Constant 0 + 26: TypePointer Input 14(fvec4) + 29: TypePointer Function 13(float) + 31: TypePointer Input 13(float) + 35: 9(int) Constant 2 + 39: TypePointer Input 9(int) +40(gl_PatchVerticesIn): 39(ptr) Variable Input +43(gl_PrimitiveID): 39(ptr) Variable Input +46(gl_InvocationID): 39(ptr) Variable Input + 48: 6(int) Constant 2 + 49: TypeArray 13(float) 48 +50(gl_PerVertex): TypeStruct 14(fvec4) 13(float) 49 + 51: 6(int) Constant 4 + 52: TypeArray 50(gl_PerVertex) 51 + 53: TypePointer Output 52 + 54(gl_out): 53(ptr) Variable Output + 57: TypePointer Output 14(fvec4) + 61: TypePointer Output 13(float) + 66: TypeArray 13(float) 51 + 67: TypePointer Output 66 +68(gl_TessLevelOuter): 67(ptr) Variable Output + 69: 9(int) Constant 3 + 70: 13(float) Constant 1078774989 + 72: TypePointer Output 49 +73(gl_TessLevelInner): 72(ptr) Variable Output + 74: 13(float) Constant 1067869798 + 76: TypeArray 9(int) 51 + 77: TypePointer Private 76 + 78(outa): 77(ptr) Variable Private + 79(patchOut): 57(ptr) Variable Output + 80: TypeVector 13(float) 2 + 81: TypeArray 80(fvec2) 20 + 82: TypePointer Input 81 + 83(inb): 82(ptr) Variable Input + 84(ind): 82(ptr) Variable Input + 85: TypeArray 14(fvec4) 20 + 86: TypePointer Input 85 + 87(ivla): 86(ptr) Variable Input + 88(ivlb): 86(ptr) Variable Input + 89: TypeArray 14(fvec4) 51 + 90: TypePointer Output 89 + 91(ovla): 90(ptr) Variable Output + 92(ovlb): 90(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 12(a): 11(ptr) Variable Function - 17(p): 16(ptr) Variable Function - 31(ps): 30(ptr) Variable Function - 35(cd): 30(ptr) Variable Function - 39(pvi): 11(ptr) Variable Function - 43(pid): 11(ptr) Variable Function - 46(iid): 11(ptr) Variable Function - MemoryBarrier 7 8 - ControlBarrier 7 7 9 - Store 12(a) 13 - 28: 27(ptr) AccessChain 24(gl_in) 25 26 - 29: 15(fvec4) Load 28 - Store 17(p) 29 - 33: 32(ptr) AccessChain 24(gl_in) 25 25 - 34: 14(float) Load 33 - Store 31(ps) 34 - 37: 32(ptr) AccessChain 24(gl_in) 25 36 36 - 38: 14(float) Load 37 - Store 35(cd) 38 - 42: 10(int) Load 41(gl_PatchVerticesIn) - Store 39(pvi) 42 - 45: 10(int) Load 44(gl_PrimitiveID) - Store 43(pid) 45 - 48: 10(int) Load 47(gl_InvocationID) - Store 46(iid) 48 - 56: 10(int) Load 47(gl_InvocationID) - 57: 15(fvec4) Load 17(p) - 59: 58(ptr) AccessChain 55(gl_out) 56 26 - Store 59 57 - 60: 10(int) Load 47(gl_InvocationID) - 61: 14(float) Load 31(ps) - 63: 62(ptr) AccessChain 55(gl_out) 60 25 - Store 63 61 - 64: 10(int) Load 47(gl_InvocationID) - 65: 14(float) Load 35(cd) - 66: 62(ptr) AccessChain 55(gl_out) 64 36 25 - Store 66 65 - 72: 62(ptr) AccessChain 69(gl_TessLevelOuter) 70 - Store 72 71 - 76: 62(ptr) AccessChain 74(gl_TessLevelInner) 25 - Store 76 75 + 11(a): 10(ptr) Variable Function + 16(p): 15(ptr) Variable Function + 30(ps): 29(ptr) Variable Function + 34(cd): 29(ptr) Variable Function + 38(pvi): 10(ptr) Variable Function + 42(pid): 10(ptr) Variable Function + 45(iid): 10(ptr) Variable Function + ControlBarrier 7 7 8 + Store 11(a) 12 + 27: 26(ptr) AccessChain 23(gl_in) 24 25 + 28: 14(fvec4) Load 27 + Store 16(p) 28 + 32: 31(ptr) AccessChain 23(gl_in) 24 24 + 33: 13(float) Load 32 + Store 30(ps) 33 + 36: 31(ptr) AccessChain 23(gl_in) 24 35 35 + 37: 13(float) Load 36 + Store 34(cd) 37 + 41: 9(int) Load 40(gl_PatchVerticesIn) + Store 38(pvi) 41 + 44: 9(int) Load 43(gl_PrimitiveID) + Store 42(pid) 44 + 47: 9(int) Load 46(gl_InvocationID) + Store 45(iid) 47 + 55: 9(int) Load 46(gl_InvocationID) + 56: 14(fvec4) Load 16(p) + 58: 57(ptr) AccessChain 54(gl_out) 55 25 + Store 58 56 + 59: 9(int) Load 46(gl_InvocationID) + 60: 13(float) Load 30(ps) + 62: 61(ptr) AccessChain 54(gl_out) 59 24 + Store 62 60 + 63: 9(int) Load 46(gl_InvocationID) + 64: 13(float) Load 34(cd) + 65: 61(ptr) AccessChain 54(gl_out) 63 35 24 + Store 65 64 + 71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69 + Store 71 70 + 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 24 + Store 75 74 Return FunctionEnd From 9000bd5eb662d9ea42dd0bd70af044c681f65b9f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 14 Jun 2016 20:38:58 -0600 Subject: [PATCH 38/48] Front-end: Make ES floatBitsToInt/intBitsToFloat/etc. all be highp. --- Test/baseResults/300BuiltIns.frag.out | 32 +-- Test/baseResults/spv.310.bitcast.frag.out | 234 ++++++++++++++++++++++ Test/spv.310.bitcast.frag | 41 ++++ glslang/MachineIndependent/Initialize.cpp | 38 ++-- gtests/Spv.FromFile.cpp | 1 + 5 files changed, 311 insertions(+), 35 deletions(-) create mode 100755 Test/baseResults/spv.310.bitcast.frag.out create mode 100644 Test/spv.310.bitcast.frag diff --git a/Test/baseResults/300BuiltIns.frag.out b/Test/baseResults/300BuiltIns.frag.out index 2bb4cf5e..edcae462 100644 --- a/Test/baseResults/300BuiltIns.frag.out +++ b/Test/baseResults/300BuiltIns.frag.out @@ -136,24 +136,24 @@ ERROR: node is still EOpNull! 0:53 isinf (global 4-component vector of bool) 0:53 'v4' (global mediump 4-component vector of float) 0:56 Sequence -0:56 move second child to first child (temp mediump int) +0:56 move second child to first child (temp highp int) 0:56 'i' (temp mediump int) -0:56 floatBitsToInt (global mediump int) +0:56 floatBitsToInt (global highp int) 0:56 'f' (global mediump float) 0:57 Sequence -0:57 move second child to first child (temp mediump 4-component vector of uint) +0:57 move second child to first child (temp highp 4-component vector of uint) 0:57 'uv11' (temp mediump 4-component vector of uint) -0:57 floatBitsToUint (global mediump 4-component vector of uint) +0:57 floatBitsToUint (global highp 4-component vector of uint) 0:57 'v4' (global mediump 4-component vector of float) 0:58 Sequence -0:58 move second child to first child (temp mediump 4-component vector of float) +0:58 move second child to first child (temp highp 4-component vector of float) 0:58 'v14' (temp mediump 4-component vector of float) -0:58 intBitsToFloat (global mediump 4-component vector of float) +0:58 intBitsToFloat (global highp 4-component vector of float) 0:58 'iv4a' (global mediump 4-component vector of int) 0:59 Sequence -0:59 move second child to first child (temp mediump 2-component vector of float) +0:59 move second child to first child (temp highp 2-component vector of float) 0:59 'v15' (temp mediump 2-component vector of float) -0:59 uintBitsToFloat (global mediump 2-component vector of float) +0:59 uintBitsToFloat (global highp 2-component vector of float) 0:59 'uv2c' (global mediump 2-component vector of uint) 0:62 Sequence 0:62 move second child to first child (temp highp uint) @@ -343,24 +343,24 @@ ERROR: node is still EOpNull! 0:53 isinf (global 4-component vector of bool) 0:53 'v4' (global mediump 4-component vector of float) 0:56 Sequence -0:56 move second child to first child (temp mediump int) +0:56 move second child to first child (temp highp int) 0:56 'i' (temp mediump int) -0:56 floatBitsToInt (global mediump int) +0:56 floatBitsToInt (global highp int) 0:56 'f' (global mediump float) 0:57 Sequence -0:57 move second child to first child (temp mediump 4-component vector of uint) +0:57 move second child to first child (temp highp 4-component vector of uint) 0:57 'uv11' (temp mediump 4-component vector of uint) -0:57 floatBitsToUint (global mediump 4-component vector of uint) +0:57 floatBitsToUint (global highp 4-component vector of uint) 0:57 'v4' (global mediump 4-component vector of float) 0:58 Sequence -0:58 move second child to first child (temp mediump 4-component vector of float) +0:58 move second child to first child (temp highp 4-component vector of float) 0:58 'v14' (temp mediump 4-component vector of float) -0:58 intBitsToFloat (global mediump 4-component vector of float) +0:58 intBitsToFloat (global highp 4-component vector of float) 0:58 'iv4a' (global mediump 4-component vector of int) 0:59 Sequence -0:59 move second child to first child (temp mediump 2-component vector of float) +0:59 move second child to first child (temp highp 2-component vector of float) 0:59 'v15' (temp mediump 2-component vector of float) -0:59 uintBitsToFloat (global mediump 2-component vector of float) +0:59 uintBitsToFloat (global highp 2-component vector of float) 0:59 'uv2c' (global mediump 2-component vector of uint) 0:62 Sequence 0:62 move second child to first child (temp highp uint) diff --git a/Test/baseResults/spv.310.bitcast.frag.out b/Test/baseResults/spv.310.bitcast.frag.out new file mode 100755 index 00000000..80df3b1a --- /dev/null +++ b/Test/baseResults/spv.310.bitcast.frag.out @@ -0,0 +1,234 @@ +spv.310.bitcast.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 153 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 + ExecutionMode 4 OriginUpperLeft + Source ESSL 310 + Name 4 "main" + Name 9 "idata" + Name 14 "f1" + Name 26 "f2" + Name 37 "f3" + Name 48 "f4" + Name 55 "udata" + Name 85 "fdata" + Name 89 "i1" + Name 98 "i2" + Name 107 "i3" + Name 116 "i4" + Name 122 "u1" + Name 130 "u2" + Name 139 "u3" + Name 148 "u4" + Decorate 14(f1) RelaxedPrecision + Decorate 15 RelaxedPrecision + Decorate 26(f2) RelaxedPrecision + Decorate 27 RelaxedPrecision + Decorate 37(f3) RelaxedPrecision + Decorate 38 RelaxedPrecision + Decorate 57 RelaxedPrecision + Decorate 64 RelaxedPrecision + Decorate 72 RelaxedPrecision + Decorate 89(i1) RelaxedPrecision + Decorate 89(i1) Flat + Decorate 90 RelaxedPrecision + Decorate 98(i2) RelaxedPrecision + Decorate 98(i2) Flat + Decorate 99 RelaxedPrecision + Decorate 107(i3) RelaxedPrecision + Decorate 107(i3) Flat + Decorate 108 RelaxedPrecision + Decorate 116(i4) Flat + Decorate 122(u1) RelaxedPrecision + Decorate 122(u1) Flat + Decorate 123 RelaxedPrecision + Decorate 130(u2) RelaxedPrecision + Decorate 130(u2) Flat + Decorate 131 RelaxedPrecision + Decorate 139(u3) RelaxedPrecision + Decorate 139(u3) Flat + Decorate 140 RelaxedPrecision + Decorate 148(u4) Flat + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 10: 6(int) Constant 0 + 11: 7(ivec4) ConstantComposite 10 10 10 10 + 12: TypeFloat 32 + 13: TypePointer Input 12(float) + 14(f1): 13(ptr) Variable Input + 17: TypeInt 32 0 + 18: 17(int) Constant 0 + 19: TypePointer Function 6(int) + 24: TypeVector 12(float) 2 + 25: TypePointer Input 24(fvec2) + 26(f2): 25(ptr) Variable Input + 28: TypeVector 6(int) 2 + 35: TypeVector 12(float) 3 + 36: TypePointer Input 35(fvec3) + 37(f3): 36(ptr) Variable Input + 39: TypeVector 6(int) 3 + 46: TypeVector 12(float) 4 + 47: TypePointer Input 46(fvec4) + 48(f4): 47(ptr) Variable Input + 53: TypeVector 17(int) 4 + 54: TypePointer Function 53(ivec4) + 56: 53(ivec4) ConstantComposite 18 18 18 18 + 59: TypePointer Function 17(int) + 65: TypeVector 17(int) 2 + 73: TypeVector 17(int) 3 + 84: TypePointer Function 46(fvec4) + 86: 12(float) Constant 0 + 87: 46(fvec4) ConstantComposite 86 86 86 86 + 88: TypePointer Input 6(int) + 89(i1): 88(ptr) Variable Input + 92: TypePointer Function 12(float) + 97: TypePointer Input 28(ivec2) + 98(i2): 97(ptr) Variable Input + 106: TypePointer Input 39(ivec3) + 107(i3): 106(ptr) Variable Input + 115: TypePointer Input 7(ivec4) + 116(i4): 115(ptr) Variable Input + 121: TypePointer Input 17(int) + 122(u1): 121(ptr) Variable Input + 129: TypePointer Input 65(ivec2) + 130(u2): 129(ptr) Variable Input + 138: TypePointer Input 73(ivec3) + 139(u3): 138(ptr) Variable Input + 147: TypePointer Input 53(ivec4) + 148(u4): 147(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 9(idata): 8(ptr) Variable Function + 55(udata): 54(ptr) Variable Function + 85(fdata): 84(ptr) Variable Function + Store 9(idata) 11 + 15: 12(float) Load 14(f1) + 16: 6(int) Bitcast 15 + 20: 19(ptr) AccessChain 9(idata) 18 + 21: 6(int) Load 20 + 22: 6(int) IAdd 21 16 + 23: 19(ptr) AccessChain 9(idata) 18 + Store 23 22 + 27: 24(fvec2) Load 26(f2) + 29: 28(ivec2) Bitcast 27 + 30: 7(ivec4) Load 9(idata) + 31: 28(ivec2) VectorShuffle 30 30 0 1 + 32: 28(ivec2) IAdd 31 29 + 33: 7(ivec4) Load 9(idata) + 34: 7(ivec4) VectorShuffle 33 32 4 5 2 3 + Store 9(idata) 34 + 38: 35(fvec3) Load 37(f3) + 40: 39(ivec3) Bitcast 38 + 41: 7(ivec4) Load 9(idata) + 42: 39(ivec3) VectorShuffle 41 41 0 1 2 + 43: 39(ivec3) IAdd 42 40 + 44: 7(ivec4) Load 9(idata) + 45: 7(ivec4) VectorShuffle 44 43 4 5 6 3 + Store 9(idata) 45 + 49: 46(fvec4) Load 48(f4) + 50: 7(ivec4) Bitcast 49 + 51: 7(ivec4) Load 9(idata) + 52: 7(ivec4) IAdd 51 50 + Store 9(idata) 52 + Store 55(udata) 56 + 57: 12(float) Load 14(f1) + 58: 17(int) Bitcast 57 + 60: 59(ptr) AccessChain 55(udata) 18 + 61: 17(int) Load 60 + 62: 17(int) IAdd 61 58 + 63: 59(ptr) AccessChain 55(udata) 18 + Store 63 62 + 64: 24(fvec2) Load 26(f2) + 66: 65(ivec2) Bitcast 64 + 67: 53(ivec4) Load 55(udata) + 68: 65(ivec2) VectorShuffle 67 67 0 1 + 69: 65(ivec2) IAdd 68 66 + 70: 53(ivec4) Load 55(udata) + 71: 53(ivec4) VectorShuffle 70 69 4 5 2 3 + Store 55(udata) 71 + 72: 35(fvec3) Load 37(f3) + 74: 73(ivec3) Bitcast 72 + 75: 53(ivec4) Load 55(udata) + 76: 73(ivec3) VectorShuffle 75 75 0 1 2 + 77: 73(ivec3) IAdd 76 74 + 78: 53(ivec4) Load 55(udata) + 79: 53(ivec4) VectorShuffle 78 77 4 5 6 3 + Store 55(udata) 79 + 80: 46(fvec4) Load 48(f4) + 81: 53(ivec4) Bitcast 80 + 82: 53(ivec4) Load 55(udata) + 83: 53(ivec4) IAdd 82 81 + Store 55(udata) 83 + Store 85(fdata) 87 + 90: 6(int) Load 89(i1) + 91: 12(float) Bitcast 90 + 93: 92(ptr) AccessChain 85(fdata) 18 + 94: 12(float) Load 93 + 95: 12(float) FAdd 94 91 + 96: 92(ptr) AccessChain 85(fdata) 18 + Store 96 95 + 99: 28(ivec2) Load 98(i2) + 100: 24(fvec2) Bitcast 99 + 101: 46(fvec4) Load 85(fdata) + 102: 24(fvec2) VectorShuffle 101 101 0 1 + 103: 24(fvec2) FAdd 102 100 + 104: 46(fvec4) Load 85(fdata) + 105: 46(fvec4) VectorShuffle 104 103 4 5 2 3 + Store 85(fdata) 105 + 108: 39(ivec3) Load 107(i3) + 109: 35(fvec3) Bitcast 108 + 110: 46(fvec4) Load 85(fdata) + 111: 35(fvec3) VectorShuffle 110 110 0 1 2 + 112: 35(fvec3) FAdd 111 109 + 113: 46(fvec4) Load 85(fdata) + 114: 46(fvec4) VectorShuffle 113 112 4 5 6 3 + Store 85(fdata) 114 + 117: 7(ivec4) Load 116(i4) + 118: 46(fvec4) Bitcast 117 + 119: 46(fvec4) Load 85(fdata) + 120: 46(fvec4) FAdd 119 118 + Store 85(fdata) 120 + 123: 17(int) Load 122(u1) + 124: 12(float) Bitcast 123 + 125: 92(ptr) AccessChain 85(fdata) 18 + 126: 12(float) Load 125 + 127: 12(float) FAdd 126 124 + 128: 92(ptr) AccessChain 85(fdata) 18 + Store 128 127 + 131: 65(ivec2) Load 130(u2) + 132: 24(fvec2) Bitcast 131 + 133: 46(fvec4) Load 85(fdata) + 134: 24(fvec2) VectorShuffle 133 133 0 1 + 135: 24(fvec2) FAdd 134 132 + 136: 46(fvec4) Load 85(fdata) + 137: 46(fvec4) VectorShuffle 136 135 4 5 2 3 + Store 85(fdata) 137 + 140: 73(ivec3) Load 139(u3) + 141: 35(fvec3) Bitcast 140 + 142: 46(fvec4) Load 85(fdata) + 143: 35(fvec3) VectorShuffle 142 142 0 1 2 + 144: 35(fvec3) FAdd 143 141 + 145: 46(fvec4) Load 85(fdata) + 146: 46(fvec4) VectorShuffle 145 144 4 5 6 3 + Store 85(fdata) 146 + 149: 53(ivec4) Load 148(u4) + 150: 46(fvec4) Bitcast 149 + 151: 46(fvec4) Load 85(fdata) + 152: 46(fvec4) FAdd 151 150 + Store 85(fdata) 152 + Return + FunctionEnd diff --git a/Test/spv.310.bitcast.frag b/Test/spv.310.bitcast.frag new file mode 100644 index 00000000..dbde52f8 --- /dev/null +++ b/Test/spv.310.bitcast.frag @@ -0,0 +1,41 @@ +#version 310 es + +flat in mediump int i1; +flat in lowp ivec2 i2; +flat in mediump ivec3 i3; +flat in highp ivec4 i4; + +flat in mediump uint u1; +flat in lowp uvec2 u2; +flat in mediump uvec3 u3; +flat in highp uvec4 u4; + +mediump in float f1; +lowp in vec2 f2; +mediump in vec3 f3; +highp in vec4 f4; + +void main() +{ + highp ivec4 idata = ivec4(0); + idata.x += floatBitsToInt(f1); + idata.xy += floatBitsToInt(f2); + idata.xyz += floatBitsToInt(f3); + idata += floatBitsToInt(f4); + + highp uvec4 udata = uvec4(0); + udata.x += floatBitsToUint(f1); + udata.xy += floatBitsToUint(f2); + udata.xyz += floatBitsToUint(f3); + udata += floatBitsToUint(f4); + + highp vec4 fdata = vec4(0.0); + fdata.x += intBitsToFloat(i1); + fdata.xy += intBitsToFloat(i2); + fdata.xyz += intBitsToFloat(i3); + fdata += intBitsToFloat(i4); + fdata.x += uintBitsToFloat(u1); + fdata.xy += uintBitsToFloat(u2); + fdata.xyz += uintBitsToFloat(u3); + fdata += uintBitsToFloat(u4); +} \ No newline at end of file diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 6a9fb201..f5362022 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -859,26 +859,26 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) if ((profile == EEsProfile && version >= 300) || (profile != EEsProfile && version >= 330)) { commonBuiltins.append( - "int floatBitsToInt(float value);" - "ivec2 floatBitsToInt(vec2 value);" - "ivec3 floatBitsToInt(vec3 value);" - "ivec4 floatBitsToInt(vec4 value);" + "highp int floatBitsToInt(highp float value);" + "highp ivec2 floatBitsToInt(highp vec2 value);" + "highp ivec3 floatBitsToInt(highp vec3 value);" + "highp ivec4 floatBitsToInt(highp vec4 value);" - "uint floatBitsToUint(float value);" - "uvec2 floatBitsToUint(vec2 value);" - "uvec3 floatBitsToUint(vec3 value);" - "uvec4 floatBitsToUint(vec4 value);" - - "float intBitsToFloat(int value);" - "vec2 intBitsToFloat(ivec2 value);" - "vec3 intBitsToFloat(ivec3 value);" - "vec4 intBitsToFloat(ivec4 value);" - - "float uintBitsToFloat(uint value);" - "vec2 uintBitsToFloat(uvec2 value);" - "vec3 uintBitsToFloat(uvec3 value);" - "vec4 uintBitsToFloat(uvec4 value);" - + "highp uint floatBitsToUint(highp float value);" + "highp uvec2 floatBitsToUint(highp vec2 value);" + "highp uvec3 floatBitsToUint(highp vec3 value);" + "highp uvec4 floatBitsToUint(highp vec4 value);" + + "highp float intBitsToFloat(highp int value);" + "highp vec2 intBitsToFloat(highp ivec2 value);" + "highp vec3 intBitsToFloat(highp ivec3 value);" + "highp vec4 intBitsToFloat(highp ivec4 value);" + + "highp float uintBitsToFloat(highp uint value);" + "highp vec2 uintBitsToFloat(highp uvec2 value);" + "highp vec3 uintBitsToFloat(highp uvec3 value);" + "highp vec4 uintBitsToFloat(highp uvec4 value);" + "\n"); } diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 054e293a..fd9a38b5 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -100,6 +100,7 @@ INSTANTIATE_TEST_CASE_P( "spv.300layout.vert", "spv.300layoutp.vert", "spv.310.comp", + "spv.310.bitcast.frag", "spv.330.geom", "spv.400.frag", "spv.400.tesc", From ac666e736846d25448aa5c089511c38541e6e81e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 14 Jun 2016 22:12:20 -0600 Subject: [PATCH 39/48] Front-end ESSL: require precision declarations for images. --- Test/310.comp | 26 +++--- Test/310.frag | 16 ++-- Test/310.vert | 8 +- Test/baseResults/310.comp.out | 40 +++++----- Test/baseResults/310.frag.out | 29 ++++--- Test/baseResults/310.vert.out | 92 +++++++++++----------- glslang/MachineIndependent/ParseHelper.cpp | 14 +++- glslang/MachineIndependent/ParseHelper.h | 2 +- 8 files changed, 119 insertions(+), 108 deletions(-) diff --git a/Test/310.comp b/Test/310.comp index d6b2c97d..3252728c 100644 --- a/Test/310.comp +++ b/Test/310.comp @@ -78,8 +78,8 @@ uniform writeonly iimage2DArray ii2da; layout(r32i) uniform iimage2D iimg2D; layout(rgba32i) uniform readonly iimage2D iimg2Drgba; -layout(rgba32f) uniform readonly image2D img2Drgba; -layout(r32ui) uniform uimage2D uimg2D; +layout(rgba32f) uniform readonly image2D img2Drgba; // ERROR, no default +layout(r32ui) uniform uimage2D uimg2D; // ERROR, no default void qux() { @@ -111,9 +111,9 @@ void passrc() passr(iimg2D); } -layout(rg8i) uniform readonly uimage2D i1bad; // ERROR, type mismatch -layout(rgba32i) uniform readonly image2D i2bad; // ERROR, type mismatch -layout(rgba32f) uniform readonly uimage2D i3bad; // ERROR, type mismatch +highp layout(rg8i) uniform readonly uimage2D i1bad; // ERROR, type mismatch +highp layout(rgba32i) uniform readonly image2D i2bad; // ERROR, type mismatch +highp layout(rgba32f) uniform readonly uimage2D i3bad; // ERROR, type mismatch layout(r8_snorm) uniform readonly iimage2D i4bad; // ERROR, type mismatch layout(rgba32ui) uniform readonly iimage2D i5bad; // ERROR, type mismatch layout(r8ui) uniform readonly iimage2D i6bad; // ERROR, type mismatch @@ -170,17 +170,17 @@ precise int pfoo; // ERROR, reserved dmat2x4 dm; // ERROR uniform samplerCubeArray sca; // ERROR uniform iimage2DRect i2dr; // ERROR -uniform image2DMS i2dms; // ERROR +highp uniform image2DMS i2dms; // ERROR uniform uimage2DMSArray u2dmsa; // ERROR -layout(r32f) coherent volatile restrict readonly writeonly uniform image2D okay1; -layout(r32i) coherent volatile restrict readonly uniform iimage2D okay2; -layout(r32ui) coherent volatile restrict writeonly uniform uimage2D okay3; -layout(r32f) coherent volatile restrict uniform image2D okay4; +highp layout(r32f) coherent volatile restrict readonly writeonly uniform image2D okay1; + layout(r32i) coherent volatile restrict readonly uniform iimage2D okay2; +highp layout(r32ui) coherent volatile restrict writeonly uniform uimage2D okay3; +highp layout(r32f) coherent volatile restrict uniform image2D okay4; -layout(rgba32f) coherent volatile restrict uniform image2D badQ1; // ERROR, bad qualifiers -layout(rgba8i) coherent volatile restrict uniform iimage2D badQ2; // ERROR, bad qualifiers -layout(rgba16ui) coherent volatile restrict uniform uimage2D badQ3; // ERROR, bad qualifiers +highp layout(rgba32f) coherent volatile restrict uniform image2D badQ1; // ERROR, bad qualifiers + layout(rgba8i) coherent volatile restrict uniform iimage2D badQ2; // ERROR, bad qualifiers +highp layout(rgba16ui) coherent volatile restrict uniform uimage2D badQ3; // ERROR, bad qualifiers writeonly buffer woblock { diff --git a/Test/310.frag b/Test/310.frag index b08391a5..e9f03950 100644 --- a/Test/310.frag +++ b/Test/310.frag @@ -62,11 +62,11 @@ void foo23() layout(binding=3) uniform sampler2D s1; layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec. -layout(binding=2) uniform writeonly image2D i2D; -layout(binding=4) uniform readonly image3D i3D; -layout(binding=5) uniform imageCube iCube; -layout(binding=6) uniform image2DArray i2DA; -layout(binding=6) uniform coherent volatile restrict image2D i2Dqualified; +highp layout(binding=2) uniform writeonly image2D i2D; + layout(binding=4) uniform readonly image3D i3D; // ERROR, no default precision + layout(binding=5) uniform imageCube iCube; // ERROR, no default precision + layout(binding=6) uniform image2DArray i2DA; // ERROR, no default precision + layout(binding=6) uniform coherent volatile restrict image2D i2Dqualified; // ERROR, no default precision layout(binding = 1) uniform bb { int foo; @@ -93,7 +93,7 @@ layout(shared) uniform bshar { in smooth vec4 smoothIn; in flat int flatIn; -uniform sampler2DMS s2dms; +uniform sampler2DMS s2dms; // ERROR, no default precision qualifier void foots() { @@ -108,7 +108,7 @@ void foots() } out bool bout; // ERROR -out image2D imageOut; // ERROR +highp out image2D imageOut; // ERROR out mat2x3 mout; // ERROR in bool inb; // ERROR @@ -201,7 +201,7 @@ uniform int sIndex; layout(binding = 0) uniform atomic_uint auArray[2]; uniform ubName { int i; } ubInst[4]; buffer bbName { int i; } bbInst[4]; -uniform writeonly image2D iArray[5]; +highp uniform writeonly image2D iArray[5]; const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); void pfooBad() diff --git a/Test/310.vert b/Test/310.vert index 58ed7480..92a50e2e 100644 --- a/Test/310.vert +++ b/Test/310.vert @@ -147,7 +147,7 @@ uniform int sIndex; layout(binding = 0) uniform atomic_uint auArray[2]; uniform ubName { int i; } ubInst[4]; buffer bbName { int i; } bbInst[4]; -uniform writeonly image2D iArray[5]; +highp uniform writeonly image2D iArray[5]; const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4)); void pfooBad() @@ -158,10 +158,10 @@ void pfooBad() auArray[sIndex + 1]; ubInst[1]; bbInst[2]; - ubInst[sIndex + 1]; // ERRRO, not supported - bbInst[sIndex]; // ERRRO, not supported + ubInst[sIndex + 1]; // ERROR, not supported + bbInst[sIndex]; // ERROR, not supported iArray[2]; - iArray[sIndex * 2]; // ERRRO, not supported + iArray[sIndex * 2]; // ERROR, not supported textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf)); // ERROR, offset not constant textureGatherOffsets(sArray[0], vec2(0.1), constOffsets); // ERROR, not available } diff --git a/Test/baseResults/310.comp.out b/Test/baseResults/310.comp.out index 67129d1d..b56f0702 100644 --- a/Test/baseResults/310.comp.out +++ b/Test/baseResults/310.comp.out @@ -17,6 +17,8 @@ ERROR: 0:61: 'assign' : l-value required "ro" (can't modify a readonly buffer) ERROR: 0:66: 'buffer' : buffers can be declared only as blocks ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:76: '' : image variables not declared 'writeonly' must have a format layout qualifier +ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier +ERROR: 0:82: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:87: 'imageAtomicCompSwap' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:88: 'imageAtomicAdd' : required extension not requested: GL_OES_shader_image_atomic ERROR: 0:89: 'imageAtomicMin' : required extension not requested: GL_OES_shader_image_atomic @@ -79,7 +81,7 @@ ERROR: 0:227: 'input block' : not supported in this stage: compute ERROR: 0:231: 'output block' : not supported in this stage: compute WARNING: 0:235: 't__' : identifiers containing consecutive underscores ("__") are reserved WARNING: 0:238: '#define' : names containing consecutive underscores are reserved: __D -ERROR: 77 compilation errors. No code generated. +ERROR: 79 compilation errors. No code generated. Shader version: 310 @@ -143,7 +145,7 @@ ERROR: node is still EOpNull! 0:87 'i' (temp highp int) 0:87 'i' (temp highp int) 0:88 imageAtomicAdd (global highp uint) -0:88 'uimg2D' (layout(r32ui ) uniform highp uimage2D) +0:88 'uimg2D' (layout(r32ui ) uniform mediump uimage2D) 0:88 Construct ivec2 (temp highp 2-component vector of int) 0:88 'i' (temp highp int) 0:88 'i' (temp highp int) @@ -177,7 +179,7 @@ ERROR: node is still EOpNull! 0:92 0 (const int) 0:92 0 (const int) 0:93 imageLoad (global highp 4-component vector of float) -0:93 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D) +0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D) 0:93 Construct ivec2 (temp highp 2-component vector of int) 0:93 'i' (temp highp int) 0:93 'i' (temp highp int) @@ -467,14 +469,14 @@ ERROR: node is still EOpNull! 0:? 'ii2da' (writeonly uniform highp iimage2DArray) 0:? 'iimg2D' (layout(r32i ) uniform highp iimage2D) 0:? 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D) -0:? 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D) -0:? 'uimg2D' (layout(r32ui ) uniform highp uimage2D) +0:? 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D) +0:? 'uimg2D' (layout(r32ui ) uniform mediump uimage2D) 0:? 'vol' (volatile temp highp float) 0:? 'vol2' (readonly temp highp int) 0:? 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D) 0:? 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D) 0:? 'i1bad' (layout(rg8i ) readonly uniform highp uimage2D) -0:? 'i2bad' (layout(rgba32i ) readonly uniform lowp image2D) +0:? 'i2bad' (layout(rgba32i ) readonly uniform highp image2D) 0:? 'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D) 0:? 'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D) 0:? 'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D) @@ -489,13 +491,13 @@ ERROR: node is still EOpNull! 0:? 'dm' (global 2X4 matrix of double) 0:? 'sca' (uniform mediump samplerCubeArray) 0:? 'i2dr' (uniform mediump iimage2DRect) -0:? 'i2dms' (uniform lowp image2DMS) +0:? 'i2dms' (uniform highp image2DMS) 0:? 'u2dmsa' (uniform mediump uimage2DMSArray) -0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D) +0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform highp image2D) 0:? 'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D) 0:? 'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D) -0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D) -0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D) +0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform highp image2D) +0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform highp image2D) 0:? 'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D) 0:? 'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D) 0:? 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) @@ -570,7 +572,7 @@ ERROR: node is still EOpNull! 0:87 'i' (temp highp int) 0:87 'i' (temp highp int) 0:88 imageAtomicAdd (global highp uint) -0:88 'uimg2D' (layout(r32ui ) uniform highp uimage2D) +0:88 'uimg2D' (layout(r32ui ) uniform mediump uimage2D) 0:88 Construct ivec2 (temp highp 2-component vector of int) 0:88 'i' (temp highp int) 0:88 'i' (temp highp int) @@ -604,7 +606,7 @@ ERROR: node is still EOpNull! 0:92 0 (const int) 0:92 0 (const int) 0:93 imageLoad (global highp 4-component vector of float) -0:93 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D) +0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D) 0:93 Construct ivec2 (temp highp 2-component vector of int) 0:93 'i' (temp highp int) 0:93 'i' (temp highp int) @@ -894,14 +896,14 @@ ERROR: node is still EOpNull! 0:? 'ii2da' (writeonly uniform highp iimage2DArray) 0:? 'iimg2D' (layout(r32i ) uniform highp iimage2D) 0:? 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D) -0:? 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D) -0:? 'uimg2D' (layout(r32ui ) uniform highp uimage2D) +0:? 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D) +0:? 'uimg2D' (layout(r32ui ) uniform mediump uimage2D) 0:? 'vol' (volatile temp highp float) 0:? 'vol2' (readonly temp highp int) 0:? 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D) 0:? 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D) 0:? 'i1bad' (layout(rg8i ) readonly uniform highp uimage2D) -0:? 'i2bad' (layout(rgba32i ) readonly uniform lowp image2D) +0:? 'i2bad' (layout(rgba32i ) readonly uniform highp image2D) 0:? 'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D) 0:? 'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D) 0:? 'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D) @@ -916,13 +918,13 @@ ERROR: node is still EOpNull! 0:? 'dm' (global 2X4 matrix of double) 0:? 'sca' (uniform mediump samplerCubeArray) 0:? 'i2dr' (uniform mediump iimage2DRect) -0:? 'i2dms' (uniform lowp image2DMS) +0:? 'i2dms' (uniform highp image2DMS) 0:? 'u2dmsa' (uniform mediump uimage2DMSArray) -0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D) +0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform highp image2D) 0:? 'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D) 0:? 'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D) -0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D) -0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D) +0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform highp image2D) +0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform highp image2D) 0:? 'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D) 0:? 'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D) 0:? 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) diff --git a/Test/baseResults/310.frag.out b/Test/baseResults/310.frag.out index 0d2ad8d0..905a9ca9 100644 --- a/Test/baseResults/310.frag.out +++ b/Test/baseResults/310.frag.out @@ -20,9 +20,11 @@ ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, ERROR: 0:45: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset] ERROR: 0:66: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:66: '' : image variables not declared 'writeonly' must have a format layout qualifier +ERROR: 0:67: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:67: '' : image variables not declared 'writeonly' must have a format layout qualifier ERROR: 0:68: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:68: '' : image variables not declared 'writeonly' must have a format layout qualifier +ERROR: 0:69: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:69: '' : image variables not declared 'writeonly' must have a format layout qualifier ERROR: 0:73: 'binding' : requires block, or sampler/image, or atomic-counter type ERROR: 0:77: 'location' : location is too large @@ -31,6 +33,7 @@ ERROR: 0:82: 'location' : too large for fragment output ERROR: 0:82: 'location' : overlapping use of location 40 ERROR: 0:83: 'non-literal layout-id value' : not supported with this profile: es ERROR: 0:83: 'layout-id value' : cannot be negative +ERROR: 0:96: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:110: 'out' : cannot be bool ERROR: 0:111: 'image2D' : sampler/image types can only be used in uniform variables or function parameters: imageOut ERROR: 0:111: '' : image variables not declared 'writeonly' must have a format layout qualifier @@ -130,7 +133,7 @@ ERROR: 0:427: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:428: 'blend equation' : can only apply to a standalone qualifier ERROR: 0:429: 'blend_support' : unknown blend equation ERROR: 0:431: 'fragment-shader array-of-array output' : not supported with this profile: es -ERROR: 122 compilation errors. No code generated. +ERROR: 125 compilation errors. No code generated. Shader version: 310 @@ -351,7 +354,7 @@ ERROR: node is still EOpNull! 0:102 move second child to first child (temp highp 2-component vector of int) 0:102 'v2' (temp highp 2-component vector of int) 0:102 textureSize (global highp 2-component vector of int) -0:102 's2dms' (uniform highp sampler2DMS) +0:102 's2dms' (uniform mediump sampler2DMS) 0:103 move second child to first child (temp highp 2-component vector of int) 0:103 'v2' (temp highp 2-component vector of int) 0:103 imageQuerySize (global highp 2-component vector of int) @@ -363,7 +366,7 @@ ERROR: node is still EOpNull! 0:105 move second child to first child (temp highp 2-component vector of int) 0:105 'v2' (temp highp 2-component vector of int) 0:105 imageQuerySize (global highp 2-component vector of int) -0:105 'iCube' (layout(binding=5 ) uniform lowp imageCube) +0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube) 0:106 move second child to first child (temp highp 3-component vector of int) 0:106 'v3' (temp highp 3-component vector of int) 0:106 imageQuerySize (global highp 3-component vector of int) @@ -371,7 +374,7 @@ ERROR: node is still EOpNull! 0:107 move second child to first child (temp highp 2-component vector of int) 0:107 'v2' (temp highp 2-component vector of int) 0:107 imageQuerySize (global highp 2-component vector of int) -0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D) +0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D) 0:165 Function Definition: fooIO( (global void) 0:165 Function Parameters: 0:167 Sequence @@ -928,9 +931,9 @@ ERROR: node is still EOpNull! 0:? 's2' (layout(binding=3 ) uniform highp sampler2D) 0:? 'i2D' (layout(binding=2 ) writeonly uniform highp image2D) 0:? 'i3D' (layout(binding=4 ) readonly uniform mediump image3D) -0:? 'iCube' (layout(binding=5 ) uniform lowp imageCube) +0:? 'iCube' (layout(binding=5 ) uniform mediump imageCube) 0:? 'i2DA' (layout(binding=6 ) uniform mediump image2DArray) -0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D) +0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D) 0:? 'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f}) 0:? 'centroidIn' (centroid smooth in mediump 4-component vector of float) 0:? 'bigl' (uniform mediump 4-component vector of float) @@ -941,7 +944,7 @@ ERROR: node is still EOpNull! 0:? 'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i}) 0:? 'smoothIn' (smooth in mediump 4-component vector of float) 0:? 'flatIn' (flat in mediump int) -0:? 's2dms' (uniform highp sampler2DMS) +0:? 's2dms' (uniform mediump sampler2DMS) 0:? 'bout' (out bool) 0:? 'imageOut' (out highp image2D) 0:? 'mout' (out mediump 2X3 matrix of float) @@ -1232,7 +1235,7 @@ ERROR: node is still EOpNull! 0:102 move second child to first child (temp highp 2-component vector of int) 0:102 'v2' (temp highp 2-component vector of int) 0:102 textureSize (global highp 2-component vector of int) -0:102 's2dms' (uniform highp sampler2DMS) +0:102 's2dms' (uniform mediump sampler2DMS) 0:103 move second child to first child (temp highp 2-component vector of int) 0:103 'v2' (temp highp 2-component vector of int) 0:103 imageQuerySize (global highp 2-component vector of int) @@ -1244,7 +1247,7 @@ ERROR: node is still EOpNull! 0:105 move second child to first child (temp highp 2-component vector of int) 0:105 'v2' (temp highp 2-component vector of int) 0:105 imageQuerySize (global highp 2-component vector of int) -0:105 'iCube' (layout(binding=5 ) uniform lowp imageCube) +0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube) 0:106 move second child to first child (temp highp 3-component vector of int) 0:106 'v3' (temp highp 3-component vector of int) 0:106 imageQuerySize (global highp 3-component vector of int) @@ -1252,7 +1255,7 @@ ERROR: node is still EOpNull! 0:107 move second child to first child (temp highp 2-component vector of int) 0:107 'v2' (temp highp 2-component vector of int) 0:107 imageQuerySize (global highp 2-component vector of int) -0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D) +0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D) 0:165 Function Definition: fooIO( (global void) 0:165 Function Parameters: 0:167 Sequence @@ -1809,9 +1812,9 @@ ERROR: node is still EOpNull! 0:? 's2' (layout(binding=3 ) uniform highp sampler2D) 0:? 'i2D' (layout(binding=2 ) writeonly uniform highp image2D) 0:? 'i3D' (layout(binding=4 ) readonly uniform mediump image3D) -0:? 'iCube' (layout(binding=5 ) uniform lowp imageCube) +0:? 'iCube' (layout(binding=5 ) uniform mediump imageCube) 0:? 'i2DA' (layout(binding=6 ) uniform mediump image2DArray) -0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform highp image2D) +0:? 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D) 0:? 'bbi' (layout(binding=1 column_major shared ) uniform block{layout(column_major shared ) uniform mediump int foo, layout(binding=2 column_major shared ) uniform mediump float f}) 0:? 'centroidIn' (centroid smooth in mediump 4-component vector of float) 0:? 'bigl' (uniform mediump 4-component vector of float) @@ -1822,7 +1825,7 @@ ERROR: node is still EOpNull! 0:? 'bshari' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int i}) 0:? 'smoothIn' (smooth in mediump 4-component vector of float) 0:? 'flatIn' (flat in mediump int) -0:? 's2dms' (uniform highp sampler2DMS) +0:? 's2dms' (uniform mediump sampler2DMS) 0:? 'bout' (out bool) 0:? 'imageOut' (out highp image2D) 0:? 'mout' (out mediump 2X3 matrix of float) diff --git a/Test/baseResults/310.vert.out b/Test/baseResults/310.vert.out index 9ce13f44..b8b39f59 100644 --- a/Test/baseResults/310.vert.out +++ b/Test/baseResults/310.vert.out @@ -291,8 +291,8 @@ ERROR: node is still EOpNull! 0:156 'inf' (in highp 2-component vector of float) 0:156 'ing' (in highp 2-component vector of float) 0:156 'h' (noContraction temp highp 2-component vector of float) -0:157 indirect index (temp highp sampler2D) -0:157 'sArray' (uniform 4-element array of highp sampler2D) +0:157 indirect index (temp lowp sampler2D) +0:157 'sArray' (uniform 4-element array of lowp sampler2D) 0:157 add (temp highp int) 0:157 'sIndex' (uniform highp int) 0:157 Constant: @@ -330,19 +330,19 @@ ERROR: node is still EOpNull! 0:164 'sIndex' (uniform highp int) 0:164 Constant: 0:164 2 (const int) -0:165 textureGatherOffset (global highp 4-component vector of float) -0:165 direct index (temp highp sampler2D) -0:165 'sArray' (uniform 4-element array of highp sampler2D) +0:165 textureGatherOffset (global lowp 4-component vector of float) +0:165 direct index (temp lowp sampler2D) +0:165 'sArray' (uniform 4-element array of lowp sampler2D) 0:165 Constant: 0:165 0 (const int) 0:165 Constant: 0:165 0.100000 0:165 0.100000 -0:165 Convert float to int (temp highp 2-component vector of int) +0:165 Convert float to int (temp lowp 2-component vector of int) 0:165 'inf' (in highp 2-component vector of float) -0:166 textureGatherOffsets (global highp 4-component vector of float) -0:166 direct index (temp highp sampler2D) -0:166 'sArray' (uniform 4-element array of highp sampler2D) +0:166 textureGatherOffsets (global lowp 4-component vector of float) +0:166 direct index (temp lowp sampler2D) +0:166 'sArray' (uniform 4-element array of lowp sampler2D) 0:166 Constant: 0:166 0 (const int) 0:166 Constant: @@ -366,8 +366,8 @@ ERROR: node is still EOpNull! 0:174 'inf' (in highp 2-component vector of float) 0:174 'ing' (in highp 2-component vector of float) 0:174 'h' (noContraction temp highp 2-component vector of float) -0:175 indirect index (temp highp sampler2D) -0:175 'sArray' (uniform 4-element array of highp sampler2D) +0:175 indirect index (temp lowp sampler2D) +0:175 'sArray' (uniform 4-element array of lowp sampler2D) 0:175 add (temp highp int) 0:175 'sIndex' (uniform highp int) 0:175 Constant: @@ -394,19 +394,19 @@ ERROR: node is still EOpNull! 0:179 'sIndex' (uniform highp int) 0:179 Constant: 0:179 2 (const int) -0:180 textureGatherOffset (global highp 4-component vector of float) -0:180 direct index (temp highp sampler2D) -0:180 'sArray' (uniform 4-element array of highp sampler2D) +0:180 textureGatherOffset (global lowp 4-component vector of float) +0:180 direct index (temp lowp sampler2D) +0:180 'sArray' (uniform 4-element array of lowp sampler2D) 0:180 Constant: 0:180 0 (const int) 0:180 Constant: 0:180 0.100000 0:180 0.100000 -0:180 Convert float to int (temp highp 2-component vector of int) +0:180 Convert float to int (temp lowp 2-component vector of int) 0:180 'inf' (in highp 2-component vector of float) -0:181 textureGatherOffsets (global highp 4-component vector of float) -0:181 direct index (temp highp sampler2D) -0:181 'sArray' (uniform 4-element array of highp sampler2D) +0:181 textureGatherOffsets (global lowp 4-component vector of float) +0:181 direct index (temp lowp sampler2D) +0:181 'sArray' (uniform 4-element array of lowp sampler2D) 0:181 Constant: 0:181 0 (const int) 0:181 Constant: @@ -421,9 +421,9 @@ ERROR: node is still EOpNull! 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) -0:182 textureGatherOffsets (global highp 4-component vector of float) -0:182 direct index (temp highp sampler2D) -0:182 'sArray' (uniform 4-element array of highp sampler2D) +0:182 textureGatherOffsets (global lowp 4-component vector of float) +0:182 direct index (temp lowp sampler2D) +0:182 'sArray' (uniform 4-element array of lowp sampler2D) 0:182 Constant: 0:182 0 (const int) 0:182 Constant: @@ -927,7 +927,7 @@ ERROR: node is still EOpNull! 0:? 'us2dms' (uniform highp usampler2DMS) 0:? 'us2dmsa' (uniform mediump usampler2DMSArray) 0:? 'outb' (smooth out bool) -0:? 'outo' (smooth out highp sampler2D) +0:? 'outo' (smooth out lowp sampler2D) 0:? 'outa' (smooth out 4-element array of highp float) 0:? 'outaa' (smooth out 4-element array of 2-element array of highp float) 0:? 'outs' (smooth out structure{global highp float f}) @@ -949,7 +949,7 @@ ERROR: node is still EOpNull! 0:? 'inf' (in highp 2-component vector of float) 0:? 'ing' (in highp 2-component vector of float) 0:? 'offsets' (uniform 4-element array of highp 2-component vector of int) -0:? 'sArray' (uniform 4-element array of highp sampler2D) +0:? 'sArray' (uniform 4-element array of lowp sampler2D) 0:? 'sIndex' (uniform highp int) 0:? 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i}) @@ -1222,8 +1222,8 @@ ERROR: node is still EOpNull! 0:156 'inf' (in highp 2-component vector of float) 0:156 'ing' (in highp 2-component vector of float) 0:156 'h' (noContraction temp highp 2-component vector of float) -0:157 indirect index (temp highp sampler2D) -0:157 'sArray' (uniform 4-element array of highp sampler2D) +0:157 indirect index (temp lowp sampler2D) +0:157 'sArray' (uniform 4-element array of lowp sampler2D) 0:157 add (temp highp int) 0:157 'sIndex' (uniform highp int) 0:157 Constant: @@ -1261,19 +1261,19 @@ ERROR: node is still EOpNull! 0:164 'sIndex' (uniform highp int) 0:164 Constant: 0:164 2 (const int) -0:165 textureGatherOffset (global highp 4-component vector of float) -0:165 direct index (temp highp sampler2D) -0:165 'sArray' (uniform 4-element array of highp sampler2D) +0:165 textureGatherOffset (global lowp 4-component vector of float) +0:165 direct index (temp lowp sampler2D) +0:165 'sArray' (uniform 4-element array of lowp sampler2D) 0:165 Constant: 0:165 0 (const int) 0:165 Constant: 0:165 0.100000 0:165 0.100000 -0:165 Convert float to int (temp highp 2-component vector of int) +0:165 Convert float to int (temp lowp 2-component vector of int) 0:165 'inf' (in highp 2-component vector of float) -0:166 textureGatherOffsets (global highp 4-component vector of float) -0:166 direct index (temp highp sampler2D) -0:166 'sArray' (uniform 4-element array of highp sampler2D) +0:166 textureGatherOffsets (global lowp 4-component vector of float) +0:166 direct index (temp lowp sampler2D) +0:166 'sArray' (uniform 4-element array of lowp sampler2D) 0:166 Constant: 0:166 0 (const int) 0:166 Constant: @@ -1297,8 +1297,8 @@ ERROR: node is still EOpNull! 0:174 'inf' (in highp 2-component vector of float) 0:174 'ing' (in highp 2-component vector of float) 0:174 'h' (noContraction temp highp 2-component vector of float) -0:175 indirect index (temp highp sampler2D) -0:175 'sArray' (uniform 4-element array of highp sampler2D) +0:175 indirect index (temp lowp sampler2D) +0:175 'sArray' (uniform 4-element array of lowp sampler2D) 0:175 add (temp highp int) 0:175 'sIndex' (uniform highp int) 0:175 Constant: @@ -1325,19 +1325,19 @@ ERROR: node is still EOpNull! 0:179 'sIndex' (uniform highp int) 0:179 Constant: 0:179 2 (const int) -0:180 textureGatherOffset (global highp 4-component vector of float) -0:180 direct index (temp highp sampler2D) -0:180 'sArray' (uniform 4-element array of highp sampler2D) +0:180 textureGatherOffset (global lowp 4-component vector of float) +0:180 direct index (temp lowp sampler2D) +0:180 'sArray' (uniform 4-element array of lowp sampler2D) 0:180 Constant: 0:180 0 (const int) 0:180 Constant: 0:180 0.100000 0:180 0.100000 -0:180 Convert float to int (temp highp 2-component vector of int) +0:180 Convert float to int (temp lowp 2-component vector of int) 0:180 'inf' (in highp 2-component vector of float) -0:181 textureGatherOffsets (global highp 4-component vector of float) -0:181 direct index (temp highp sampler2D) -0:181 'sArray' (uniform 4-element array of highp sampler2D) +0:181 textureGatherOffsets (global lowp 4-component vector of float) +0:181 direct index (temp lowp sampler2D) +0:181 'sArray' (uniform 4-element array of lowp sampler2D) 0:181 Constant: 0:181 0 (const int) 0:181 Constant: @@ -1352,9 +1352,9 @@ ERROR: node is still EOpNull! 0:181 0 (const int) 0:181 0 (const int) 0:181 0 (const int) -0:182 textureGatherOffsets (global highp 4-component vector of float) -0:182 direct index (temp highp sampler2D) -0:182 'sArray' (uniform 4-element array of highp sampler2D) +0:182 textureGatherOffsets (global lowp 4-component vector of float) +0:182 direct index (temp lowp sampler2D) +0:182 'sArray' (uniform 4-element array of lowp sampler2D) 0:182 Constant: 0:182 0 (const int) 0:182 Constant: @@ -1858,7 +1858,7 @@ ERROR: node is still EOpNull! 0:? 'us2dms' (uniform highp usampler2DMS) 0:? 'us2dmsa' (uniform mediump usampler2DMSArray) 0:? 'outb' (smooth out bool) -0:? 'outo' (smooth out highp sampler2D) +0:? 'outo' (smooth out lowp sampler2D) 0:? 'outa' (smooth out 4-element array of highp float) 0:? 'outaa' (smooth out 4-element array of 2-element array of highp float) 0:? 'outs' (smooth out structure{global highp float f}) @@ -1880,7 +1880,7 @@ ERROR: node is still EOpNull! 0:? 'inf' (in highp 2-component vector of float) 0:? 'ing' (in highp 2-component vector of float) 0:? 'offsets' (uniform 4-element array of highp 2-component vector of int) -0:? 'sArray' (uniform 4-element array of highp sampler2D) +0:? 'sArray' (uniform 4-element array of lowp sampler2D) 0:? 'sIndex' (uniform highp int) 0:? 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint) 0:? 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i}) diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index eb9100bd..72f827cf 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -2871,11 +2871,17 @@ void TParseContext::setDefaultPrecision(const TSourceLoc& loc, TPublicType& publ // correlates with the declaration of defaultSamplerPrecision[] int TParseContext::computeSamplerTypeIndex(TSampler& sampler) { - int arrayIndex = sampler.arrayed ? 1 : 0; - int shadowIndex = sampler.shadow ? 1 : 0; - int externalIndex = sampler.external ? 1 : 0; + int arrayIndex = sampler.arrayed ? 1 : 0; + int shadowIndex = sampler.shadow ? 1 : 0; + int externalIndex = sampler.external? 1 : 0; + int imageIndex = sampler.image ? 1 : 0; + int msIndex = sampler.ms ? 1 : 0; - return EsdNumDims * (EbtNumTypes * (2 * (2 * arrayIndex + shadowIndex) + externalIndex) + sampler.type) + sampler.dim; + int flattened = EsdNumDims * (EbtNumTypes * (2 * (2 * (2 * (2 * arrayIndex + msIndex) + imageIndex) + shadowIndex) + + externalIndex) + sampler.type) + sampler.dim; + assert(flattened < maxSamplerIndex); + + return flattened; } TPrecisionQualifier TParseContext::getDefaultPrecision(TPublicType& publicType) diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index a4775e71..5b4a9df0 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -335,7 +335,7 @@ protected: TParseContext& operator=(TParseContext&); const bool parsingBuiltins; // true if parsing built-in symbols/functions - static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2)); // see computeSamplerTypeIndex() + static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2 * 2 * 2)); // see computeSamplerTypeIndex() TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex]; bool afterEOF; TQualifier globalBufferDefaults; From 76d4dfcd51f9b1624b6241a82969c7423aabf82f Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 16 Jun 2016 12:43:23 -0600 Subject: [PATCH 40/48] SPV non-functional: minor readability improvements for texturing. --- SPIRV/GlslangToSpv.cpp | 38 +- SPIRV/SpvBuilder.cpp | 6 +- SPIRV/SpvBuilder.h | 2 +- Test/baseResults/spv.430.vert.out | 3 - Test/baseResults/spv.layoutNested.vert.out | 42 +- Test/baseResults/spv.localAggregates.frag.out | 395 ++++++++---------- .../spv.variableArrayIndex.frag.out | 228 +++++----- 7 files changed, 328 insertions(+), 386 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index e4280a33..39b4ea6e 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -643,9 +643,9 @@ bool HasNonLayoutQualifiers(const glslang::TQualifier& qualifier) { // This should list qualifiers that simultaneous satisfy: // - struct members can inherit from a struct declaration - // - effect decorations on the struct members (note smooth does not, and expecting something like volatile to effect the whole object) + // - affect decorations on the struct members (note smooth does not, and expecting something like volatile to effect the whole object) // - are not part of the offset/st430/etc or row/column-major layout - return qualifier.invariant || qualifier.nopersp || qualifier.flat || qualifier.centroid || qualifier.patch || qualifier.sample || qualifier.hasLocation(); + return qualifier.invariant || qualifier.hasLocation(); } // @@ -1913,8 +1913,10 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangType)); // Add interpolation and auxiliary storage decorations only to top-level members of Input and Output storage classes if (type.getQualifier().storage == glslang::EvqVaryingIn || type.getQualifier().storage == glslang::EvqVaryingOut) { - addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier)); - addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(subQualifier)); + if (type.getBasicType() == glslang::EbtBlock) { + addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier)); + addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(subQualifier)); + } } addMemberDecoration(spvType, member, TranslateInvariantDecoration(subQualifier)); @@ -2606,14 +2608,16 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO ++extraArgs; } else if (sampler.shadow) { std::vector indexes; - int comp; + int dRefComp; if (cracked.proj) - comp = 2; // "The resulting 3rd component of P in the shadow forms is used as Dref" + dRefComp = 2; // "The resulting 3rd component of P in the shadow forms is used as Dref" else - comp = builder.getNumComponents(params.coords) - 1; - indexes.push_back(comp); + dRefComp = builder.getNumComponents(params.coords) - 1; + indexes.push_back(dRefComp); params.Dref = builder.createCompositeExtract(params.coords, builder.getScalarTypeId(builder.getTypeId(params.coords)), indexes); } + + // lod if (cracked.lod) { params.lod = arguments[2]; ++extraArgs; @@ -2621,15 +2625,21 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // we need to invent the default lod for an explicit lod instruction for a non-fragment stage noImplicitLod = true; } + + // multisample if (sampler.ms) { params.sample = arguments[2]; // For MS, "sample" should be specified ++extraArgs; } + + // gradient if (cracked.grad) { params.gradX = arguments[2 + extraArgs]; params.gradY = arguments[3 + extraArgs]; extraArgs += 2; } + + // offset and offsets if (cracked.offset) { params.offset = arguments[2 + extraArgs]; ++extraArgs; @@ -2637,25 +2647,33 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO params.offsets = arguments[2 + extraArgs]; ++extraArgs; } + + // lod clamp if (cracked.lodClamp) { params.lodClamp = arguments[2 + extraArgs]; ++extraArgs; } + + // sparse if (sparse) { params.texelOut = arguments[2 + extraArgs]; ++extraArgs; } + + // bias if (bias) { params.bias = arguments[2 + extraArgs]; ++extraArgs; } + + // gather component if (cracked.gather && ! sampler.shadow) { // default component is 0, if missing, otherwise an argument if (2 + extraArgs < (int)arguments.size()) { - params.comp = arguments[2 + extraArgs]; + params.component = arguments[2 + extraArgs]; ++extraArgs; } else { - params.comp = builder.makeIntConstant(0); + params.component = builder.makeIntConstant(0); } } diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 152a4639..ee9642b4 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -1430,10 +1430,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse, bool explicitLod = false; texArgs[numArgs++] = parameters.sampler; texArgs[numArgs++] = parameters.coords; - if (parameters.Dref) + if (parameters.Dref != NoResult) texArgs[numArgs++] = parameters.Dref; - if (parameters.comp) - texArgs[numArgs++] = parameters.comp; + if (parameters.component != NoResult) + texArgs[numArgs++] = parameters.component; // // Set up the optional arguments diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 01cd6038..4ae28356 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -321,7 +321,7 @@ public: Id gradX; Id gradY; Id sample; - Id comp; + Id component; Id texelOut; Id lodClamp; }; diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out index d5332d25..07dc1a79 100755 --- a/Test/baseResults/spv.430.vert.out +++ b/Test/baseResults/spv.430.vert.out @@ -63,9 +63,6 @@ Linked vertex stage: Decorate 55(sampb2) Binding 5 Decorate 56(sampb4) DescriptorSet 0 Decorate 56(sampb4) Binding 31 - MemberDecorate 60(SS) 0 Flat - MemberDecorate 60(SS) 1 Flat - MemberDecorate 60(SS) 2 Flat Decorate 62(var) Location 0 MemberDecorate 63(MS) 0 Location 17 Decorate 63(MS) Block diff --git a/Test/baseResults/spv.layoutNested.vert.out b/Test/baseResults/spv.layoutNested.vert.out index 4f3d67c1..2d6f559c 100644 --- a/Test/baseResults/spv.layoutNested.vert.out +++ b/Test/baseResults/spv.layoutNested.vert.out @@ -7,12 +7,12 @@ Linked vertex stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 67 +// Id's are bound by 66 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 63 66 + EntryPoint Vertex 4 "main" 62 65 Source GLSL 450 Name 4 "main" Name 14 "S" @@ -82,16 +82,12 @@ Linked vertex stage: MemberName 58(bBt3) 0 "ntcol" MemberName 58(bBt3) 1 "ntrow" Name 60 "bBtn3" - Name 61 "S" - MemberName 61(S) 0 "a" - MemberName 61(S) 1 "b" - MemberName 61(S) 2 "c" - Name 63 "sout" - Name 64 "S" - MemberName 64(S) 0 "a" - MemberName 64(S) 1 "b" - MemberName 64(S) 2 "c" - Name 66 "soutinv" + Name 62 "sout" + Name 63 "S" + MemberName 63(S) 0 "a" + MemberName 63(S) 1 "b" + MemberName 63(S) 2 "c" + Name 65 "soutinv" Decorate 13 ArrayStride 32 MemberDecorate 14(S) 0 Offset 0 MemberDecorate 14(S) 1 ColMajor @@ -166,13 +162,10 @@ Linked vertex stage: Decorate 58(bBt3) BufferBlock Decorate 60(bBtn3) DescriptorSet 1 Decorate 60(bBtn3) Binding 0 - MemberDecorate 61(S) 0 Flat - MemberDecorate 61(S) 1 Flat - MemberDecorate 61(S) 2 Flat - MemberDecorate 64(S) 0 Invariant - MemberDecorate 64(S) 1 Invariant - MemberDecorate 64(S) 2 Invariant - Decorate 66(soutinv) Invariant + MemberDecorate 63(S) 0 Invariant + MemberDecorate 63(S) 1 Invariant + MemberDecorate 63(S) 2 Invariant + Decorate 65(soutinv) Invariant 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -230,12 +223,11 @@ Linked vertex stage: 58(bBt3): TypeStruct 49(Nestor) 54(Nestor) 59: TypePointer Uniform 58(bBt3) 60(bBtn3): 59(ptr) Variable Uniform - 61(S): TypeStruct 8(ivec3) 13 7(int) - 62: TypePointer Output 61(S) - 63(sout): 62(ptr) Variable Output - 64(S): TypeStruct 8(ivec3) 13 7(int) - 65: TypePointer Output 64(S) - 66(soutinv): 65(ptr) Variable Output + 61: TypePointer Output 29(S) + 62(sout): 61(ptr) Variable Output + 63(S): TypeStruct 8(ivec3) 13 7(int) + 64: TypePointer Output 63(S) + 65(soutinv): 64(ptr) Variable Output 4(main): 2 Function None 3 5: Label Return diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out index cd8afedc..2d464de5 100755 --- a/Test/baseResults/spv.localAggregates.frag.out +++ b/Test/baseResults/spv.localAggregates.frag.out @@ -7,12 +7,12 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 143 +// Id's are bound by 136 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 18 43 93 101 111 138 142 + EntryPoint Fragment 4 "main" 15 40 90 98 108 134 135 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" @@ -25,59 +25,27 @@ Linked fragment stage: MemberName 10(s2) 2 "s1_1" MemberName 10(s2) 3 "bleh" Name 12 "locals2" - Name 13 "s1" - MemberName 13(s1) 0 "i" - MemberName 13(s1) 1 "f" - Name 14 "s2" - MemberName 14(s2) 0 "i" - MemberName 14(s2) 1 "f" - MemberName 14(s2) 2 "s1_1" - MemberName 14(s2) 3 "bleh" - Name 15 "s1" - MemberName 15(s1) 0 "i" - MemberName 15(s1) 1 "f" - Name 16 "s3" - MemberName 16(s3) 0 "s2_1" - MemberName 16(s3) 1 "i" - MemberName 16(s3) 2 "f" - MemberName 16(s3) 3 "s1_1" - Name 18 "foo3" - Name 39 "localFArray" - Name 43 "coord" - Name 52 "localIArray" - Name 71 "x" - Name 73 "localArray" - Name 78 "i" - Name 87 "a" - Name 93 "condition" - Name 101 "color" - Name 111 "gl_FragColor" - Name 131 "samp2D" - Name 136 "s1" - MemberName 136(s1) 0 "i" - MemberName 136(s1) 1 "f" - Name 138 "foo" - Name 139 "s1" - MemberName 139(s1) 0 "i" - MemberName 139(s1) 1 "f" - Name 140 "s2" - MemberName 140(s2) 0 "i" - MemberName 140(s2) 1 "f" - MemberName 140(s2) 2 "s1_1" - MemberName 140(s2) 3 "bleh" - Name 142 "foo2" - MemberDecorate 16(s3) 0 Flat - MemberDecorate 16(s3) 1 Flat - MemberDecorate 16(s3) 2 Flat - MemberDecorate 16(s3) 3 Flat - Decorate 93(condition) Flat - Decorate 131(samp2D) DescriptorSet 0 - MemberDecorate 136(s1) 0 Flat - MemberDecorate 136(s1) 1 Flat - MemberDecorate 140(s2) 0 Flat - MemberDecorate 140(s2) 1 Flat - MemberDecorate 140(s2) 2 Flat - MemberDecorate 140(s2) 3 Flat + Name 13 "s3" + MemberName 13(s3) 0 "s2_1" + MemberName 13(s3) 1 "i" + MemberName 13(s3) 2 "f" + MemberName 13(s3) 3 "s1_1" + Name 15 "foo3" + Name 36 "localFArray" + Name 40 "coord" + Name 49 "localIArray" + Name 68 "x" + Name 70 "localArray" + Name 75 "i" + Name 84 "a" + Name 90 "condition" + Name 98 "color" + Name 108 "gl_FragColor" + Name 128 "samp2D" + Name 134 "foo" + Name 135 "foo2" + Decorate 90(condition) Flat + Decorate 128(samp2D) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -86,171 +54,164 @@ Linked fragment stage: 9: TypeVector 7(float) 4 10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4) 11: TypePointer Function 10(s2) - 13(s1): TypeStruct 6(int) 7(float) - 14(s2): TypeStruct 6(int) 7(float) 13(s1) 9(fvec4) - 15(s1): TypeStruct 6(int) 7(float) - 16(s3): TypeStruct 14(s2) 6(int) 7(float) 15(s1) - 17: TypePointer Input 16(s3) - 18(foo3): 17(ptr) Variable Input - 19: 6(int) Constant 0 - 20: TypePointer Input 14(s2) - 23: TypePointer Input 6(int) - 26: TypeBool - 30: 6(int) Constant 2 - 31: 6(int) Constant 1 - 32: 7(float) Constant 1065353216 - 33: TypePointer Function 7(float) - 35: TypeInt 32 0 - 36: 35(int) Constant 16 - 37: TypeArray 7(float) 36 - 38: TypePointer Function 37 - 40: 6(int) Constant 4 - 41: TypeVector 7(float) 2 - 42: TypePointer Input 41(fvec2) - 43(coord): 42(ptr) Variable Input - 44: 35(int) Constant 0 - 45: TypePointer Input 7(float) - 49: 35(int) Constant 8 - 50: TypeArray 6(int) 49 - 51: TypePointer Function 50 - 55: TypePointer Function 6(int) - 72: 6(int) Constant 5 - 85: 6(int) Constant 16 - 89: 7(float) Constant 0 - 93(condition): 23(ptr) Variable Input - 99: 6(int) Constant 3 - 100: TypePointer Input 9(fvec4) - 101(color): 100(ptr) Variable Input - 103: TypePointer Function 9(fvec4) - 105: 35(int) Constant 1 - 108: 35(int) Constant 2 - 110: TypePointer Output 9(fvec4) -111(gl_FragColor): 110(ptr) Variable Output - 128: TypeImage 7(float) 2D sampled format:Unknown - 129: TypeSampledImage 128 - 130: TypePointer UniformConstant 129 - 131(samp2D): 130(ptr) Variable UniformConstant - 136(s1): TypeStruct 6(int) 7(float) - 137: TypePointer Input 136(s1) - 138(foo): 137(ptr) Variable Input - 139(s1): TypeStruct 6(int) 7(float) - 140(s2): TypeStruct 6(int) 7(float) 139(s1) 9(fvec4) - 141: TypePointer Input 140(s2) - 142(foo2): 141(ptr) Variable Input + 13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1) + 14: TypePointer Input 13(s3) + 15(foo3): 14(ptr) Variable Input + 16: 6(int) Constant 0 + 17: TypePointer Input 10(s2) + 20: TypePointer Input 6(int) + 23: TypeBool + 27: 6(int) Constant 2 + 28: 6(int) Constant 1 + 29: 7(float) Constant 1065353216 + 30: TypePointer Function 7(float) + 32: TypeInt 32 0 + 33: 32(int) Constant 16 + 34: TypeArray 7(float) 33 + 35: TypePointer Function 34 + 37: 6(int) Constant 4 + 38: TypeVector 7(float) 2 + 39: TypePointer Input 38(fvec2) + 40(coord): 39(ptr) Variable Input + 41: 32(int) Constant 0 + 42: TypePointer Input 7(float) + 46: 32(int) Constant 8 + 47: TypeArray 6(int) 46 + 48: TypePointer Function 47 + 52: TypePointer Function 6(int) + 69: 6(int) Constant 5 + 82: 6(int) Constant 16 + 86: 7(float) Constant 0 + 90(condition): 20(ptr) Variable Input + 96: 6(int) Constant 3 + 97: TypePointer Input 9(fvec4) + 98(color): 97(ptr) Variable Input + 100: TypePointer Function 9(fvec4) + 102: 32(int) Constant 1 + 105: 32(int) Constant 2 + 107: TypePointer Output 9(fvec4) +108(gl_FragColor): 107(ptr) Variable Output + 125: TypeImage 7(float) 2D sampled format:Unknown + 126: TypeSampledImage 125 + 127: TypePointer UniformConstant 126 + 128(samp2D): 127(ptr) Variable UniformConstant + 133: TypePointer Input 8(s1) + 134(foo): 133(ptr) Variable Input + 135(foo2): 17(ptr) Variable Input 4(main): 2 Function None 3 5: Label 12(locals2): 11(ptr) Variable Function - 39(localFArray): 38(ptr) Variable Function - 52(localIArray): 51(ptr) Variable Function - 71(x): 55(ptr) Variable Function - 73(localArray): 38(ptr) Variable Function - 78(i): 55(ptr) Variable Function - 87(a): 38(ptr) Variable Function - 21: 20(ptr) AccessChain 18(foo3) 19 - 22: 14(s2) Load 21 - Store 12(locals2) 22 - 24: 23(ptr) AccessChain 18(foo3) 19 19 - 25: 6(int) Load 24 - 27: 26(bool) SGreaterThan 25 19 - SelectionMerge 29 None - BranchConditional 27 28 57 - 28: Label - 34: 33(ptr) AccessChain 12(locals2) 30 31 - Store 34 32 - 46: 45(ptr) AccessChain 43(coord) 44 - 47: 7(float) Load 46 - 48: 33(ptr) AccessChain 39(localFArray) 40 - Store 48 47 - 53: 23(ptr) AccessChain 18(foo3) 19 19 - 54: 6(int) Load 53 - 56: 55(ptr) AccessChain 52(localIArray) 30 - Store 56 54 - Branch 29 - 57: Label - 58: 45(ptr) AccessChain 43(coord) 44 - 59: 7(float) Load 58 - 60: 33(ptr) AccessChain 12(locals2) 30 31 - Store 60 59 - 61: 33(ptr) AccessChain 39(localFArray) 40 - Store 61 32 - 62: 55(ptr) AccessChain 52(localIArray) 30 - Store 62 19 - Branch 29 - 29: Label - 63: 55(ptr) AccessChain 52(localIArray) 30 - 64: 6(int) Load 63 - 65: 26(bool) IEqual 64 19 - SelectionMerge 67 None - BranchConditional 65 66 67 - 66: Label - 68: 33(ptr) AccessChain 39(localFArray) 40 - 69: 7(float) Load 68 - 70: 7(float) FAdd 69 32 - Store 68 70 - Branch 67 - 67: Label - Store 71(x) 72 - 74: 6(int) Load 71(x) - 75: 45(ptr) AccessChain 43(coord) 44 - 76: 7(float) Load 75 - 77: 33(ptr) AccessChain 73(localArray) 74 - Store 77 76 - Store 78(i) 19 - Branch 79 - 79: Label - LoopMerge 81 82 None - Branch 83 - 83: Label - 84: 6(int) Load 78(i) - 86: 26(bool) SLessThan 84 85 - BranchConditional 86 80 81 - 80: Label - 88: 6(int) Load 78(i) - 90: 33(ptr) AccessChain 87(a) 88 - Store 90 89 - Branch 82 - 82: Label - 91: 6(int) Load 78(i) - 92: 6(int) IAdd 91 31 - Store 78(i) 92 + 36(localFArray): 35(ptr) Variable Function + 49(localIArray): 48(ptr) Variable Function + 68(x): 52(ptr) Variable Function + 70(localArray): 35(ptr) Variable Function + 75(i): 52(ptr) Variable Function + 84(a): 35(ptr) Variable Function + 18: 17(ptr) AccessChain 15(foo3) 16 + 19: 10(s2) Load 18 + Store 12(locals2) 19 + 21: 20(ptr) AccessChain 15(foo3) 16 16 + 22: 6(int) Load 21 + 24: 23(bool) SGreaterThan 22 16 + SelectionMerge 26 None + BranchConditional 24 25 54 + 25: Label + 31: 30(ptr) AccessChain 12(locals2) 27 28 + Store 31 29 + 43: 42(ptr) AccessChain 40(coord) 41 + 44: 7(float) Load 43 + 45: 30(ptr) AccessChain 36(localFArray) 37 + Store 45 44 + 50: 20(ptr) AccessChain 15(foo3) 16 16 + 51: 6(int) Load 50 + 53: 52(ptr) AccessChain 49(localIArray) 27 + Store 53 51 + Branch 26 + 54: Label + 55: 42(ptr) AccessChain 40(coord) 41 + 56: 7(float) Load 55 + 57: 30(ptr) AccessChain 12(locals2) 27 28 + Store 57 56 + 58: 30(ptr) AccessChain 36(localFArray) 37 + Store 58 29 + 59: 52(ptr) AccessChain 49(localIArray) 27 + Store 59 16 + Branch 26 + 26: Label + 60: 52(ptr) AccessChain 49(localIArray) 27 + 61: 6(int) Load 60 + 62: 23(bool) IEqual 61 16 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + 65: 30(ptr) AccessChain 36(localFArray) 37 + 66: 7(float) Load 65 + 67: 7(float) FAdd 66 29 + Store 65 67 + Branch 64 + 64: Label + Store 68(x) 69 + 71: 6(int) Load 68(x) + 72: 42(ptr) AccessChain 40(coord) 41 + 73: 7(float) Load 72 + 74: 30(ptr) AccessChain 70(localArray) 71 + Store 74 73 + Store 75(i) 16 + Branch 76 + 76: Label + LoopMerge 78 79 None + Branch 80 + 80: Label + 81: 6(int) Load 75(i) + 83: 23(bool) SLessThan 81 82 + BranchConditional 83 77 78 + 77: Label + 85: 6(int) Load 75(i) + 87: 30(ptr) AccessChain 84(a) 85 + Store 87 86 Branch 79 - 81: Label - 94: 6(int) Load 93(condition) - 95: 26(bool) IEqual 94 31 - SelectionMerge 97 None - BranchConditional 95 96 97 - 96: Label - 98: 37 Load 73(localArray) - Store 87(a) 98 - Branch 97 - 97: Label - 102: 9(fvec4) Load 101(color) - 104: 103(ptr) AccessChain 12(locals2) 99 - Store 104 102 - 106: 45(ptr) AccessChain 43(coord) 105 - 107: 7(float) Load 106 - 109: 33(ptr) AccessChain 12(locals2) 99 108 - Store 109 107 - 112: 103(ptr) AccessChain 12(locals2) 99 - 113: 9(fvec4) Load 112 - 114: 33(ptr) AccessChain 39(localFArray) 40 - 115: 7(float) Load 114 - 116: 33(ptr) AccessChain 12(locals2) 30 31 - 117: 7(float) Load 116 - 118: 7(float) FAdd 115 117 - 119: 6(int) Load 71(x) - 120: 33(ptr) AccessChain 73(localArray) 119 - 121: 7(float) Load 120 - 122: 7(float) FAdd 118 121 - 123: 6(int) Load 71(x) - 124: 33(ptr) AccessChain 87(a) 123 - 125: 7(float) Load 124 - 126: 7(float) FAdd 122 125 - 127: 9(fvec4) VectorTimesScalar 113 126 - 132: 129 Load 131(samp2D) - 133: 41(fvec2) Load 43(coord) - 134: 9(fvec4) ImageSampleImplicitLod 132 133 - 135: 9(fvec4) FMul 127 134 - Store 111(gl_FragColor) 135 + 79: Label + 88: 6(int) Load 75(i) + 89: 6(int) IAdd 88 28 + Store 75(i) 89 + Branch 76 + 78: Label + 91: 6(int) Load 90(condition) + 92: 23(bool) IEqual 91 28 + SelectionMerge 94 None + BranchConditional 92 93 94 + 93: Label + 95: 34 Load 70(localArray) + Store 84(a) 95 + Branch 94 + 94: Label + 99: 9(fvec4) Load 98(color) + 101: 100(ptr) AccessChain 12(locals2) 96 + Store 101 99 + 103: 42(ptr) AccessChain 40(coord) 102 + 104: 7(float) Load 103 + 106: 30(ptr) AccessChain 12(locals2) 96 105 + Store 106 104 + 109: 100(ptr) AccessChain 12(locals2) 96 + 110: 9(fvec4) Load 109 + 111: 30(ptr) AccessChain 36(localFArray) 37 + 112: 7(float) Load 111 + 113: 30(ptr) AccessChain 12(locals2) 27 28 + 114: 7(float) Load 113 + 115: 7(float) FAdd 112 114 + 116: 6(int) Load 68(x) + 117: 30(ptr) AccessChain 70(localArray) 116 + 118: 7(float) Load 117 + 119: 7(float) FAdd 115 118 + 120: 6(int) Load 68(x) + 121: 30(ptr) AccessChain 84(a) 120 + 122: 7(float) Load 121 + 123: 7(float) FAdd 119 122 + 124: 9(fvec4) VectorTimesScalar 110 123 + 129: 126 Load 128(samp2D) + 130: 38(fvec2) Load 40(coord) + 131: 9(fvec4) ImageSampleImplicitLod 129 130 + 132: 9(fvec4) FMul 124 131 + Store 108(gl_FragColor) 132 Return FunctionEnd diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out index 43df45f5..b84b5bac 100755 --- a/Test/baseResults/spv.variableArrayIndex.frag.out +++ b/Test/baseResults/spv.variableArrayIndex.frag.out @@ -7,12 +7,12 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 97 +// Id's are bound by 93 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 10 21 37 40 58 67 + EntryPoint Fragment 4 "main" 10 20 34 36 54 63 ExecutionMode 4 OriginUpperLeft Source GLSL 400 Name 4 "main" @@ -25,43 +25,21 @@ Linked fragment stage: MemberName 14(lunarStruct2) 0 "i" MemberName 14(lunarStruct2) 1 "f" MemberName 14(lunarStruct2) 2 "s1_1" - Name 18 "lunarStruct1" - MemberName 18(lunarStruct1) 0 "i" - MemberName 18(lunarStruct1) 1 "f" - 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 32 "lunarStruct1" - MemberName 32(lunarStruct1) 0 "i" - MemberName 32(lunarStruct1) 1 "f" - Name 33 "lunarStruct2" - MemberName 33(lunarStruct2) 0 "i" - MemberName 33(lunarStruct2) 1 "f" - MemberName 33(lunarStruct2) 2 "s1_1" - Name 37 "foo2" - Name 38 "lunarStruct1" - MemberName 38(lunarStruct1) 0 "i" - MemberName 38(lunarStruct1) 1 "f" - Name 40 "foo" - Name 58 "gl_FragColor" - Name 63 "samp2D" - Name 67 "coord" - Name 73 "constructed" + 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 "samp2D" + Name 63 "coord" + Name 69 "constructed" Decorate 10(Count) Flat - MemberDecorate 19(lunarStruct3) 0 Flat - MemberDecorate 19(lunarStruct3) 1 Flat - MemberDecorate 19(lunarStruct3) 2 Flat - MemberDecorate 19(lunarStruct3) 3 Flat - MemberDecorate 33(lunarStruct2) 0 Flat - MemberDecorate 33(lunarStruct2) 1 Flat - MemberDecorate 33(lunarStruct2) 2 Flat - MemberDecorate 38(lunarStruct1) 0 Flat - MemberDecorate 38(lunarStruct1) 1 Flat - Decorate 63(samp2D) DescriptorSet 0 + Decorate 59(samp2D) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -74,99 +52,95 @@ Linked fragment stage: 15: TypeInt 32 0 16: 15(int) Constant 3 17: TypeArray 14(lunarStruct2) 16 -18(lunarStruct1): TypeStruct 6(int) 12(float) -19(lunarStruct3): TypeStruct 17 6(int) 12(float) 18(lunarStruct1) - 20: TypePointer Input 19(lunarStruct3) - 21(foo3): 20(ptr) Variable Input - 22: 6(int) Constant 0 - 23: 6(int) Constant 1 - 26: TypeBool - 30: TypePointer Function 12(float) -32(lunarStruct1): TypeStruct 6(int) 12(float) -33(lunarStruct2): TypeStruct 6(int) 12(float) 32(lunarStruct1) - 34: 15(int) Constant 5 - 35: TypeArray 33(lunarStruct2) 34 - 36: TypePointer Input 35 - 37(foo2): 36(ptr) Variable Input -38(lunarStruct1): TypeStruct 6(int) 12(float) - 39: TypePointer Input 38(lunarStruct1) - 40(foo): 39(ptr) Variable Input - 45: 6(int) Constant 2 - 50: TypePointer Input 12(float) - 56: TypeVector 12(float) 4 - 57: TypePointer Output 56(fvec4) -58(gl_FragColor): 57(ptr) Variable Output - 60: TypeImage 12(float) 2D sampled format:Unknown - 61: TypeSampledImage 60 - 62: TypePointer UniformConstant 61 - 63(samp2D): 62(ptr) Variable UniformConstant - 65: TypeVector 12(float) 2 - 66: TypePointer Input 65(fvec2) - 67(coord): 66(ptr) Variable Input - 71: TypeArray 65(fvec2) 16 - 72: TypePointer Function 71 - 77: 12(float) Constant 1065353216 - 78: 12(float) Constant 1073741824 - 79: 65(fvec2) ConstantComposite 77 78 - 83: TypePointer Function 65(fvec2) +18(lunarStruct3): TypeStruct 17 6(int) 12(float) 13(lunarStruct1) + 19: TypePointer Input 18(lunarStruct3) + 20(foo3): 19(ptr) Variable Input + 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 Input 32 + 34(foo2): 33(ptr) Variable Input + 35: TypePointer Input 13(lunarStruct1) + 36(foo): 35(ptr) Variable Input + 41: 6(int) Constant 2 + 46: TypePointer Input 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(samp2D): 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 8(iLocal): 7(ptr) Variable Function - 31(scale): 30(ptr) Variable Function - 73(constructed): 72(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 - 24: 9(ptr) AccessChain 21(foo3) 22 23 22 - 25: 6(int) Load 24 - 27: 26(bool) SGreaterThan 25 22 - SelectionMerge 29 None - BranchConditional 27 28 53 - 28: Label - 41: 9(ptr) AccessChain 40(foo) 22 - 42: 6(int) Load 41 - 43: 9(ptr) AccessChain 21(foo3) 22 42 22 - 44: 6(int) Load 43 - 46: 6(int) IAdd 44 45 - 47: 6(int) Load 8(iLocal) - 48: 6(int) IAdd 47 23 - Store 8(iLocal) 48 - 49: 6(int) IAdd 46 48 - 51: 50(ptr) AccessChain 37(foo2) 49 45 23 - 52: 12(float) Load 51 - Store 31(scale) 52 - Branch 29 - 53: Label - 54: 50(ptr) AccessChain 21(foo3) 22 22 45 23 - 55: 12(float) Load 54 - Store 31(scale) 55 - Branch 29 - 29: Label - 59: 12(float) Load 31(scale) - 64: 61 Load 63(samp2D) - 68: 65(fvec2) Load 67(coord) - 69: 56(fvec4) ImageSampleImplicitLod 64 68 - 70: 56(fvec4) VectorTimesScalar 69 59 - Store 58(gl_FragColor) 70 - 74: 65(fvec2) Load 67(coord) - 75: 12(float) Load 31(scale) - 76: 65(fvec2) CompositeConstruct 75 75 - 80: 71 CompositeConstruct 74 76 79 - Store 73(constructed) 80 - 81: 9(ptr) AccessChain 40(foo) 22 - 82: 6(int) Load 81 - 84: 83(ptr) AccessChain 73(constructed) 82 - 85: 65(fvec2) Load 84 - 86: 9(ptr) AccessChain 40(foo) 22 - 87: 6(int) Load 86 - 88: 83(ptr) AccessChain 73(constructed) 87 - 89: 65(fvec2) Load 88 - 90: 12(float) CompositeExtract 85 0 - 91: 12(float) CompositeExtract 85 1 - 92: 12(float) CompositeExtract 89 0 - 93: 12(float) CompositeExtract 89 1 - 94: 56(fvec4) CompositeConstruct 90 91 92 93 - 95: 56(fvec4) Load 58(gl_FragColor) - 96: 56(fvec4) FAdd 95 94 - Store 58(gl_FragColor) 96 + 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(samp2D) + 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 From 65336488a8bfd53b09ee9b58cc2238c074efeb94 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 16 Jun 2016 14:06:26 -0600 Subject: [PATCH 41/48] SPV: projective texturing: move the project coordinate. SPV doesn't allow gaps in the components of the texturing coordinate. It also removes the shadow reference. So, close up the components so all used components are together. --- SPIRV/GlslangToSpv.cpp | 24 + Test/baseResults/spv.400.frag.out | 2654 +++++++++++----------- Test/baseResults/spv.newTexture.frag.out | 280 +-- Test/baseResults/spv.texture.frag.out | 560 ++--- Test/baseResults/spv.texture.vert.out | 248 +- 5 files changed, 1908 insertions(+), 1858 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 39b4ea6e..b41afc59 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -2677,6 +2677,30 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO } } + // projective component (might not to move) + // GLSL: "The texture coordinates consumed from P, not including the last component of P, + // are divided by the last component of P." + // SPIR-V: "... (u [, v] [, w], q)... It may be a vector larger than needed, but all + // unused components will appear after all used components." + if (cracked.proj) { + int projSourceComp = builder.getNumComponents(params.coords) - 1; + int projTargetComp; + switch (sampler.dim) { + case glslang::Esd1D: projTargetComp = 1; break; + case glslang::Esd2D: projTargetComp = 2; break; + case glslang::EsdRect: projTargetComp = 2; break; + default: projTargetComp = projSourceComp; break; + } + // copy the projective coordinate if we have to + if (projTargetComp != projSourceComp) { + spv::Id projComp = builder.createCompositeExtract(params.coords, + builder.getScalarTypeId(builder.getTypeId(params.coords)), + projSourceComp); + params.coords = builder.createCompositeInsert(projComp, params.coords, + builder.getTypeId(params.coords), projTargetComp); + } + } + return builder.createTextureCall(precision, convertGlslangToSpvType(node->getType()), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params); } diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out index 4af713c4..f06b0fcd 100644 --- a/Test/baseResults/spv.400.frag.out +++ b/Test/baseResults/spv.400.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1112 +// Id's are bound by 1114 Capability Shader Capability Float64 @@ -16,7 +16,7 @@ Linked fragment stage: Capability SampledRect 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 13 1025 1031 1036 1048 1074 1095 1097 1103 1105 + EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 ExecutionMode 4 OriginUpperLeft Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" @@ -25,45 +25,45 @@ Linked fragment stage: Name 8 "doubles(" Name 13 "outp" Name 17 "u2drs" - Name 39 "doublev" - Name 43 "dvec2v" - Name 48 "dvec3v" - Name 53 "dvec4v" - Name 428 "boolv" - Name 437 "bvec2v" - Name 446 "bvec3v" - Name 455 "bvec4v" - Name 737 "dmat2v" - Name 743 "dmat3v" - Name 749 "dmat4v" - Name 755 "dmat2x3v" - Name 761 "dmat3x2v" - Name 767 "dmat2x4v" - Name 773 "dmat4x2v" - Name 779 "dmat3x4v" - Name 785 "dmat4x3v" - Name 1017 "v" - Name 1023 "arrayedSampler" - Name 1025 "i" - Name 1031 "c2D" - Name 1036 "gl_ClipDistance" - Name 1048 "uoutp" - Name 1052 "samp2dr" - Name 1074 "ioutp" - Name 1078 "isamp2DA" - Name 1095 "gl_FragCoord" - Name 1097 "vl2" - Name 1103 "uo" - Name 1105 "u" + Name 41 "doublev" + Name 45 "dvec2v" + Name 50 "dvec3v" + Name 55 "dvec4v" + Name 430 "boolv" + Name 439 "bvec2v" + Name 448 "bvec3v" + Name 457 "bvec4v" + Name 739 "dmat2v" + Name 745 "dmat3v" + Name 751 "dmat4v" + Name 757 "dmat2x3v" + Name 763 "dmat3x2v" + Name 769 "dmat2x4v" + Name 775 "dmat4x2v" + Name 781 "dmat3x4v" + Name 787 "dmat4x3v" + Name 1019 "v" + Name 1025 "arrayedSampler" + Name 1027 "i" + Name 1033 "c2D" + Name 1038 "gl_ClipDistance" + Name 1050 "uoutp" + Name 1054 "samp2dr" + Name 1076 "ioutp" + Name 1080 "isamp2DA" + Name 1097 "gl_FragCoord" + Name 1099 "vl2" + Name 1105 "uo" + Name 1107 "u" Decorate 17(u2drs) DescriptorSet 0 - Decorate 1023(arrayedSampler) DescriptorSet 0 - Decorate 1025(i) Flat - Decorate 1036(gl_ClipDistance) BuiltIn ClipDistance - Decorate 1052(samp2dr) DescriptorSet 0 - Decorate 1078(isamp2DA) DescriptorSet 0 - Decorate 1095(gl_FragCoord) BuiltIn FragCoord - Decorate 1097(vl2) Location 6 - Decorate 1105(u) Flat + Decorate 1025(arrayedSampler) DescriptorSet 0 + Decorate 1027(i) Flat + Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance + Decorate 1054(samp2dr) DescriptorSet 0 + Decorate 1080(isamp2DA) DescriptorSet 0 + Decorate 1097(gl_FragCoord) BuiltIn FragCoord + Decorate 1099(vl2) Location 6 + Decorate 1107(u) Flat 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -82,166 +82,166 @@ Linked fragment stage: 25: 23(int) Constant 3 26: 23(int) Constant 4 27: 24(ivec2) ConstantComposite 25 26 - 30: TypeInt 32 0 - 31: 30(int) Constant 0 - 32: TypePointer Output 10(float) - 37: TypeFloat 64 - 38: TypePointer Function 37(float) - 40: 37(float) Constant 2507418074 1073430332 - 41: TypeVector 37(float) 2 - 42: TypePointer Function 41(fvec2) - 44: 37(float) Constant 796182188 1073367658 - 45: 41(fvec2) ConstantComposite 44 44 - 46: TypeVector 37(float) 3 - 47: TypePointer Function 46(fvec3) - 49: 37(float) Constant 1719614413 1073127582 - 50: 46(fvec3) ConstantComposite 49 49 49 - 51: TypeVector 37(float) 4 - 52: TypePointer Function 51(fvec4) - 426: TypeBool - 427: TypePointer Function 426(bool) - 435: TypeVector 426(bool) 2 - 436: TypePointer Function 435(bvec2) - 444: TypeVector 426(bool) 3 - 445: TypePointer Function 444(bvec3) - 453: TypeVector 426(bool) 4 - 454: TypePointer Function 453(bvec4) - 561: 426(bool) ConstantFalse - 570: 435(bvec2) ConstantComposite 561 561 - 579: 444(bvec3) ConstantComposite 561 561 561 - 588: 453(bvec4) ConstantComposite 561 561 561 561 - 735: TypeMatrix 41(fvec2) 2 - 736: TypePointer Function 735 - 741: TypeMatrix 46(fvec3) 3 - 742: TypePointer Function 741 - 747: TypeMatrix 51(fvec4) 4 - 748: TypePointer Function 747 - 753: TypeMatrix 46(fvec3) 2 - 754: TypePointer Function 753 - 759: TypeMatrix 41(fvec2) 3 - 760: TypePointer Function 759 - 765: TypeMatrix 51(fvec4) 2 - 766: TypePointer Function 765 - 771: TypeMatrix 41(fvec2) 4 - 772: TypePointer Function 771 - 777: TypeMatrix 51(fvec4) 3 - 778: TypePointer Function 777 - 783: TypeMatrix 46(fvec3) 4 - 784: TypePointer Function 783 - 952: 30(int) Constant 1 - 956: 30(int) Constant 2 - 960: 30(int) Constant 3 - 964: 23(int) Constant 1 - 968: 23(int) Constant 2 - 994: 10(float) Constant 1065353216 - 1016: TypePointer Function 11(fvec4) - 1018: TypeImage 10(float) 2D sampled format:Unknown - 1019: TypeSampledImage 1018 - 1020: 30(int) Constant 5 - 1021: TypeArray 1019 1020 - 1022: TypePointer UniformConstant 1021 -1023(arrayedSampler): 1022(ptr) Variable UniformConstant - 1024: TypePointer Input 23(int) - 1025(i): 1024(ptr) Variable Input - 1027: TypePointer UniformConstant 1019 - 1030: TypePointer Input 20(fvec2) - 1031(c2D): 1030(ptr) Variable Input - 1034: TypeArray 10(float) 956 - 1035: TypePointer Input 1034 -1036(gl_ClipDistance): 1035(ptr) Variable Input - 1037: TypePointer Input 10(float) - 1041: TypeVector 10(float) 3 - 1046: TypeVector 30(int) 4 - 1047: TypePointer Output 1046(ivec4) - 1048(uoutp): 1047(ptr) Variable Output - 1049: TypeImage 30(int) Rect sampled format:Unknown - 1050: TypeSampledImage 1049 - 1051: TypePointer UniformConstant 1050 - 1052(samp2dr): 1051(ptr) Variable UniformConstant - 1055: 30(int) Constant 4 - 1056: TypeArray 24(ivec2) 1055 - 1057: 24(ivec2) ConstantComposite 964 968 - 1058: 23(int) Constant 15 - 1059: 23(int) Constant 16 - 1060: 24(ivec2) ConstantComposite 1058 1059 - 1061: 23(int) Constant 4294967294 - 1062: 23(int) Constant 0 - 1063: 24(ivec2) ConstantComposite 1061 1062 - 1064: 1056 ConstantComposite 1057 27 1060 1063 - 1072: TypeVector 23(int) 4 - 1073: TypePointer Output 1072(ivec4) - 1074(ioutp): 1073(ptr) Variable Output - 1075: TypeImage 23(int) 2D array sampled format:Unknown - 1076: TypeSampledImage 1075 - 1077: TypePointer UniformConstant 1076 - 1078(isamp2DA): 1077(ptr) Variable UniformConstant - 1080: 10(float) Constant 1036831949 - 1081: 1041(fvec3) ConstantComposite 1080 1080 1080 - 1082: 24(ivec2) ConstantComposite 964 964 - 1094: TypePointer Input 11(fvec4) -1095(gl_FragCoord): 1094(ptr) Variable Input - 1097(vl2): 1094(ptr) Variable Input - 1102: TypePointer Output 30(int) - 1103(uo): 1102(ptr) Variable Output - 1104: TypePointer Input 30(int) - 1105(u): 1104(ptr) Variable Input + 32: TypeInt 32 0 + 33: 32(int) Constant 0 + 34: TypePointer Output 10(float) + 39: TypeFloat 64 + 40: TypePointer Function 39(float) + 42: 39(float) Constant 2507418074 1073430332 + 43: TypeVector 39(float) 2 + 44: TypePointer Function 43(fvec2) + 46: 39(float) Constant 796182188 1073367658 + 47: 43(fvec2) ConstantComposite 46 46 + 48: TypeVector 39(float) 3 + 49: TypePointer Function 48(fvec3) + 51: 39(float) Constant 1719614413 1073127582 + 52: 48(fvec3) ConstantComposite 51 51 51 + 53: TypeVector 39(float) 4 + 54: TypePointer Function 53(fvec4) + 428: TypeBool + 429: TypePointer Function 428(bool) + 437: TypeVector 428(bool) 2 + 438: TypePointer Function 437(bvec2) + 446: TypeVector 428(bool) 3 + 447: TypePointer Function 446(bvec3) + 455: TypeVector 428(bool) 4 + 456: TypePointer Function 455(bvec4) + 563: 428(bool) ConstantFalse + 572: 437(bvec2) ConstantComposite 563 563 + 581: 446(bvec3) ConstantComposite 563 563 563 + 590: 455(bvec4) ConstantComposite 563 563 563 563 + 737: TypeMatrix 43(fvec2) 2 + 738: TypePointer Function 737 + 743: TypeMatrix 48(fvec3) 3 + 744: TypePointer Function 743 + 749: TypeMatrix 53(fvec4) 4 + 750: TypePointer Function 749 + 755: TypeMatrix 48(fvec3) 2 + 756: TypePointer Function 755 + 761: TypeMatrix 43(fvec2) 3 + 762: TypePointer Function 761 + 767: TypeMatrix 53(fvec4) 2 + 768: TypePointer Function 767 + 773: TypeMatrix 43(fvec2) 4 + 774: TypePointer Function 773 + 779: TypeMatrix 53(fvec4) 3 + 780: TypePointer Function 779 + 785: TypeMatrix 48(fvec3) 4 + 786: TypePointer Function 785 + 954: 32(int) Constant 1 + 958: 32(int) Constant 2 + 962: 32(int) Constant 3 + 966: 23(int) Constant 1 + 970: 23(int) Constant 2 + 996: 10(float) Constant 1065353216 + 1018: TypePointer Function 11(fvec4) + 1020: TypeImage 10(float) 2D sampled format:Unknown + 1021: TypeSampledImage 1020 + 1022: 32(int) Constant 5 + 1023: TypeArray 1021 1022 + 1024: TypePointer UniformConstant 1023 +1025(arrayedSampler): 1024(ptr) Variable UniformConstant + 1026: TypePointer Input 23(int) + 1027(i): 1026(ptr) Variable Input + 1029: TypePointer UniformConstant 1021 + 1032: TypePointer Input 20(fvec2) + 1033(c2D): 1032(ptr) Variable Input + 1036: TypeArray 10(float) 958 + 1037: TypePointer Input 1036 +1038(gl_ClipDistance): 1037(ptr) Variable Input + 1039: TypePointer Input 10(float) + 1043: TypeVector 10(float) 3 + 1048: TypeVector 32(int) 4 + 1049: TypePointer Output 1048(ivec4) + 1050(uoutp): 1049(ptr) Variable Output + 1051: TypeImage 32(int) Rect sampled format:Unknown + 1052: TypeSampledImage 1051 + 1053: TypePointer UniformConstant 1052 + 1054(samp2dr): 1053(ptr) Variable UniformConstant + 1057: 32(int) Constant 4 + 1058: TypeArray 24(ivec2) 1057 + 1059: 24(ivec2) ConstantComposite 966 970 + 1060: 23(int) Constant 15 + 1061: 23(int) Constant 16 + 1062: 24(ivec2) ConstantComposite 1060 1061 + 1063: 23(int) Constant 4294967294 + 1064: 23(int) Constant 0 + 1065: 24(ivec2) ConstantComposite 1063 1064 + 1066: 1058 ConstantComposite 1059 27 1062 1065 + 1074: TypeVector 23(int) 4 + 1075: TypePointer Output 1074(ivec4) + 1076(ioutp): 1075(ptr) Variable Output + 1077: TypeImage 23(int) 2D array sampled format:Unknown + 1078: TypeSampledImage 1077 + 1079: TypePointer UniformConstant 1078 + 1080(isamp2DA): 1079(ptr) Variable UniformConstant + 1082: 10(float) Constant 1036831949 + 1083: 1043(fvec3) ConstantComposite 1082 1082 1082 + 1084: 24(ivec2) ConstantComposite 966 966 + 1096: TypePointer Input 11(fvec4) +1097(gl_FragCoord): 1096(ptr) Variable Input + 1099(vl2): 1096(ptr) Variable Input + 1104: TypePointer Output 32(int) + 1105(uo): 1104(ptr) Variable Output + 1106: TypePointer Input 32(int) + 1107(u): 1106(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 1017(v): 1016(ptr) Variable Function - 1026: 23(int) Load 1025(i) - 1028: 1027(ptr) AccessChain 1023(arrayedSampler) 1026 - 1029: 1019 Load 1028 - 1032: 20(fvec2) Load 1031(c2D) - 1033: 11(fvec4) ImageSampleImplicitLod 1029 1032 - Store 1017(v) 1033 - 1038: 1037(ptr) AccessChain 1036(gl_ClipDistance) 964 - 1039: 10(float) Load 1038 - 1040: 32(ptr) AccessChain 13(outp) 31 - Store 1040 1039 - 1042: 11(fvec4) Load 1017(v) - 1043: 1041(fvec3) VectorShuffle 1042 1042 1 2 3 - 1044: 11(fvec4) Load 13(outp) - 1045: 11(fvec4) VectorShuffle 1044 1043 0 4 5 6 - Store 13(outp) 1045 - 1053: 1050 Load 1052(samp2dr) - 1054: 20(fvec2) Load 1031(c2D) - 1065: 1046(ivec4) ImageGather 1053 1054 968 ConstOffsets 1064 - Store 1048(uoutp) 1065 - 1066: 1027(ptr) AccessChain 1023(arrayedSampler) 1062 - 1067: 1019 Load 1066 - 1068: 20(fvec2) Load 1031(c2D) - 1069: 11(fvec4) ImageGather 1067 1068 1062 - 1070: 11(fvec4) Load 13(outp) - 1071: 11(fvec4) FAdd 1070 1069 - Store 13(outp) 1071 - 1079: 1076 Load 1078(isamp2DA) - 1083: 1072(ivec4) ImageGather 1079 1081 25 ConstOffset 1082 - Store 1074(ioutp) 1083 - 1084: 1076 Load 1078(isamp2DA) - 1085: 1072(ivec4) ImageGather 1084 1081 25 ConstOffset 1082 - 1086: 1072(ivec4) Load 1074(ioutp) - 1087: 1072(ivec4) IAdd 1086 1085 - Store 1074(ioutp) 1087 - 1088: 1076 Load 1078(isamp2DA) - 1089: 23(int) Load 1025(i) - 1090: 24(ivec2) CompositeConstruct 1089 1089 - 1091: 1072(ivec4) ImageGather 1088 1081 1062 Offset 1090 - 1092: 1072(ivec4) Load 1074(ioutp) - 1093: 1072(ivec4) IAdd 1092 1091 - Store 1074(ioutp) 1093 - 1096: 11(fvec4) Load 1095(gl_FragCoord) - 1098: 11(fvec4) Load 1097(vl2) - 1099: 11(fvec4) FAdd 1096 1098 - 1100: 11(fvec4) Load 13(outp) - 1101: 11(fvec4) FAdd 1100 1099 - Store 13(outp) 1101 - 1106: 30(int) Load 1105(u) - 1107: 23(int) Load 1025(i) - 1108: 30(int) Bitcast 1107 - 1109: 30(int) UMod 1106 1108 - Store 1103(uo) 1109 - 1110: 2 FunctionCall 6(foo23() - 1111: 2 FunctionCall 8(doubles() + 1019(v): 1018(ptr) Variable Function + 1028: 23(int) Load 1027(i) + 1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 + 1031: 1021 Load 1030 + 1034: 20(fvec2) Load 1033(c2D) + 1035: 11(fvec4) ImageSampleImplicitLod 1031 1034 + Store 1019(v) 1035 + 1040: 1039(ptr) AccessChain 1038(gl_ClipDistance) 966 + 1041: 10(float) Load 1040 + 1042: 34(ptr) AccessChain 13(outp) 33 + Store 1042 1041 + 1044: 11(fvec4) Load 1019(v) + 1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3 + 1046: 11(fvec4) Load 13(outp) + 1047: 11(fvec4) VectorShuffle 1046 1045 0 4 5 6 + Store 13(outp) 1047 + 1055: 1052 Load 1054(samp2dr) + 1056: 20(fvec2) Load 1033(c2D) + 1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066 + Store 1050(uoutp) 1067 + 1068: 1029(ptr) AccessChain 1025(arrayedSampler) 1064 + 1069: 1021 Load 1068 + 1070: 20(fvec2) Load 1033(c2D) + 1071: 11(fvec4) ImageGather 1069 1070 1064 + 1072: 11(fvec4) Load 13(outp) + 1073: 11(fvec4) FAdd 1072 1071 + Store 13(outp) 1073 + 1081: 1078 Load 1080(isamp2DA) + 1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084 + Store 1076(ioutp) 1085 + 1086: 1078 Load 1080(isamp2DA) + 1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084 + 1088: 1074(ivec4) Load 1076(ioutp) + 1089: 1074(ivec4) IAdd 1088 1087 + Store 1076(ioutp) 1089 + 1090: 1078 Load 1080(isamp2DA) + 1091: 23(int) Load 1027(i) + 1092: 24(ivec2) CompositeConstruct 1091 1091 + 1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092 + 1094: 1074(ivec4) Load 1076(ioutp) + 1095: 1074(ivec4) IAdd 1094 1093 + Store 1076(ioutp) 1095 + 1098: 11(fvec4) Load 1097(gl_FragCoord) + 1100: 11(fvec4) Load 1099(vl2) + 1101: 11(fvec4) FAdd 1098 1100 + 1102: 11(fvec4) Load 13(outp) + 1103: 11(fvec4) FAdd 1102 1101 + Store 13(outp) 1103 + 1108: 32(int) Load 1107(u) + 1109: 23(int) Load 1027(i) + 1110: 32(int) Bitcast 1109 + 1111: 32(int) UMod 1108 1110 + Store 1105(uo) 1111 + 1112: 2 FunctionCall 6(foo23() + 1113: 2 FunctionCall 8(doubles() Return FunctionEnd 6(foo23(): 2 Function None 3 @@ -249,1137 +249,1139 @@ Linked fragment stage: 18: 15 Load 17(u2drs) 19: 11(fvec4) Load 13(outp) 28: 10(float) CompositeExtract 19 2 - 29: 10(float) ImageSampleProjDrefExplicitLod 18 19 28 Grad ConstOffset 22 22 27 - 33: 32(ptr) AccessChain 13(outp) 31 - 34: 10(float) Load 33 - 35: 10(float) FAdd 34 29 - 36: 32(ptr) AccessChain 13(outp) 31 - Store 36 35 + 29: 10(float) CompositeExtract 19 3 + 30: 11(fvec4) CompositeInsert 29 19 2 + 31: 10(float) ImageSampleProjDrefExplicitLod 18 30 28 Grad ConstOffset 22 22 27 + 35: 34(ptr) AccessChain 13(outp) 33 + 36: 10(float) Load 35 + 37: 10(float) FAdd 36 31 + 38: 34(ptr) AccessChain 13(outp) 33 + Store 38 37 Return FunctionEnd 8(doubles(): 2 Function None 3 9: Label - 39(doublev): 38(ptr) Variable Function - 43(dvec2v): 42(ptr) Variable Function - 48(dvec3v): 47(ptr) Variable Function - 53(dvec4v): 52(ptr) Variable Function - 428(boolv): 427(ptr) Variable Function - 437(bvec2v): 436(ptr) Variable Function - 446(bvec3v): 445(ptr) Variable Function - 455(bvec4v): 454(ptr) Variable Function - 554: 427(ptr) Variable Function - 563: 436(ptr) Variable Function - 572: 445(ptr) Variable Function - 581: 454(ptr) Variable Function - 737(dmat2v): 736(ptr) Variable Function - 743(dmat3v): 742(ptr) Variable Function - 749(dmat4v): 748(ptr) Variable Function - 755(dmat2x3v): 754(ptr) Variable Function - 761(dmat3x2v): 760(ptr) Variable Function - 767(dmat2x4v): 766(ptr) Variable Function - 773(dmat4x2v): 772(ptr) Variable Function - 779(dmat3x4v): 778(ptr) Variable Function - 785(dmat4x3v): 784(ptr) Variable Function - Store 39(doublev) 40 - Store 43(dvec2v) 45 - Store 48(dvec3v) 50 - 54: 37(float) Load 39(doublev) - 55: 51(fvec4) CompositeConstruct 54 54 54 54 - 56: 51(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 55 - Store 53(dvec4v) 56 - 57: 37(float) Load 39(doublev) - 58: 37(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 57 - 59: 37(float) Load 39(doublev) - 60: 37(float) FAdd 59 58 - Store 39(doublev) 60 - 61: 41(fvec2) Load 43(dvec2v) - 62: 41(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 61 - 63: 41(fvec2) Load 43(dvec2v) - 64: 41(fvec2) FAdd 63 62 - Store 43(dvec2v) 64 - 65: 46(fvec3) Load 48(dvec3v) - 66: 46(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 65 - 67: 46(fvec3) Load 48(dvec3v) - 68: 46(fvec3) FAdd 67 66 - Store 48(dvec3v) 68 - 69: 51(fvec4) Load 53(dvec4v) - 70: 51(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 69 - 71: 51(fvec4) Load 53(dvec4v) - 72: 51(fvec4) FAdd 71 70 - Store 53(dvec4v) 72 - 73: 37(float) Load 39(doublev) - 74: 37(float) ExtInst 1(GLSL.std.450) 4(FAbs) 73 - 75: 37(float) Load 39(doublev) - 76: 37(float) FAdd 75 74 - Store 39(doublev) 76 - 77: 41(fvec2) Load 43(dvec2v) - 78: 41(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 77 - 79: 41(fvec2) Load 43(dvec2v) - 80: 41(fvec2) FAdd 79 78 - Store 43(dvec2v) 80 - 81: 46(fvec3) Load 48(dvec3v) - 82: 46(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 81 - 83: 46(fvec3) Load 48(dvec3v) - 84: 46(fvec3) FAdd 83 82 - Store 48(dvec3v) 84 - 85: 51(fvec4) Load 53(dvec4v) - 86: 51(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 85 - 87: 51(fvec4) Load 53(dvec4v) - 88: 51(fvec4) FAdd 87 86 - Store 53(dvec4v) 88 - 89: 37(float) Load 39(doublev) - 90: 37(float) ExtInst 1(GLSL.std.450) 6(FSign) 89 - 91: 37(float) Load 39(doublev) - 92: 37(float) FAdd 91 90 - Store 39(doublev) 92 - 93: 41(fvec2) Load 43(dvec2v) - 94: 41(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 93 - 95: 41(fvec2) Load 43(dvec2v) - 96: 41(fvec2) FAdd 95 94 - Store 43(dvec2v) 96 - 97: 46(fvec3) Load 48(dvec3v) - 98: 46(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 97 - 99: 46(fvec3) Load 48(dvec3v) - 100: 46(fvec3) FAdd 99 98 - Store 48(dvec3v) 100 - 101: 51(fvec4) Load 53(dvec4v) - 102: 51(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 101 - 103: 51(fvec4) Load 53(dvec4v) - 104: 51(fvec4) FAdd 103 102 - Store 53(dvec4v) 104 - 105: 37(float) Load 39(doublev) - 106: 37(float) ExtInst 1(GLSL.std.450) 8(Floor) 105 - 107: 37(float) Load 39(doublev) - 108: 37(float) FAdd 107 106 - Store 39(doublev) 108 - 109: 41(fvec2) Load 43(dvec2v) - 110: 41(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 109 - 111: 41(fvec2) Load 43(dvec2v) - 112: 41(fvec2) FAdd 111 110 - Store 43(dvec2v) 112 - 113: 46(fvec3) Load 48(dvec3v) - 114: 46(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 113 - 115: 46(fvec3) Load 48(dvec3v) - 116: 46(fvec3) FAdd 115 114 - Store 48(dvec3v) 116 - 117: 51(fvec4) Load 53(dvec4v) - 118: 51(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 117 - 119: 51(fvec4) Load 53(dvec4v) - 120: 51(fvec4) FAdd 119 118 - Store 53(dvec4v) 120 - 121: 37(float) Load 39(doublev) - 122: 37(float) ExtInst 1(GLSL.std.450) 3(Trunc) 121 - 123: 37(float) Load 39(doublev) - 124: 37(float) FAdd 123 122 - Store 39(doublev) 124 - 125: 41(fvec2) Load 43(dvec2v) - 126: 41(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 125 - 127: 41(fvec2) Load 43(dvec2v) - 128: 41(fvec2) FAdd 127 126 - Store 43(dvec2v) 128 - 129: 46(fvec3) Load 48(dvec3v) - 130: 46(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 129 - 131: 46(fvec3) Load 48(dvec3v) - 132: 46(fvec3) FAdd 131 130 - Store 48(dvec3v) 132 - 133: 51(fvec4) Load 53(dvec4v) - 134: 51(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 133 - 135: 51(fvec4) Load 53(dvec4v) - 136: 51(fvec4) FAdd 135 134 - Store 53(dvec4v) 136 - 137: 37(float) Load 39(doublev) - 138: 37(float) ExtInst 1(GLSL.std.450) 1(Round) 137 - 139: 37(float) Load 39(doublev) - 140: 37(float) FAdd 139 138 - Store 39(doublev) 140 - 141: 41(fvec2) Load 43(dvec2v) - 142: 41(fvec2) ExtInst 1(GLSL.std.450) 1(Round) 141 - 143: 41(fvec2) Load 43(dvec2v) - 144: 41(fvec2) FAdd 143 142 - Store 43(dvec2v) 144 - 145: 46(fvec3) Load 48(dvec3v) - 146: 46(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 145 - 147: 46(fvec3) Load 48(dvec3v) - 148: 46(fvec3) FAdd 147 146 - Store 48(dvec3v) 148 - 149: 51(fvec4) Load 53(dvec4v) - 150: 51(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 149 - 151: 51(fvec4) Load 53(dvec4v) - 152: 51(fvec4) FAdd 151 150 - Store 53(dvec4v) 152 - 153: 37(float) Load 39(doublev) - 154: 37(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 153 - 155: 37(float) Load 39(doublev) - 156: 37(float) FAdd 155 154 - Store 39(doublev) 156 - 157: 41(fvec2) Load 43(dvec2v) - 158: 41(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 157 - 159: 41(fvec2) Load 43(dvec2v) - 160: 41(fvec2) FAdd 159 158 - Store 43(dvec2v) 160 - 161: 46(fvec3) Load 48(dvec3v) - 162: 46(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 161 - 163: 46(fvec3) Load 48(dvec3v) - 164: 46(fvec3) FAdd 163 162 - Store 48(dvec3v) 164 - 165: 51(fvec4) Load 53(dvec4v) - 166: 51(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 165 - 167: 51(fvec4) Load 53(dvec4v) - 168: 51(fvec4) FAdd 167 166 - Store 53(dvec4v) 168 - 169: 37(float) Load 39(doublev) - 170: 37(float) ExtInst 1(GLSL.std.450) 9(Ceil) 169 - 171: 37(float) Load 39(doublev) - 172: 37(float) FAdd 171 170 - Store 39(doublev) 172 - 173: 41(fvec2) Load 43(dvec2v) - 174: 41(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 173 - 175: 41(fvec2) Load 43(dvec2v) - 176: 41(fvec2) FAdd 175 174 - Store 43(dvec2v) 176 - 177: 46(fvec3) Load 48(dvec3v) - 178: 46(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 177 - 179: 46(fvec3) Load 48(dvec3v) - 180: 46(fvec3) FAdd 179 178 - Store 48(dvec3v) 180 - 181: 51(fvec4) Load 53(dvec4v) - 182: 51(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 181 - 183: 51(fvec4) Load 53(dvec4v) - 184: 51(fvec4) FAdd 183 182 - Store 53(dvec4v) 184 - 185: 37(float) Load 39(doublev) - 186: 37(float) ExtInst 1(GLSL.std.450) 10(Fract) 185 - 187: 37(float) Load 39(doublev) - 188: 37(float) FAdd 187 186 - Store 39(doublev) 188 - 189: 41(fvec2) Load 43(dvec2v) - 190: 41(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 189 - 191: 41(fvec2) Load 43(dvec2v) - 192: 41(fvec2) FAdd 191 190 - Store 43(dvec2v) 192 - 193: 46(fvec3) Load 48(dvec3v) - 194: 46(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 193 - 195: 46(fvec3) Load 48(dvec3v) - 196: 46(fvec3) FAdd 195 194 - Store 48(dvec3v) 196 - 197: 51(fvec4) Load 53(dvec4v) - 198: 51(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 197 - 199: 51(fvec4) Load 53(dvec4v) - 200: 51(fvec4) FAdd 199 198 - Store 53(dvec4v) 200 - 201: 37(float) Load 39(doublev) - 202: 37(float) Load 39(doublev) - 203: 37(float) FMod 201 202 - 204: 37(float) Load 39(doublev) - 205: 37(float) FAdd 204 203 - Store 39(doublev) 205 - 206: 41(fvec2) Load 43(dvec2v) - 207: 37(float) Load 39(doublev) - 208: 41(fvec2) CompositeConstruct 207 207 - 209: 41(fvec2) FMod 206 208 - 210: 41(fvec2) Load 43(dvec2v) - 211: 41(fvec2) FAdd 210 209 - Store 43(dvec2v) 211 - 212: 46(fvec3) Load 48(dvec3v) - 213: 37(float) Load 39(doublev) - 214: 46(fvec3) CompositeConstruct 213 213 213 - 215: 46(fvec3) FMod 212 214 - 216: 46(fvec3) Load 48(dvec3v) - 217: 46(fvec3) FAdd 216 215 - Store 48(dvec3v) 217 - 218: 51(fvec4) Load 53(dvec4v) - 219: 37(float) Load 39(doublev) - 220: 51(fvec4) CompositeConstruct 219 219 219 219 - 221: 51(fvec4) FMod 218 220 - 222: 51(fvec4) Load 53(dvec4v) - 223: 51(fvec4) FAdd 222 221 - Store 53(dvec4v) 223 - 224: 41(fvec2) Load 43(dvec2v) - 225: 41(fvec2) Load 43(dvec2v) - 226: 41(fvec2) FMod 224 225 - 227: 41(fvec2) Load 43(dvec2v) - 228: 41(fvec2) FAdd 227 226 - Store 43(dvec2v) 228 - 229: 46(fvec3) Load 48(dvec3v) - 230: 46(fvec3) Load 48(dvec3v) - 231: 46(fvec3) FMod 229 230 - 232: 46(fvec3) Load 48(dvec3v) - 233: 46(fvec3) FAdd 232 231 - Store 48(dvec3v) 233 - 234: 51(fvec4) Load 53(dvec4v) - 235: 51(fvec4) Load 53(dvec4v) - 236: 51(fvec4) FMod 234 235 - 237: 51(fvec4) Load 53(dvec4v) - 238: 51(fvec4) FAdd 237 236 - Store 53(dvec4v) 238 - 239: 37(float) Load 39(doublev) - 240: 37(float) ExtInst 1(GLSL.std.450) 35(Modf) 239 39(doublev) - 241: 37(float) Load 39(doublev) - 242: 37(float) FAdd 241 240 - Store 39(doublev) 242 - 243: 41(fvec2) Load 43(dvec2v) - 244: 41(fvec2) ExtInst 1(GLSL.std.450) 35(Modf) 243 43(dvec2v) - 245: 41(fvec2) Load 43(dvec2v) - 246: 41(fvec2) FAdd 245 244 - Store 43(dvec2v) 246 - 247: 46(fvec3) Load 48(dvec3v) - 248: 46(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 247 48(dvec3v) - 249: 46(fvec3) Load 48(dvec3v) - 250: 46(fvec3) FAdd 249 248 - Store 48(dvec3v) 250 - 251: 51(fvec4) Load 53(dvec4v) - 252: 51(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 251 53(dvec4v) - 253: 51(fvec4) Load 53(dvec4v) - 254: 51(fvec4) FAdd 253 252 - Store 53(dvec4v) 254 - 255: 37(float) Load 39(doublev) - 256: 37(float) Load 39(doublev) - 257: 37(float) ExtInst 1(GLSL.std.450) 37(FMin) 255 256 - 258: 37(float) Load 39(doublev) - 259: 37(float) FAdd 258 257 - Store 39(doublev) 259 - 260: 41(fvec2) Load 43(dvec2v) - 261: 37(float) Load 39(doublev) - 262: 41(fvec2) CompositeConstruct 261 261 - 263: 41(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 260 262 - 264: 41(fvec2) Load 43(dvec2v) - 265: 41(fvec2) FAdd 264 263 - Store 43(dvec2v) 265 - 266: 46(fvec3) Load 48(dvec3v) - 267: 37(float) Load 39(doublev) - 268: 46(fvec3) CompositeConstruct 267 267 267 - 269: 46(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 266 268 - 270: 46(fvec3) Load 48(dvec3v) - 271: 46(fvec3) FAdd 270 269 - Store 48(dvec3v) 271 - 272: 51(fvec4) Load 53(dvec4v) - 273: 37(float) Load 39(doublev) - 274: 51(fvec4) CompositeConstruct 273 273 273 273 - 275: 51(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 272 274 - 276: 51(fvec4) Load 53(dvec4v) - 277: 51(fvec4) FAdd 276 275 - Store 53(dvec4v) 277 - 278: 41(fvec2) Load 43(dvec2v) - 279: 41(fvec2) Load 43(dvec2v) - 280: 41(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 278 279 - 281: 41(fvec2) Load 43(dvec2v) - 282: 41(fvec2) FAdd 281 280 - Store 43(dvec2v) 282 - 283: 46(fvec3) Load 48(dvec3v) - 284: 46(fvec3) Load 48(dvec3v) - 285: 46(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 283 284 - 286: 46(fvec3) Load 48(dvec3v) - 287: 46(fvec3) FAdd 286 285 - Store 48(dvec3v) 287 - 288: 51(fvec4) Load 53(dvec4v) - 289: 51(fvec4) Load 53(dvec4v) - 290: 51(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 288 289 - 291: 51(fvec4) Load 53(dvec4v) - 292: 51(fvec4) FAdd 291 290 - Store 53(dvec4v) 292 - 293: 37(float) Load 39(doublev) - 294: 37(float) Load 39(doublev) - 295: 37(float) ExtInst 1(GLSL.std.450) 40(FMax) 293 294 - 296: 37(float) Load 39(doublev) - 297: 37(float) FAdd 296 295 - Store 39(doublev) 297 - 298: 41(fvec2) Load 43(dvec2v) - 299: 37(float) Load 39(doublev) - 300: 41(fvec2) CompositeConstruct 299 299 - 301: 41(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 298 300 - 302: 41(fvec2) Load 43(dvec2v) - 303: 41(fvec2) FAdd 302 301 - Store 43(dvec2v) 303 - 304: 46(fvec3) Load 48(dvec3v) - 305: 37(float) Load 39(doublev) - 306: 46(fvec3) CompositeConstruct 305 305 305 - 307: 46(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 304 306 - 308: 46(fvec3) Load 48(dvec3v) - 309: 46(fvec3) FAdd 308 307 - Store 48(dvec3v) 309 - 310: 51(fvec4) Load 53(dvec4v) - 311: 37(float) Load 39(doublev) - 312: 51(fvec4) CompositeConstruct 311 311 311 311 - 313: 51(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 310 312 - 314: 51(fvec4) Load 53(dvec4v) - 315: 51(fvec4) FAdd 314 313 - Store 53(dvec4v) 315 - 316: 41(fvec2) Load 43(dvec2v) - 317: 41(fvec2) Load 43(dvec2v) - 318: 41(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 316 317 - 319: 41(fvec2) Load 43(dvec2v) - 320: 41(fvec2) FAdd 319 318 - Store 43(dvec2v) 320 - 321: 46(fvec3) Load 48(dvec3v) - 322: 46(fvec3) Load 48(dvec3v) - 323: 46(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 321 322 - 324: 46(fvec3) Load 48(dvec3v) - 325: 46(fvec3) FAdd 324 323 - Store 48(dvec3v) 325 - 326: 51(fvec4) Load 53(dvec4v) - 327: 51(fvec4) Load 53(dvec4v) - 328: 51(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 326 327 - 329: 51(fvec4) Load 53(dvec4v) - 330: 51(fvec4) FAdd 329 328 - Store 53(dvec4v) 330 - 331: 37(float) Load 39(doublev) - 332: 37(float) Load 39(doublev) - 333: 37(float) Load 39(doublev) - 334: 37(float) ExtInst 1(GLSL.std.450) 43(FClamp) 331 332 333 - 335: 37(float) Load 39(doublev) - 336: 37(float) FAdd 335 334 - Store 39(doublev) 336 - 337: 41(fvec2) Load 43(dvec2v) - 338: 37(float) Load 39(doublev) - 339: 37(float) Load 39(doublev) - 340: 41(fvec2) CompositeConstruct 338 338 - 341: 41(fvec2) CompositeConstruct 339 339 - 342: 41(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 337 340 341 - 343: 41(fvec2) Load 43(dvec2v) - 344: 41(fvec2) FAdd 343 342 - Store 43(dvec2v) 344 - 345: 46(fvec3) Load 48(dvec3v) - 346: 37(float) Load 39(doublev) - 347: 37(float) Load 39(doublev) - 348: 46(fvec3) CompositeConstruct 346 346 346 - 349: 46(fvec3) CompositeConstruct 347 347 347 - 350: 46(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 345 348 349 - 351: 46(fvec3) Load 48(dvec3v) - 352: 46(fvec3) FAdd 351 350 - Store 48(dvec3v) 352 - 353: 51(fvec4) Load 53(dvec4v) - 354: 37(float) Load 39(doublev) - 355: 37(float) Load 39(doublev) - 356: 51(fvec4) CompositeConstruct 354 354 354 354 - 357: 51(fvec4) CompositeConstruct 355 355 355 355 - 358: 51(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 353 356 357 - 359: 51(fvec4) Load 53(dvec4v) - 360: 51(fvec4) FAdd 359 358 - Store 53(dvec4v) 360 - 361: 41(fvec2) Load 43(dvec2v) - 362: 41(fvec2) Load 43(dvec2v) - 363: 41(fvec2) Load 43(dvec2v) - 364: 41(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 361 362 363 - 365: 41(fvec2) Load 43(dvec2v) - 366: 41(fvec2) FAdd 365 364 - Store 43(dvec2v) 366 - 367: 46(fvec3) Load 48(dvec3v) - 368: 46(fvec3) Load 48(dvec3v) - 369: 46(fvec3) Load 48(dvec3v) - 370: 46(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 367 368 369 - 371: 46(fvec3) Load 48(dvec3v) - 372: 46(fvec3) FAdd 371 370 - Store 48(dvec3v) 372 - 373: 51(fvec4) Load 53(dvec4v) - 374: 51(fvec4) Load 53(dvec4v) - 375: 51(fvec4) Load 53(dvec4v) - 376: 51(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 373 374 375 - 377: 51(fvec4) Load 53(dvec4v) - 378: 51(fvec4) FAdd 377 376 - Store 53(dvec4v) 378 - 379: 37(float) Load 39(doublev) - 380: 37(float) Load 39(doublev) - 381: 37(float) Load 39(doublev) - 382: 37(float) ExtInst 1(GLSL.std.450) 46(FMix) 379 380 381 - 383: 37(float) Load 39(doublev) - 384: 37(float) FAdd 383 382 - Store 39(doublev) 384 - 385: 41(fvec2) Load 43(dvec2v) - 386: 41(fvec2) Load 43(dvec2v) - 387: 37(float) Load 39(doublev) - 388: 41(fvec2) CompositeConstruct 387 387 - 389: 41(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 385 386 388 - 390: 41(fvec2) Load 43(dvec2v) - 391: 41(fvec2) FAdd 390 389 - Store 43(dvec2v) 391 - 392: 46(fvec3) Load 48(dvec3v) - 393: 46(fvec3) Load 48(dvec3v) - 394: 37(float) Load 39(doublev) - 395: 46(fvec3) CompositeConstruct 394 394 394 - 396: 46(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 392 393 395 - 397: 46(fvec3) Load 48(dvec3v) - 398: 46(fvec3) FAdd 397 396 - Store 48(dvec3v) 398 - 399: 51(fvec4) Load 53(dvec4v) - 400: 51(fvec4) Load 53(dvec4v) - 401: 37(float) Load 39(doublev) - 402: 51(fvec4) CompositeConstruct 401 401 401 401 - 403: 51(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 399 400 402 - 404: 51(fvec4) Load 53(dvec4v) - 405: 51(fvec4) FAdd 404 403 - Store 53(dvec4v) 405 - 406: 41(fvec2) Load 43(dvec2v) - 407: 41(fvec2) Load 43(dvec2v) - 408: 41(fvec2) Load 43(dvec2v) - 409: 41(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 406 407 408 - 410: 41(fvec2) Load 43(dvec2v) - 411: 41(fvec2) FAdd 410 409 - Store 43(dvec2v) 411 - 412: 46(fvec3) Load 48(dvec3v) - 413: 46(fvec3) Load 48(dvec3v) - 414: 46(fvec3) Load 48(dvec3v) - 415: 46(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 412 413 414 - 416: 46(fvec3) Load 48(dvec3v) - 417: 46(fvec3) FAdd 416 415 - Store 48(dvec3v) 417 - 418: 51(fvec4) Load 53(dvec4v) - 419: 51(fvec4) Load 53(dvec4v) - 420: 51(fvec4) Load 53(dvec4v) - 421: 51(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 418 419 420 - 422: 51(fvec4) Load 53(dvec4v) - 423: 51(fvec4) FAdd 422 421 - Store 53(dvec4v) 423 - 424: 37(float) Load 39(doublev) - 425: 37(float) Load 39(doublev) - 429: 426(bool) Load 428(boolv) - 430: 37(float) Select 429 425 424 - 431: 37(float) Load 39(doublev) - 432: 37(float) FAdd 431 430 - Store 39(doublev) 432 - 433: 41(fvec2) Load 43(dvec2v) - 434: 41(fvec2) Load 43(dvec2v) - 438: 435(bvec2) Load 437(bvec2v) - 439: 41(fvec2) Select 438 434 433 - 440: 41(fvec2) Load 43(dvec2v) - 441: 41(fvec2) FAdd 440 439 - Store 43(dvec2v) 441 - 442: 46(fvec3) Load 48(dvec3v) - 443: 46(fvec3) Load 48(dvec3v) - 447: 444(bvec3) Load 446(bvec3v) - 448: 46(fvec3) Select 447 443 442 - 449: 46(fvec3) Load 48(dvec3v) - 450: 46(fvec3) FAdd 449 448 - Store 48(dvec3v) 450 - 451: 51(fvec4) Load 53(dvec4v) - 452: 51(fvec4) Load 53(dvec4v) - 456: 453(bvec4) Load 455(bvec4v) - 457: 51(fvec4) Select 456 452 451 - 458: 51(fvec4) Load 53(dvec4v) - 459: 51(fvec4) FAdd 458 457 - Store 53(dvec4v) 459 - 460: 37(float) Load 39(doublev) - 461: 37(float) Load 39(doublev) - 462: 37(float) ExtInst 1(GLSL.std.450) 48(Step) 460 461 - 463: 37(float) Load 39(doublev) - 464: 37(float) FAdd 463 462 - Store 39(doublev) 464 - 465: 41(fvec2) Load 43(dvec2v) - 466: 41(fvec2) Load 43(dvec2v) - 467: 41(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 465 466 - 468: 41(fvec2) Load 43(dvec2v) - 469: 41(fvec2) FAdd 468 467 - Store 43(dvec2v) 469 - 470: 46(fvec3) Load 48(dvec3v) - 471: 46(fvec3) Load 48(dvec3v) - 472: 46(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 470 471 - 473: 46(fvec3) Load 48(dvec3v) - 474: 46(fvec3) FAdd 473 472 - Store 48(dvec3v) 474 - 475: 51(fvec4) Load 53(dvec4v) - 476: 51(fvec4) Load 53(dvec4v) - 477: 51(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 475 476 - 478: 51(fvec4) Load 53(dvec4v) - 479: 51(fvec4) FAdd 478 477 - Store 53(dvec4v) 479 - 480: 37(float) Load 39(doublev) - 481: 41(fvec2) Load 43(dvec2v) - 482: 41(fvec2) CompositeConstruct 480 480 - 483: 41(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 482 481 - 484: 41(fvec2) Load 43(dvec2v) - 485: 41(fvec2) FAdd 484 483 - Store 43(dvec2v) 485 - 486: 37(float) Load 39(doublev) - 487: 46(fvec3) Load 48(dvec3v) - 488: 46(fvec3) CompositeConstruct 486 486 486 - 489: 46(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 488 487 - 490: 46(fvec3) Load 48(dvec3v) - 491: 46(fvec3) FAdd 490 489 - Store 48(dvec3v) 491 - 492: 37(float) Load 39(doublev) - 493: 51(fvec4) Load 53(dvec4v) - 494: 51(fvec4) CompositeConstruct 492 492 492 492 - 495: 51(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 494 493 - 496: 51(fvec4) Load 53(dvec4v) - 497: 51(fvec4) FAdd 496 495 - Store 53(dvec4v) 497 - 498: 37(float) Load 39(doublev) - 499: 37(float) Load 39(doublev) - 500: 37(float) Load 39(doublev) - 501: 37(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 498 499 500 - 502: 37(float) Load 39(doublev) - 503: 37(float) FAdd 502 501 - Store 39(doublev) 503 - 504: 41(fvec2) Load 43(dvec2v) - 505: 41(fvec2) Load 43(dvec2v) - 506: 41(fvec2) Load 43(dvec2v) - 507: 41(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 504 505 506 - 508: 41(fvec2) Load 43(dvec2v) - 509: 41(fvec2) FAdd 508 507 - Store 43(dvec2v) 509 - 510: 46(fvec3) Load 48(dvec3v) - 511: 46(fvec3) Load 48(dvec3v) - 512: 46(fvec3) Load 48(dvec3v) - 513: 46(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 510 511 512 - 514: 46(fvec3) Load 48(dvec3v) - 515: 46(fvec3) FAdd 514 513 - Store 48(dvec3v) 515 - 516: 51(fvec4) Load 53(dvec4v) - 517: 51(fvec4) Load 53(dvec4v) - 518: 51(fvec4) Load 53(dvec4v) - 519: 51(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 516 517 518 - 520: 51(fvec4) Load 53(dvec4v) - 521: 51(fvec4) FAdd 520 519 - Store 53(dvec4v) 521 - 522: 37(float) Load 39(doublev) - 523: 37(float) Load 39(doublev) - 524: 41(fvec2) Load 43(dvec2v) - 525: 41(fvec2) CompositeConstruct 522 522 - 526: 41(fvec2) CompositeConstruct 523 523 - 527: 41(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 525 526 524 - 528: 41(fvec2) Load 43(dvec2v) - 529: 41(fvec2) FAdd 528 527 - Store 43(dvec2v) 529 - 530: 37(float) Load 39(doublev) - 531: 37(float) Load 39(doublev) - 532: 46(fvec3) Load 48(dvec3v) - 533: 46(fvec3) CompositeConstruct 530 530 530 - 534: 46(fvec3) CompositeConstruct 531 531 531 - 535: 46(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 533 534 532 - 536: 46(fvec3) Load 48(dvec3v) - 537: 46(fvec3) FAdd 536 535 - Store 48(dvec3v) 537 - 538: 37(float) Load 39(doublev) - 539: 37(float) Load 39(doublev) - 540: 51(fvec4) Load 53(dvec4v) - 541: 51(fvec4) CompositeConstruct 538 538 538 538 - 542: 51(fvec4) CompositeConstruct 539 539 539 539 - 543: 51(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 541 542 540 - 544: 51(fvec4) Load 53(dvec4v) - 545: 51(fvec4) FAdd 544 543 - Store 53(dvec4v) 545 - 546: 37(float) Load 39(doublev) - 547: 426(bool) IsNan 546 - Store 428(boolv) 547 - 548: 41(fvec2) Load 43(dvec2v) - 549: 435(bvec2) IsNan 548 - Store 437(bvec2v) 549 - 550: 46(fvec3) Load 48(dvec3v) - 551: 444(bvec3) IsNan 550 - Store 446(bvec3v) 551 - 552: 51(fvec4) Load 53(dvec4v) - 553: 453(bvec4) IsNan 552 - Store 455(bvec4v) 553 - 555: 426(bool) Load 428(boolv) - SelectionMerge 557 None - BranchConditional 555 556 560 - 556: Label - 558: 37(float) Load 39(doublev) - 559: 426(bool) IsInf 558 - Store 554 559 - Branch 557 - 560: Label - Store 554 561 - Branch 557 - 557: Label - 562: 426(bool) Load 554 - Store 428(boolv) 562 - 564: 426(bool) Load 428(boolv) - SelectionMerge 566 None - BranchConditional 564 565 569 - 565: Label - 567: 41(fvec2) Load 43(dvec2v) - 568: 435(bvec2) IsInf 567 - Store 563 568 - Branch 566 - 569: Label - Store 563 570 - Branch 566 - 566: Label - 571: 435(bvec2) Load 563 - Store 437(bvec2v) 571 - 573: 426(bool) Load 428(boolv) - SelectionMerge 575 None - BranchConditional 573 574 578 - 574: Label - 576: 46(fvec3) Load 48(dvec3v) - 577: 444(bvec3) IsInf 576 - Store 572 577 - Branch 575 - 578: Label - Store 572 579 - Branch 575 - 575: Label - 580: 444(bvec3) Load 572 - Store 446(bvec3v) 580 - 582: 426(bool) Load 428(boolv) - SelectionMerge 584 None - BranchConditional 582 583 587 - 583: Label - 585: 51(fvec4) Load 53(dvec4v) - 586: 453(bvec4) IsInf 585 - Store 581 586 - Branch 584 - 587: Label - Store 581 588 - Branch 584 - 584: Label - 589: 453(bvec4) Load 581 - Store 455(bvec4v) 589 - 590: 37(float) Load 39(doublev) - 591: 37(float) ExtInst 1(GLSL.std.450) 66(Length) 590 - 592: 37(float) Load 39(doublev) - 593: 37(float) FAdd 592 591 - Store 39(doublev) 593 - 594: 41(fvec2) Load 43(dvec2v) - 595: 37(float) ExtInst 1(GLSL.std.450) 66(Length) 594 - 596: 37(float) Load 39(doublev) - 597: 37(float) FAdd 596 595 - Store 39(doublev) 597 - 598: 46(fvec3) Load 48(dvec3v) - 599: 37(float) ExtInst 1(GLSL.std.450) 66(Length) 598 - 600: 37(float) Load 39(doublev) - 601: 37(float) FAdd 600 599 - Store 39(doublev) 601 - 602: 51(fvec4) Load 53(dvec4v) - 603: 37(float) ExtInst 1(GLSL.std.450) 66(Length) 602 - 604: 37(float) Load 39(doublev) - 605: 37(float) FAdd 604 603 - Store 39(doublev) 605 - 606: 37(float) Load 39(doublev) - 607: 37(float) Load 39(doublev) - 608: 37(float) ExtInst 1(GLSL.std.450) 67(Distance) 606 607 - 609: 37(float) Load 39(doublev) - 610: 37(float) FAdd 609 608 - Store 39(doublev) 610 - 611: 41(fvec2) Load 43(dvec2v) - 612: 41(fvec2) Load 43(dvec2v) - 613: 37(float) ExtInst 1(GLSL.std.450) 67(Distance) 611 612 - 614: 37(float) Load 39(doublev) - 615: 37(float) FAdd 614 613 - Store 39(doublev) 615 - 616: 46(fvec3) Load 48(dvec3v) - 617: 46(fvec3) Load 48(dvec3v) - 618: 37(float) ExtInst 1(GLSL.std.450) 67(Distance) 616 617 - 619: 37(float) Load 39(doublev) - 620: 37(float) FAdd 619 618 - Store 39(doublev) 620 - 621: 51(fvec4) Load 53(dvec4v) - 622: 51(fvec4) Load 53(dvec4v) - 623: 37(float) ExtInst 1(GLSL.std.450) 67(Distance) 621 622 - 624: 37(float) Load 39(doublev) - 625: 37(float) FAdd 624 623 - Store 39(doublev) 625 - 626: 37(float) Load 39(doublev) - 627: 37(float) Load 39(doublev) - 628: 37(float) FMul 626 627 - 629: 37(float) Load 39(doublev) - 630: 37(float) FAdd 629 628 - Store 39(doublev) 630 - 631: 41(fvec2) Load 43(dvec2v) - 632: 41(fvec2) Load 43(dvec2v) - 633: 37(float) Dot 631 632 - 634: 37(float) Load 39(doublev) - 635: 37(float) FAdd 634 633 - Store 39(doublev) 635 - 636: 46(fvec3) Load 48(dvec3v) - 637: 46(fvec3) Load 48(dvec3v) - 638: 37(float) Dot 636 637 - 639: 37(float) Load 39(doublev) - 640: 37(float) FAdd 639 638 - Store 39(doublev) 640 - 641: 51(fvec4) Load 53(dvec4v) - 642: 51(fvec4) Load 53(dvec4v) - 643: 37(float) Dot 641 642 - 644: 37(float) Load 39(doublev) - 645: 37(float) FAdd 644 643 - Store 39(doublev) 645 - 646: 46(fvec3) Load 48(dvec3v) - 647: 46(fvec3) Load 48(dvec3v) - 648: 46(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 646 647 - 649: 46(fvec3) Load 48(dvec3v) - 650: 46(fvec3) FAdd 649 648 - Store 48(dvec3v) 650 - 651: 37(float) Load 39(doublev) - 652: 37(float) ExtInst 1(GLSL.std.450) 69(Normalize) 651 - 653: 37(float) Load 39(doublev) - 654: 37(float) FAdd 653 652 - Store 39(doublev) 654 - 655: 41(fvec2) Load 43(dvec2v) - 656: 41(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 655 - 657: 41(fvec2) Load 43(dvec2v) - 658: 41(fvec2) FAdd 657 656 - Store 43(dvec2v) 658 - 659: 46(fvec3) Load 48(dvec3v) - 660: 46(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 659 - 661: 46(fvec3) Load 48(dvec3v) - 662: 46(fvec3) FAdd 661 660 - Store 48(dvec3v) 662 - 663: 51(fvec4) Load 53(dvec4v) - 664: 51(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 663 - 665: 51(fvec4) Load 53(dvec4v) - 666: 51(fvec4) FAdd 665 664 - Store 53(dvec4v) 666 - 667: 37(float) Load 39(doublev) - 668: 37(float) Load 39(doublev) - 669: 37(float) Load 39(doublev) - 670: 37(float) ExtInst 1(GLSL.std.450) 70(FaceForward) 667 668 669 - 671: 37(float) Load 39(doublev) - 672: 37(float) FAdd 671 670 - Store 39(doublev) 672 - 673: 41(fvec2) Load 43(dvec2v) - 674: 41(fvec2) Load 43(dvec2v) - 675: 41(fvec2) Load 43(dvec2v) - 676: 41(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 673 674 675 - 677: 41(fvec2) Load 43(dvec2v) - 678: 41(fvec2) FAdd 677 676 - Store 43(dvec2v) 678 - 679: 46(fvec3) Load 48(dvec3v) - 680: 46(fvec3) Load 48(dvec3v) - 681: 46(fvec3) Load 48(dvec3v) - 682: 46(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 679 680 681 - 683: 46(fvec3) Load 48(dvec3v) - 684: 46(fvec3) FAdd 683 682 - Store 48(dvec3v) 684 - 685: 51(fvec4) Load 53(dvec4v) - 686: 51(fvec4) Load 53(dvec4v) - 687: 51(fvec4) Load 53(dvec4v) - 688: 51(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 685 686 687 - 689: 51(fvec4) Load 53(dvec4v) - 690: 51(fvec4) FAdd 689 688 - Store 53(dvec4v) 690 - 691: 37(float) Load 39(doublev) - 692: 37(float) Load 39(doublev) - 693: 37(float) ExtInst 1(GLSL.std.450) 71(Reflect) 691 692 - 694: 37(float) Load 39(doublev) - 695: 37(float) FAdd 694 693 - Store 39(doublev) 695 - 696: 41(fvec2) Load 43(dvec2v) - 697: 41(fvec2) Load 43(dvec2v) - 698: 41(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 696 697 - 699: 41(fvec2) Load 43(dvec2v) - 700: 41(fvec2) FAdd 699 698 - Store 43(dvec2v) 700 - 701: 46(fvec3) Load 48(dvec3v) - 702: 46(fvec3) Load 48(dvec3v) - 703: 46(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 701 702 - 704: 46(fvec3) Load 48(dvec3v) - 705: 46(fvec3) FAdd 704 703 - Store 48(dvec3v) 705 - 706: 51(fvec4) Load 53(dvec4v) - 707: 51(fvec4) Load 53(dvec4v) - 708: 51(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 706 707 - 709: 51(fvec4) Load 53(dvec4v) - 710: 51(fvec4) FAdd 709 708 - Store 53(dvec4v) 710 - 711: 37(float) Load 39(doublev) - 712: 37(float) Load 39(doublev) - 713: 37(float) Load 39(doublev) - 714: 37(float) ExtInst 1(GLSL.std.450) 72(Refract) 711 712 713 - 715: 37(float) Load 39(doublev) - 716: 37(float) FAdd 715 714 - Store 39(doublev) 716 - 717: 41(fvec2) Load 43(dvec2v) - 718: 41(fvec2) Load 43(dvec2v) - 719: 37(float) Load 39(doublev) - 720: 41(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 717 718 719 - 721: 41(fvec2) Load 43(dvec2v) - 722: 41(fvec2) FAdd 721 720 - Store 43(dvec2v) 722 - 723: 46(fvec3) Load 48(dvec3v) - 724: 46(fvec3) Load 48(dvec3v) - 725: 37(float) Load 39(doublev) - 726: 46(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 723 724 725 - 727: 46(fvec3) Load 48(dvec3v) - 728: 46(fvec3) FAdd 727 726 - Store 48(dvec3v) 728 - 729: 51(fvec4) Load 53(dvec4v) - 730: 51(fvec4) Load 53(dvec4v) - 731: 37(float) Load 39(doublev) - 732: 51(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 729 730 731 - 733: 51(fvec4) Load 53(dvec4v) - 734: 51(fvec4) FAdd 733 732 - Store 53(dvec4v) 734 - 738: 41(fvec2) Load 43(dvec2v) - 739: 41(fvec2) Load 43(dvec2v) - 740: 735 OuterProduct 738 739 - Store 737(dmat2v) 740 - 744: 46(fvec3) Load 48(dvec3v) - 745: 46(fvec3) Load 48(dvec3v) - 746: 741 OuterProduct 744 745 - Store 743(dmat3v) 746 - 750: 51(fvec4) Load 53(dvec4v) - 751: 51(fvec4) Load 53(dvec4v) - 752: 747 OuterProduct 750 751 - Store 749(dmat4v) 752 - 756: 46(fvec3) Load 48(dvec3v) - 757: 41(fvec2) Load 43(dvec2v) - 758: 753 OuterProduct 756 757 - Store 755(dmat2x3v) 758 - 762: 41(fvec2) Load 43(dvec2v) - 763: 46(fvec3) Load 48(dvec3v) - 764: 759 OuterProduct 762 763 - Store 761(dmat3x2v) 764 - 768: 51(fvec4) Load 53(dvec4v) - 769: 41(fvec2) Load 43(dvec2v) - 770: 765 OuterProduct 768 769 - Store 767(dmat2x4v) 770 - 774: 41(fvec2) Load 43(dvec2v) - 775: 51(fvec4) Load 53(dvec4v) - 776: 771 OuterProduct 774 775 - Store 773(dmat4x2v) 776 - 780: 51(fvec4) Load 53(dvec4v) - 781: 46(fvec3) Load 48(dvec3v) - 782: 777 OuterProduct 780 781 - Store 779(dmat3x4v) 782 - 786: 46(fvec3) Load 48(dvec3v) - 787: 51(fvec4) Load 53(dvec4v) - 788: 783 OuterProduct 786 787 - Store 785(dmat4x3v) 788 - 789: 735 Load 737(dmat2v) - 790: 735 Load 737(dmat2v) - 791: 41(fvec2) CompositeExtract 789 0 - 792: 41(fvec2) CompositeExtract 790 0 - 793: 41(fvec2) FMul 791 792 - 794: 41(fvec2) CompositeExtract 789 1 - 795: 41(fvec2) CompositeExtract 790 1 - 796: 41(fvec2) FMul 794 795 - 797: 735 CompositeConstruct 793 796 - 798: 735 Load 737(dmat2v) - 799: 735 MatrixTimesMatrix 798 797 - Store 737(dmat2v) 799 - 800: 741 Load 743(dmat3v) - 801: 741 Load 743(dmat3v) - 802: 46(fvec3) CompositeExtract 800 0 - 803: 46(fvec3) CompositeExtract 801 0 - 804: 46(fvec3) FMul 802 803 - 805: 46(fvec3) CompositeExtract 800 1 - 806: 46(fvec3) CompositeExtract 801 1 - 807: 46(fvec3) FMul 805 806 - 808: 46(fvec3) CompositeExtract 800 2 - 809: 46(fvec3) CompositeExtract 801 2 - 810: 46(fvec3) FMul 808 809 - 811: 741 CompositeConstruct 804 807 810 - 812: 741 Load 743(dmat3v) - 813: 741 MatrixTimesMatrix 812 811 - Store 743(dmat3v) 813 - 814: 747 Load 749(dmat4v) - 815: 747 Load 749(dmat4v) - 816: 51(fvec4) CompositeExtract 814 0 - 817: 51(fvec4) CompositeExtract 815 0 - 818: 51(fvec4) FMul 816 817 - 819: 51(fvec4) CompositeExtract 814 1 - 820: 51(fvec4) CompositeExtract 815 1 - 821: 51(fvec4) FMul 819 820 - 822: 51(fvec4) CompositeExtract 814 2 - 823: 51(fvec4) CompositeExtract 815 2 - 824: 51(fvec4) FMul 822 823 - 825: 51(fvec4) CompositeExtract 814 3 - 826: 51(fvec4) CompositeExtract 815 3 - 827: 51(fvec4) FMul 825 826 - 828: 747 CompositeConstruct 818 821 824 827 - 829: 747 Load 749(dmat4v) - 830: 747 MatrixTimesMatrix 829 828 - Store 749(dmat4v) 830 - 831: 753 Load 755(dmat2x3v) - 832: 753 Load 755(dmat2x3v) - 833: 46(fvec3) CompositeExtract 831 0 - 834: 46(fvec3) CompositeExtract 832 0 - 835: 46(fvec3) FMul 833 834 - 836: 46(fvec3) CompositeExtract 831 1 - 837: 46(fvec3) CompositeExtract 832 1 - 838: 46(fvec3) FMul 836 837 - 839: 753 CompositeConstruct 835 838 - Store 755(dmat2x3v) 839 - 840: 765 Load 767(dmat2x4v) - 841: 765 Load 767(dmat2x4v) - 842: 51(fvec4) CompositeExtract 840 0 - 843: 51(fvec4) CompositeExtract 841 0 - 844: 51(fvec4) FMul 842 843 - 845: 51(fvec4) CompositeExtract 840 1 - 846: 51(fvec4) CompositeExtract 841 1 - 847: 51(fvec4) FMul 845 846 - 848: 765 CompositeConstruct 844 847 - Store 767(dmat2x4v) 848 - 849: 759 Load 761(dmat3x2v) - 850: 759 Load 761(dmat3x2v) - 851: 41(fvec2) CompositeExtract 849 0 - 852: 41(fvec2) CompositeExtract 850 0 - 853: 41(fvec2) FMul 851 852 - 854: 41(fvec2) CompositeExtract 849 1 - 855: 41(fvec2) CompositeExtract 850 1 - 856: 41(fvec2) FMul 854 855 - 857: 41(fvec2) CompositeExtract 849 2 - 858: 41(fvec2) CompositeExtract 850 2 - 859: 41(fvec2) FMul 857 858 - 860: 759 CompositeConstruct 853 856 859 - Store 761(dmat3x2v) 860 - 861: 777 Load 779(dmat3x4v) - 862: 777 Load 779(dmat3x4v) - 863: 51(fvec4) CompositeExtract 861 0 - 864: 51(fvec4) CompositeExtract 862 0 - 865: 51(fvec4) FMul 863 864 - 866: 51(fvec4) CompositeExtract 861 1 - 867: 51(fvec4) CompositeExtract 862 1 - 868: 51(fvec4) FMul 866 867 - 869: 51(fvec4) CompositeExtract 861 2 - 870: 51(fvec4) CompositeExtract 862 2 - 871: 51(fvec4) FMul 869 870 - 872: 777 CompositeConstruct 865 868 871 - Store 779(dmat3x4v) 872 - 873: 771 Load 773(dmat4x2v) - 874: 771 Load 773(dmat4x2v) - 875: 41(fvec2) CompositeExtract 873 0 - 876: 41(fvec2) CompositeExtract 874 0 - 877: 41(fvec2) FMul 875 876 - 878: 41(fvec2) CompositeExtract 873 1 - 879: 41(fvec2) CompositeExtract 874 1 - 880: 41(fvec2) FMul 878 879 - 881: 41(fvec2) CompositeExtract 873 2 - 882: 41(fvec2) CompositeExtract 874 2 - 883: 41(fvec2) FMul 881 882 - 884: 41(fvec2) CompositeExtract 873 3 - 885: 41(fvec2) CompositeExtract 874 3 - 886: 41(fvec2) FMul 884 885 - 887: 771 CompositeConstruct 877 880 883 886 - Store 773(dmat4x2v) 887 - 888: 783 Load 785(dmat4x3v) - 889: 783 Load 785(dmat4x3v) - 890: 46(fvec3) CompositeExtract 888 0 - 891: 46(fvec3) CompositeExtract 889 0 - 892: 46(fvec3) FMul 890 891 - 893: 46(fvec3) CompositeExtract 888 1 - 894: 46(fvec3) CompositeExtract 889 1 - 895: 46(fvec3) FMul 893 894 - 896: 46(fvec3) CompositeExtract 888 2 - 897: 46(fvec3) CompositeExtract 889 2 - 898: 46(fvec3) FMul 896 897 - 899: 46(fvec3) CompositeExtract 888 3 - 900: 46(fvec3) CompositeExtract 889 3 - 901: 46(fvec3) FMul 899 900 - 902: 783 CompositeConstruct 892 895 898 901 - Store 785(dmat4x3v) 902 - 903: 735 Load 737(dmat2v) - 904: 735 Transpose 903 - 905: 735 Load 737(dmat2v) - 906: 735 MatrixTimesMatrix 905 904 - Store 737(dmat2v) 906 - 907: 741 Load 743(dmat3v) - 908: 741 Transpose 907 - 909: 741 Load 743(dmat3v) - 910: 741 MatrixTimesMatrix 909 908 - Store 743(dmat3v) 910 - 911: 747 Load 749(dmat4v) - 912: 747 Transpose 911 - 913: 747 Load 749(dmat4v) - 914: 747 MatrixTimesMatrix 913 912 - Store 749(dmat4v) 914 - 915: 759 Load 761(dmat3x2v) - 916: 753 Transpose 915 - Store 755(dmat2x3v) 916 - 917: 753 Load 755(dmat2x3v) - 918: 759 Transpose 917 - Store 761(dmat3x2v) 918 - 919: 771 Load 773(dmat4x2v) - 920: 765 Transpose 919 - Store 767(dmat2x4v) 920 - 921: 765 Load 767(dmat2x4v) - 922: 771 Transpose 921 - Store 773(dmat4x2v) 922 - 923: 783 Load 785(dmat4x3v) - 924: 777 Transpose 923 - Store 779(dmat3x4v) 924 - 925: 777 Load 779(dmat3x4v) - 926: 783 Transpose 925 - Store 785(dmat4x3v) 926 - 927: 735 Load 737(dmat2v) - 928: 37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 927 - 929: 37(float) Load 39(doublev) - 930: 37(float) FAdd 929 928 - Store 39(doublev) 930 - 931: 741 Load 743(dmat3v) - 932: 37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 931 - 933: 37(float) Load 39(doublev) - 934: 37(float) FAdd 933 932 - Store 39(doublev) 934 - 935: 747 Load 749(dmat4v) - 936: 37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 935 - 937: 37(float) Load 39(doublev) - 938: 37(float) FAdd 937 936 - Store 39(doublev) 938 - 939: 735 Load 737(dmat2v) - 940: 735 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 939 - 941: 735 Load 737(dmat2v) - 942: 735 MatrixTimesMatrix 941 940 - Store 737(dmat2v) 942 - 943: 741 Load 743(dmat3v) - 944: 741 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 943 - 945: 741 Load 743(dmat3v) - 946: 741 MatrixTimesMatrix 945 944 - Store 743(dmat3v) 946 - 947: 747 Load 749(dmat4v) - 948: 747 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 947 - 949: 747 Load 749(dmat4v) - 950: 747 MatrixTimesMatrix 949 948 - Store 749(dmat4v) 950 - 951: 37(float) Load 39(doublev) - 953: 38(ptr) AccessChain 43(dvec2v) 952 - 954: 37(float) Load 953 - 955: 37(float) FAdd 951 954 - 957: 38(ptr) AccessChain 48(dvec3v) 956 - 958: 37(float) Load 957 - 959: 37(float) FAdd 955 958 - 961: 38(ptr) AccessChain 53(dvec4v) 960 - 962: 37(float) Load 961 - 963: 37(float) FAdd 959 962 - 965: 38(ptr) AccessChain 737(dmat2v) 964 952 - 966: 37(float) Load 965 - 967: 37(float) FAdd 963 966 - 969: 38(ptr) AccessChain 743(dmat3v) 968 956 - 970: 37(float) Load 969 - 971: 37(float) FAdd 967 970 - 972: 38(ptr) AccessChain 749(dmat4v) 25 960 - 973: 37(float) Load 972 - 974: 37(float) FAdd 971 973 - 975: 38(ptr) AccessChain 755(dmat2x3v) 964 952 - 976: 37(float) Load 975 - 977: 37(float) FAdd 974 976 - 978: 38(ptr) AccessChain 761(dmat3x2v) 964 952 - 979: 37(float) Load 978 - 980: 37(float) FAdd 977 979 - 981: 38(ptr) AccessChain 779(dmat3x4v) 968 956 - 982: 37(float) Load 981 - 983: 37(float) FAdd 980 982 - 984: 38(ptr) AccessChain 785(dmat4x3v) 968 956 - 985: 37(float) Load 984 - 986: 37(float) FAdd 983 985 - 987: 38(ptr) AccessChain 767(dmat2x4v) 964 952 - 988: 37(float) Load 987 - 989: 37(float) FAdd 986 988 - 990: 38(ptr) AccessChain 773(dmat4x2v) 964 952 - 991: 37(float) Load 990 - 992: 37(float) FAdd 989 991 - 993: 426(bool) Load 428(boolv) - 995: 10(float) Select 993 994 21 - 996: 37(float) FConvert 995 - 997: 37(float) FAdd 992 996 - 998: 435(bvec2) Load 437(bvec2v) - 999: 426(bool) CompositeExtract 998 0 - 1000: 10(float) Select 999 994 21 - 1001: 37(float) FConvert 1000 - 1002: 37(float) FAdd 997 1001 - 1003: 444(bvec3) Load 446(bvec3v) - 1004: 426(bool) CompositeExtract 1003 0 - 1005: 10(float) Select 1004 994 21 - 1006: 37(float) FConvert 1005 - 1007: 37(float) FAdd 1002 1006 - 1008: 453(bvec4) Load 455(bvec4v) - 1009: 426(bool) CompositeExtract 1008 0 - 1010: 10(float) Select 1009 994 21 - 1011: 37(float) FConvert 1010 - 1012: 37(float) FAdd 1007 1011 - 1013: 10(float) FConvert 1012 - 1014: 11(fvec4) Load 13(outp) - 1015: 11(fvec4) VectorTimesScalar 1014 1013 - Store 13(outp) 1015 + 41(doublev): 40(ptr) Variable Function + 45(dvec2v): 44(ptr) Variable Function + 50(dvec3v): 49(ptr) Variable Function + 55(dvec4v): 54(ptr) Variable Function + 430(boolv): 429(ptr) Variable Function + 439(bvec2v): 438(ptr) Variable Function + 448(bvec3v): 447(ptr) Variable Function + 457(bvec4v): 456(ptr) Variable Function + 556: 429(ptr) Variable Function + 565: 438(ptr) Variable Function + 574: 447(ptr) Variable Function + 583: 456(ptr) Variable Function + 739(dmat2v): 738(ptr) Variable Function + 745(dmat3v): 744(ptr) Variable Function + 751(dmat4v): 750(ptr) Variable Function + 757(dmat2x3v): 756(ptr) Variable Function + 763(dmat3x2v): 762(ptr) Variable Function + 769(dmat2x4v): 768(ptr) Variable Function + 775(dmat4x2v): 774(ptr) Variable Function + 781(dmat3x4v): 780(ptr) Variable Function + 787(dmat4x3v): 786(ptr) Variable Function + Store 41(doublev) 42 + Store 45(dvec2v) 47 + Store 50(dvec3v) 52 + 56: 39(float) Load 41(doublev) + 57: 53(fvec4) CompositeConstruct 56 56 56 56 + 58: 53(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 57 + Store 55(dvec4v) 58 + 59: 39(float) Load 41(doublev) + 60: 39(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 59 + 61: 39(float) Load 41(doublev) + 62: 39(float) FAdd 61 60 + Store 41(doublev) 62 + 63: 43(fvec2) Load 45(dvec2v) + 64: 43(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 63 + 65: 43(fvec2) Load 45(dvec2v) + 66: 43(fvec2) FAdd 65 64 + Store 45(dvec2v) 66 + 67: 48(fvec3) Load 50(dvec3v) + 68: 48(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 67 + 69: 48(fvec3) Load 50(dvec3v) + 70: 48(fvec3) FAdd 69 68 + Store 50(dvec3v) 70 + 71: 53(fvec4) Load 55(dvec4v) + 72: 53(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 71 + 73: 53(fvec4) Load 55(dvec4v) + 74: 53(fvec4) FAdd 73 72 + Store 55(dvec4v) 74 + 75: 39(float) Load 41(doublev) + 76: 39(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75 + 77: 39(float) Load 41(doublev) + 78: 39(float) FAdd 77 76 + Store 41(doublev) 78 + 79: 43(fvec2) Load 45(dvec2v) + 80: 43(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 79 + 81: 43(fvec2) Load 45(dvec2v) + 82: 43(fvec2) FAdd 81 80 + Store 45(dvec2v) 82 + 83: 48(fvec3) Load 50(dvec3v) + 84: 48(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 83 + 85: 48(fvec3) Load 50(dvec3v) + 86: 48(fvec3) FAdd 85 84 + Store 50(dvec3v) 86 + 87: 53(fvec4) Load 55(dvec4v) + 88: 53(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 87 + 89: 53(fvec4) Load 55(dvec4v) + 90: 53(fvec4) FAdd 89 88 + Store 55(dvec4v) 90 + 91: 39(float) Load 41(doublev) + 92: 39(float) ExtInst 1(GLSL.std.450) 6(FSign) 91 + 93: 39(float) Load 41(doublev) + 94: 39(float) FAdd 93 92 + Store 41(doublev) 94 + 95: 43(fvec2) Load 45(dvec2v) + 96: 43(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 95 + 97: 43(fvec2) Load 45(dvec2v) + 98: 43(fvec2) FAdd 97 96 + Store 45(dvec2v) 98 + 99: 48(fvec3) Load 50(dvec3v) + 100: 48(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 99 + 101: 48(fvec3) Load 50(dvec3v) + 102: 48(fvec3) FAdd 101 100 + Store 50(dvec3v) 102 + 103: 53(fvec4) Load 55(dvec4v) + 104: 53(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 103 + 105: 53(fvec4) Load 55(dvec4v) + 106: 53(fvec4) FAdd 105 104 + Store 55(dvec4v) 106 + 107: 39(float) Load 41(doublev) + 108: 39(float) ExtInst 1(GLSL.std.450) 8(Floor) 107 + 109: 39(float) Load 41(doublev) + 110: 39(float) FAdd 109 108 + Store 41(doublev) 110 + 111: 43(fvec2) Load 45(dvec2v) + 112: 43(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 111 + 113: 43(fvec2) Load 45(dvec2v) + 114: 43(fvec2) FAdd 113 112 + Store 45(dvec2v) 114 + 115: 48(fvec3) Load 50(dvec3v) + 116: 48(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 115 + 117: 48(fvec3) Load 50(dvec3v) + 118: 48(fvec3) FAdd 117 116 + Store 50(dvec3v) 118 + 119: 53(fvec4) Load 55(dvec4v) + 120: 53(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 119 + 121: 53(fvec4) Load 55(dvec4v) + 122: 53(fvec4) FAdd 121 120 + Store 55(dvec4v) 122 + 123: 39(float) Load 41(doublev) + 124: 39(float) ExtInst 1(GLSL.std.450) 3(Trunc) 123 + 125: 39(float) Load 41(doublev) + 126: 39(float) FAdd 125 124 + Store 41(doublev) 126 + 127: 43(fvec2) Load 45(dvec2v) + 128: 43(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 127 + 129: 43(fvec2) Load 45(dvec2v) + 130: 43(fvec2) FAdd 129 128 + Store 45(dvec2v) 130 + 131: 48(fvec3) Load 50(dvec3v) + 132: 48(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 131 + 133: 48(fvec3) Load 50(dvec3v) + 134: 48(fvec3) FAdd 133 132 + Store 50(dvec3v) 134 + 135: 53(fvec4) Load 55(dvec4v) + 136: 53(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 135 + 137: 53(fvec4) Load 55(dvec4v) + 138: 53(fvec4) FAdd 137 136 + Store 55(dvec4v) 138 + 139: 39(float) Load 41(doublev) + 140: 39(float) ExtInst 1(GLSL.std.450) 1(Round) 139 + 141: 39(float) Load 41(doublev) + 142: 39(float) FAdd 141 140 + Store 41(doublev) 142 + 143: 43(fvec2) Load 45(dvec2v) + 144: 43(fvec2) ExtInst 1(GLSL.std.450) 1(Round) 143 + 145: 43(fvec2) Load 45(dvec2v) + 146: 43(fvec2) FAdd 145 144 + Store 45(dvec2v) 146 + 147: 48(fvec3) Load 50(dvec3v) + 148: 48(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 147 + 149: 48(fvec3) Load 50(dvec3v) + 150: 48(fvec3) FAdd 149 148 + Store 50(dvec3v) 150 + 151: 53(fvec4) Load 55(dvec4v) + 152: 53(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 151 + 153: 53(fvec4) Load 55(dvec4v) + 154: 53(fvec4) FAdd 153 152 + Store 55(dvec4v) 154 + 155: 39(float) Load 41(doublev) + 156: 39(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 155 + 157: 39(float) Load 41(doublev) + 158: 39(float) FAdd 157 156 + Store 41(doublev) 158 + 159: 43(fvec2) Load 45(dvec2v) + 160: 43(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 159 + 161: 43(fvec2) Load 45(dvec2v) + 162: 43(fvec2) FAdd 161 160 + Store 45(dvec2v) 162 + 163: 48(fvec3) Load 50(dvec3v) + 164: 48(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 163 + 165: 48(fvec3) Load 50(dvec3v) + 166: 48(fvec3) FAdd 165 164 + Store 50(dvec3v) 166 + 167: 53(fvec4) Load 55(dvec4v) + 168: 53(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 167 + 169: 53(fvec4) Load 55(dvec4v) + 170: 53(fvec4) FAdd 169 168 + Store 55(dvec4v) 170 + 171: 39(float) Load 41(doublev) + 172: 39(float) ExtInst 1(GLSL.std.450) 9(Ceil) 171 + 173: 39(float) Load 41(doublev) + 174: 39(float) FAdd 173 172 + Store 41(doublev) 174 + 175: 43(fvec2) Load 45(dvec2v) + 176: 43(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 175 + 177: 43(fvec2) Load 45(dvec2v) + 178: 43(fvec2) FAdd 177 176 + Store 45(dvec2v) 178 + 179: 48(fvec3) Load 50(dvec3v) + 180: 48(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 179 + 181: 48(fvec3) Load 50(dvec3v) + 182: 48(fvec3) FAdd 181 180 + Store 50(dvec3v) 182 + 183: 53(fvec4) Load 55(dvec4v) + 184: 53(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 183 + 185: 53(fvec4) Load 55(dvec4v) + 186: 53(fvec4) FAdd 185 184 + Store 55(dvec4v) 186 + 187: 39(float) Load 41(doublev) + 188: 39(float) ExtInst 1(GLSL.std.450) 10(Fract) 187 + 189: 39(float) Load 41(doublev) + 190: 39(float) FAdd 189 188 + Store 41(doublev) 190 + 191: 43(fvec2) Load 45(dvec2v) + 192: 43(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 191 + 193: 43(fvec2) Load 45(dvec2v) + 194: 43(fvec2) FAdd 193 192 + Store 45(dvec2v) 194 + 195: 48(fvec3) Load 50(dvec3v) + 196: 48(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 195 + 197: 48(fvec3) Load 50(dvec3v) + 198: 48(fvec3) FAdd 197 196 + Store 50(dvec3v) 198 + 199: 53(fvec4) Load 55(dvec4v) + 200: 53(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 199 + 201: 53(fvec4) Load 55(dvec4v) + 202: 53(fvec4) FAdd 201 200 + Store 55(dvec4v) 202 + 203: 39(float) Load 41(doublev) + 204: 39(float) Load 41(doublev) + 205: 39(float) FMod 203 204 + 206: 39(float) Load 41(doublev) + 207: 39(float) FAdd 206 205 + Store 41(doublev) 207 + 208: 43(fvec2) Load 45(dvec2v) + 209: 39(float) Load 41(doublev) + 210: 43(fvec2) CompositeConstruct 209 209 + 211: 43(fvec2) FMod 208 210 + 212: 43(fvec2) Load 45(dvec2v) + 213: 43(fvec2) FAdd 212 211 + Store 45(dvec2v) 213 + 214: 48(fvec3) Load 50(dvec3v) + 215: 39(float) Load 41(doublev) + 216: 48(fvec3) CompositeConstruct 215 215 215 + 217: 48(fvec3) FMod 214 216 + 218: 48(fvec3) Load 50(dvec3v) + 219: 48(fvec3) FAdd 218 217 + Store 50(dvec3v) 219 + 220: 53(fvec4) Load 55(dvec4v) + 221: 39(float) Load 41(doublev) + 222: 53(fvec4) CompositeConstruct 221 221 221 221 + 223: 53(fvec4) FMod 220 222 + 224: 53(fvec4) Load 55(dvec4v) + 225: 53(fvec4) FAdd 224 223 + Store 55(dvec4v) 225 + 226: 43(fvec2) Load 45(dvec2v) + 227: 43(fvec2) Load 45(dvec2v) + 228: 43(fvec2) FMod 226 227 + 229: 43(fvec2) Load 45(dvec2v) + 230: 43(fvec2) FAdd 229 228 + Store 45(dvec2v) 230 + 231: 48(fvec3) Load 50(dvec3v) + 232: 48(fvec3) Load 50(dvec3v) + 233: 48(fvec3) FMod 231 232 + 234: 48(fvec3) Load 50(dvec3v) + 235: 48(fvec3) FAdd 234 233 + Store 50(dvec3v) 235 + 236: 53(fvec4) Load 55(dvec4v) + 237: 53(fvec4) Load 55(dvec4v) + 238: 53(fvec4) FMod 236 237 + 239: 53(fvec4) Load 55(dvec4v) + 240: 53(fvec4) FAdd 239 238 + Store 55(dvec4v) 240 + 241: 39(float) Load 41(doublev) + 242: 39(float) ExtInst 1(GLSL.std.450) 35(Modf) 241 41(doublev) + 243: 39(float) Load 41(doublev) + 244: 39(float) FAdd 243 242 + Store 41(doublev) 244 + 245: 43(fvec2) Load 45(dvec2v) + 246: 43(fvec2) ExtInst 1(GLSL.std.450) 35(Modf) 245 45(dvec2v) + 247: 43(fvec2) Load 45(dvec2v) + 248: 43(fvec2) FAdd 247 246 + Store 45(dvec2v) 248 + 249: 48(fvec3) Load 50(dvec3v) + 250: 48(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 249 50(dvec3v) + 251: 48(fvec3) Load 50(dvec3v) + 252: 48(fvec3) FAdd 251 250 + Store 50(dvec3v) 252 + 253: 53(fvec4) Load 55(dvec4v) + 254: 53(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 253 55(dvec4v) + 255: 53(fvec4) Load 55(dvec4v) + 256: 53(fvec4) FAdd 255 254 + Store 55(dvec4v) 256 + 257: 39(float) Load 41(doublev) + 258: 39(float) Load 41(doublev) + 259: 39(float) ExtInst 1(GLSL.std.450) 37(FMin) 257 258 + 260: 39(float) Load 41(doublev) + 261: 39(float) FAdd 260 259 + Store 41(doublev) 261 + 262: 43(fvec2) Load 45(dvec2v) + 263: 39(float) Load 41(doublev) + 264: 43(fvec2) CompositeConstruct 263 263 + 265: 43(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 262 264 + 266: 43(fvec2) Load 45(dvec2v) + 267: 43(fvec2) FAdd 266 265 + Store 45(dvec2v) 267 + 268: 48(fvec3) Load 50(dvec3v) + 269: 39(float) Load 41(doublev) + 270: 48(fvec3) CompositeConstruct 269 269 269 + 271: 48(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 268 270 + 272: 48(fvec3) Load 50(dvec3v) + 273: 48(fvec3) FAdd 272 271 + Store 50(dvec3v) 273 + 274: 53(fvec4) Load 55(dvec4v) + 275: 39(float) Load 41(doublev) + 276: 53(fvec4) CompositeConstruct 275 275 275 275 + 277: 53(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 274 276 + 278: 53(fvec4) Load 55(dvec4v) + 279: 53(fvec4) FAdd 278 277 + Store 55(dvec4v) 279 + 280: 43(fvec2) Load 45(dvec2v) + 281: 43(fvec2) Load 45(dvec2v) + 282: 43(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 280 281 + 283: 43(fvec2) Load 45(dvec2v) + 284: 43(fvec2) FAdd 283 282 + Store 45(dvec2v) 284 + 285: 48(fvec3) Load 50(dvec3v) + 286: 48(fvec3) Load 50(dvec3v) + 287: 48(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 285 286 + 288: 48(fvec3) Load 50(dvec3v) + 289: 48(fvec3) FAdd 288 287 + Store 50(dvec3v) 289 + 290: 53(fvec4) Load 55(dvec4v) + 291: 53(fvec4) Load 55(dvec4v) + 292: 53(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 290 291 + 293: 53(fvec4) Load 55(dvec4v) + 294: 53(fvec4) FAdd 293 292 + Store 55(dvec4v) 294 + 295: 39(float) Load 41(doublev) + 296: 39(float) Load 41(doublev) + 297: 39(float) ExtInst 1(GLSL.std.450) 40(FMax) 295 296 + 298: 39(float) Load 41(doublev) + 299: 39(float) FAdd 298 297 + Store 41(doublev) 299 + 300: 43(fvec2) Load 45(dvec2v) + 301: 39(float) Load 41(doublev) + 302: 43(fvec2) CompositeConstruct 301 301 + 303: 43(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 300 302 + 304: 43(fvec2) Load 45(dvec2v) + 305: 43(fvec2) FAdd 304 303 + Store 45(dvec2v) 305 + 306: 48(fvec3) Load 50(dvec3v) + 307: 39(float) Load 41(doublev) + 308: 48(fvec3) CompositeConstruct 307 307 307 + 309: 48(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 306 308 + 310: 48(fvec3) Load 50(dvec3v) + 311: 48(fvec3) FAdd 310 309 + Store 50(dvec3v) 311 + 312: 53(fvec4) Load 55(dvec4v) + 313: 39(float) Load 41(doublev) + 314: 53(fvec4) CompositeConstruct 313 313 313 313 + 315: 53(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 312 314 + 316: 53(fvec4) Load 55(dvec4v) + 317: 53(fvec4) FAdd 316 315 + Store 55(dvec4v) 317 + 318: 43(fvec2) Load 45(dvec2v) + 319: 43(fvec2) Load 45(dvec2v) + 320: 43(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 318 319 + 321: 43(fvec2) Load 45(dvec2v) + 322: 43(fvec2) FAdd 321 320 + Store 45(dvec2v) 322 + 323: 48(fvec3) Load 50(dvec3v) + 324: 48(fvec3) Load 50(dvec3v) + 325: 48(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 323 324 + 326: 48(fvec3) Load 50(dvec3v) + 327: 48(fvec3) FAdd 326 325 + Store 50(dvec3v) 327 + 328: 53(fvec4) Load 55(dvec4v) + 329: 53(fvec4) Load 55(dvec4v) + 330: 53(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 328 329 + 331: 53(fvec4) Load 55(dvec4v) + 332: 53(fvec4) FAdd 331 330 + Store 55(dvec4v) 332 + 333: 39(float) Load 41(doublev) + 334: 39(float) Load 41(doublev) + 335: 39(float) Load 41(doublev) + 336: 39(float) ExtInst 1(GLSL.std.450) 43(FClamp) 333 334 335 + 337: 39(float) Load 41(doublev) + 338: 39(float) FAdd 337 336 + Store 41(doublev) 338 + 339: 43(fvec2) Load 45(dvec2v) + 340: 39(float) Load 41(doublev) + 341: 39(float) Load 41(doublev) + 342: 43(fvec2) CompositeConstruct 340 340 + 343: 43(fvec2) CompositeConstruct 341 341 + 344: 43(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 339 342 343 + 345: 43(fvec2) Load 45(dvec2v) + 346: 43(fvec2) FAdd 345 344 + Store 45(dvec2v) 346 + 347: 48(fvec3) Load 50(dvec3v) + 348: 39(float) Load 41(doublev) + 349: 39(float) Load 41(doublev) + 350: 48(fvec3) CompositeConstruct 348 348 348 + 351: 48(fvec3) CompositeConstruct 349 349 349 + 352: 48(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 347 350 351 + 353: 48(fvec3) Load 50(dvec3v) + 354: 48(fvec3) FAdd 353 352 + Store 50(dvec3v) 354 + 355: 53(fvec4) Load 55(dvec4v) + 356: 39(float) Load 41(doublev) + 357: 39(float) Load 41(doublev) + 358: 53(fvec4) CompositeConstruct 356 356 356 356 + 359: 53(fvec4) CompositeConstruct 357 357 357 357 + 360: 53(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 355 358 359 + 361: 53(fvec4) Load 55(dvec4v) + 362: 53(fvec4) FAdd 361 360 + Store 55(dvec4v) 362 + 363: 43(fvec2) Load 45(dvec2v) + 364: 43(fvec2) Load 45(dvec2v) + 365: 43(fvec2) Load 45(dvec2v) + 366: 43(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 363 364 365 + 367: 43(fvec2) Load 45(dvec2v) + 368: 43(fvec2) FAdd 367 366 + Store 45(dvec2v) 368 + 369: 48(fvec3) Load 50(dvec3v) + 370: 48(fvec3) Load 50(dvec3v) + 371: 48(fvec3) Load 50(dvec3v) + 372: 48(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371 + 373: 48(fvec3) Load 50(dvec3v) + 374: 48(fvec3) FAdd 373 372 + Store 50(dvec3v) 374 + 375: 53(fvec4) Load 55(dvec4v) + 376: 53(fvec4) Load 55(dvec4v) + 377: 53(fvec4) Load 55(dvec4v) + 378: 53(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 375 376 377 + 379: 53(fvec4) Load 55(dvec4v) + 380: 53(fvec4) FAdd 379 378 + Store 55(dvec4v) 380 + 381: 39(float) Load 41(doublev) + 382: 39(float) Load 41(doublev) + 383: 39(float) Load 41(doublev) + 384: 39(float) ExtInst 1(GLSL.std.450) 46(FMix) 381 382 383 + 385: 39(float) Load 41(doublev) + 386: 39(float) FAdd 385 384 + Store 41(doublev) 386 + 387: 43(fvec2) Load 45(dvec2v) + 388: 43(fvec2) Load 45(dvec2v) + 389: 39(float) Load 41(doublev) + 390: 43(fvec2) CompositeConstruct 389 389 + 391: 43(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 387 388 390 + 392: 43(fvec2) Load 45(dvec2v) + 393: 43(fvec2) FAdd 392 391 + Store 45(dvec2v) 393 + 394: 48(fvec3) Load 50(dvec3v) + 395: 48(fvec3) Load 50(dvec3v) + 396: 39(float) Load 41(doublev) + 397: 48(fvec3) CompositeConstruct 396 396 396 + 398: 48(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 394 395 397 + 399: 48(fvec3) Load 50(dvec3v) + 400: 48(fvec3) FAdd 399 398 + Store 50(dvec3v) 400 + 401: 53(fvec4) Load 55(dvec4v) + 402: 53(fvec4) Load 55(dvec4v) + 403: 39(float) Load 41(doublev) + 404: 53(fvec4) CompositeConstruct 403 403 403 403 + 405: 53(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 401 402 404 + 406: 53(fvec4) Load 55(dvec4v) + 407: 53(fvec4) FAdd 406 405 + Store 55(dvec4v) 407 + 408: 43(fvec2) Load 45(dvec2v) + 409: 43(fvec2) Load 45(dvec2v) + 410: 43(fvec2) Load 45(dvec2v) + 411: 43(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 408 409 410 + 412: 43(fvec2) Load 45(dvec2v) + 413: 43(fvec2) FAdd 412 411 + Store 45(dvec2v) 413 + 414: 48(fvec3) Load 50(dvec3v) + 415: 48(fvec3) Load 50(dvec3v) + 416: 48(fvec3) Load 50(dvec3v) + 417: 48(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 414 415 416 + 418: 48(fvec3) Load 50(dvec3v) + 419: 48(fvec3) FAdd 418 417 + Store 50(dvec3v) 419 + 420: 53(fvec4) Load 55(dvec4v) + 421: 53(fvec4) Load 55(dvec4v) + 422: 53(fvec4) Load 55(dvec4v) + 423: 53(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 420 421 422 + 424: 53(fvec4) Load 55(dvec4v) + 425: 53(fvec4) FAdd 424 423 + Store 55(dvec4v) 425 + 426: 39(float) Load 41(doublev) + 427: 39(float) Load 41(doublev) + 431: 428(bool) Load 430(boolv) + 432: 39(float) Select 431 427 426 + 433: 39(float) Load 41(doublev) + 434: 39(float) FAdd 433 432 + Store 41(doublev) 434 + 435: 43(fvec2) Load 45(dvec2v) + 436: 43(fvec2) Load 45(dvec2v) + 440: 437(bvec2) Load 439(bvec2v) + 441: 43(fvec2) Select 440 436 435 + 442: 43(fvec2) Load 45(dvec2v) + 443: 43(fvec2) FAdd 442 441 + Store 45(dvec2v) 443 + 444: 48(fvec3) Load 50(dvec3v) + 445: 48(fvec3) Load 50(dvec3v) + 449: 446(bvec3) Load 448(bvec3v) + 450: 48(fvec3) Select 449 445 444 + 451: 48(fvec3) Load 50(dvec3v) + 452: 48(fvec3) FAdd 451 450 + Store 50(dvec3v) 452 + 453: 53(fvec4) Load 55(dvec4v) + 454: 53(fvec4) Load 55(dvec4v) + 458: 455(bvec4) Load 457(bvec4v) + 459: 53(fvec4) Select 458 454 453 + 460: 53(fvec4) Load 55(dvec4v) + 461: 53(fvec4) FAdd 460 459 + Store 55(dvec4v) 461 + 462: 39(float) Load 41(doublev) + 463: 39(float) Load 41(doublev) + 464: 39(float) ExtInst 1(GLSL.std.450) 48(Step) 462 463 + 465: 39(float) Load 41(doublev) + 466: 39(float) FAdd 465 464 + Store 41(doublev) 466 + 467: 43(fvec2) Load 45(dvec2v) + 468: 43(fvec2) Load 45(dvec2v) + 469: 43(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 467 468 + 470: 43(fvec2) Load 45(dvec2v) + 471: 43(fvec2) FAdd 470 469 + Store 45(dvec2v) 471 + 472: 48(fvec3) Load 50(dvec3v) + 473: 48(fvec3) Load 50(dvec3v) + 474: 48(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 472 473 + 475: 48(fvec3) Load 50(dvec3v) + 476: 48(fvec3) FAdd 475 474 + Store 50(dvec3v) 476 + 477: 53(fvec4) Load 55(dvec4v) + 478: 53(fvec4) Load 55(dvec4v) + 479: 53(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 477 478 + 480: 53(fvec4) Load 55(dvec4v) + 481: 53(fvec4) FAdd 480 479 + Store 55(dvec4v) 481 + 482: 39(float) Load 41(doublev) + 483: 43(fvec2) Load 45(dvec2v) + 484: 43(fvec2) CompositeConstruct 482 482 + 485: 43(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 484 483 + 486: 43(fvec2) Load 45(dvec2v) + 487: 43(fvec2) FAdd 486 485 + Store 45(dvec2v) 487 + 488: 39(float) Load 41(doublev) + 489: 48(fvec3) Load 50(dvec3v) + 490: 48(fvec3) CompositeConstruct 488 488 488 + 491: 48(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 490 489 + 492: 48(fvec3) Load 50(dvec3v) + 493: 48(fvec3) FAdd 492 491 + Store 50(dvec3v) 493 + 494: 39(float) Load 41(doublev) + 495: 53(fvec4) Load 55(dvec4v) + 496: 53(fvec4) CompositeConstruct 494 494 494 494 + 497: 53(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 496 495 + 498: 53(fvec4) Load 55(dvec4v) + 499: 53(fvec4) FAdd 498 497 + Store 55(dvec4v) 499 + 500: 39(float) Load 41(doublev) + 501: 39(float) Load 41(doublev) + 502: 39(float) Load 41(doublev) + 503: 39(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 500 501 502 + 504: 39(float) Load 41(doublev) + 505: 39(float) FAdd 504 503 + Store 41(doublev) 505 + 506: 43(fvec2) Load 45(dvec2v) + 507: 43(fvec2) Load 45(dvec2v) + 508: 43(fvec2) Load 45(dvec2v) + 509: 43(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 506 507 508 + 510: 43(fvec2) Load 45(dvec2v) + 511: 43(fvec2) FAdd 510 509 + Store 45(dvec2v) 511 + 512: 48(fvec3) Load 50(dvec3v) + 513: 48(fvec3) Load 50(dvec3v) + 514: 48(fvec3) Load 50(dvec3v) + 515: 48(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 512 513 514 + 516: 48(fvec3) Load 50(dvec3v) + 517: 48(fvec3) FAdd 516 515 + Store 50(dvec3v) 517 + 518: 53(fvec4) Load 55(dvec4v) + 519: 53(fvec4) Load 55(dvec4v) + 520: 53(fvec4) Load 55(dvec4v) + 521: 53(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 518 519 520 + 522: 53(fvec4) Load 55(dvec4v) + 523: 53(fvec4) FAdd 522 521 + Store 55(dvec4v) 523 + 524: 39(float) Load 41(doublev) + 525: 39(float) Load 41(doublev) + 526: 43(fvec2) Load 45(dvec2v) + 527: 43(fvec2) CompositeConstruct 524 524 + 528: 43(fvec2) CompositeConstruct 525 525 + 529: 43(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 527 528 526 + 530: 43(fvec2) Load 45(dvec2v) + 531: 43(fvec2) FAdd 530 529 + Store 45(dvec2v) 531 + 532: 39(float) Load 41(doublev) + 533: 39(float) Load 41(doublev) + 534: 48(fvec3) Load 50(dvec3v) + 535: 48(fvec3) CompositeConstruct 532 532 532 + 536: 48(fvec3) CompositeConstruct 533 533 533 + 537: 48(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 535 536 534 + 538: 48(fvec3) Load 50(dvec3v) + 539: 48(fvec3) FAdd 538 537 + Store 50(dvec3v) 539 + 540: 39(float) Load 41(doublev) + 541: 39(float) Load 41(doublev) + 542: 53(fvec4) Load 55(dvec4v) + 543: 53(fvec4) CompositeConstruct 540 540 540 540 + 544: 53(fvec4) CompositeConstruct 541 541 541 541 + 545: 53(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 543 544 542 + 546: 53(fvec4) Load 55(dvec4v) + 547: 53(fvec4) FAdd 546 545 + Store 55(dvec4v) 547 + 548: 39(float) Load 41(doublev) + 549: 428(bool) IsNan 548 + Store 430(boolv) 549 + 550: 43(fvec2) Load 45(dvec2v) + 551: 437(bvec2) IsNan 550 + Store 439(bvec2v) 551 + 552: 48(fvec3) Load 50(dvec3v) + 553: 446(bvec3) IsNan 552 + Store 448(bvec3v) 553 + 554: 53(fvec4) Load 55(dvec4v) + 555: 455(bvec4) IsNan 554 + Store 457(bvec4v) 555 + 557: 428(bool) Load 430(boolv) + SelectionMerge 559 None + BranchConditional 557 558 562 + 558: Label + 560: 39(float) Load 41(doublev) + 561: 428(bool) IsInf 560 + Store 556 561 + Branch 559 + 562: Label + Store 556 563 + Branch 559 + 559: Label + 564: 428(bool) Load 556 + Store 430(boolv) 564 + 566: 428(bool) Load 430(boolv) + SelectionMerge 568 None + BranchConditional 566 567 571 + 567: Label + 569: 43(fvec2) Load 45(dvec2v) + 570: 437(bvec2) IsInf 569 + Store 565 570 + Branch 568 + 571: Label + Store 565 572 + Branch 568 + 568: Label + 573: 437(bvec2) Load 565 + Store 439(bvec2v) 573 + 575: 428(bool) Load 430(boolv) + SelectionMerge 577 None + BranchConditional 575 576 580 + 576: Label + 578: 48(fvec3) Load 50(dvec3v) + 579: 446(bvec3) IsInf 578 + Store 574 579 + Branch 577 + 580: Label + Store 574 581 + Branch 577 + 577: Label + 582: 446(bvec3) Load 574 + Store 448(bvec3v) 582 + 584: 428(bool) Load 430(boolv) + SelectionMerge 586 None + BranchConditional 584 585 589 + 585: Label + 587: 53(fvec4) Load 55(dvec4v) + 588: 455(bvec4) IsInf 587 + Store 583 588 + Branch 586 + 589: Label + Store 583 590 + Branch 586 + 586: Label + 591: 455(bvec4) Load 583 + Store 457(bvec4v) 591 + 592: 39(float) Load 41(doublev) + 593: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 592 + 594: 39(float) Load 41(doublev) + 595: 39(float) FAdd 594 593 + Store 41(doublev) 595 + 596: 43(fvec2) Load 45(dvec2v) + 597: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 596 + 598: 39(float) Load 41(doublev) + 599: 39(float) FAdd 598 597 + Store 41(doublev) 599 + 600: 48(fvec3) Load 50(dvec3v) + 601: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 600 + 602: 39(float) Load 41(doublev) + 603: 39(float) FAdd 602 601 + Store 41(doublev) 603 + 604: 53(fvec4) Load 55(dvec4v) + 605: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 604 + 606: 39(float) Load 41(doublev) + 607: 39(float) FAdd 606 605 + Store 41(doublev) 607 + 608: 39(float) Load 41(doublev) + 609: 39(float) Load 41(doublev) + 610: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 608 609 + 611: 39(float) Load 41(doublev) + 612: 39(float) FAdd 611 610 + Store 41(doublev) 612 + 613: 43(fvec2) Load 45(dvec2v) + 614: 43(fvec2) Load 45(dvec2v) + 615: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 613 614 + 616: 39(float) Load 41(doublev) + 617: 39(float) FAdd 616 615 + Store 41(doublev) 617 + 618: 48(fvec3) Load 50(dvec3v) + 619: 48(fvec3) Load 50(dvec3v) + 620: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 618 619 + 621: 39(float) Load 41(doublev) + 622: 39(float) FAdd 621 620 + Store 41(doublev) 622 + 623: 53(fvec4) Load 55(dvec4v) + 624: 53(fvec4) Load 55(dvec4v) + 625: 39(float) ExtInst 1(GLSL.std.450) 67(Distance) 623 624 + 626: 39(float) Load 41(doublev) + 627: 39(float) FAdd 626 625 + Store 41(doublev) 627 + 628: 39(float) Load 41(doublev) + 629: 39(float) Load 41(doublev) + 630: 39(float) FMul 628 629 + 631: 39(float) Load 41(doublev) + 632: 39(float) FAdd 631 630 + Store 41(doublev) 632 + 633: 43(fvec2) Load 45(dvec2v) + 634: 43(fvec2) Load 45(dvec2v) + 635: 39(float) Dot 633 634 + 636: 39(float) Load 41(doublev) + 637: 39(float) FAdd 636 635 + Store 41(doublev) 637 + 638: 48(fvec3) Load 50(dvec3v) + 639: 48(fvec3) Load 50(dvec3v) + 640: 39(float) Dot 638 639 + 641: 39(float) Load 41(doublev) + 642: 39(float) FAdd 641 640 + Store 41(doublev) 642 + 643: 53(fvec4) Load 55(dvec4v) + 644: 53(fvec4) Load 55(dvec4v) + 645: 39(float) Dot 643 644 + 646: 39(float) Load 41(doublev) + 647: 39(float) FAdd 646 645 + Store 41(doublev) 647 + 648: 48(fvec3) Load 50(dvec3v) + 649: 48(fvec3) Load 50(dvec3v) + 650: 48(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 648 649 + 651: 48(fvec3) Load 50(dvec3v) + 652: 48(fvec3) FAdd 651 650 + Store 50(dvec3v) 652 + 653: 39(float) Load 41(doublev) + 654: 39(float) ExtInst 1(GLSL.std.450) 69(Normalize) 653 + 655: 39(float) Load 41(doublev) + 656: 39(float) FAdd 655 654 + Store 41(doublev) 656 + 657: 43(fvec2) Load 45(dvec2v) + 658: 43(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 657 + 659: 43(fvec2) Load 45(dvec2v) + 660: 43(fvec2) FAdd 659 658 + Store 45(dvec2v) 660 + 661: 48(fvec3) Load 50(dvec3v) + 662: 48(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 661 + 663: 48(fvec3) Load 50(dvec3v) + 664: 48(fvec3) FAdd 663 662 + Store 50(dvec3v) 664 + 665: 53(fvec4) Load 55(dvec4v) + 666: 53(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 665 + 667: 53(fvec4) Load 55(dvec4v) + 668: 53(fvec4) FAdd 667 666 + Store 55(dvec4v) 668 + 669: 39(float) Load 41(doublev) + 670: 39(float) Load 41(doublev) + 671: 39(float) Load 41(doublev) + 672: 39(float) ExtInst 1(GLSL.std.450) 70(FaceForward) 669 670 671 + 673: 39(float) Load 41(doublev) + 674: 39(float) FAdd 673 672 + Store 41(doublev) 674 + 675: 43(fvec2) Load 45(dvec2v) + 676: 43(fvec2) Load 45(dvec2v) + 677: 43(fvec2) Load 45(dvec2v) + 678: 43(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 + 679: 43(fvec2) Load 45(dvec2v) + 680: 43(fvec2) FAdd 679 678 + Store 45(dvec2v) 680 + 681: 48(fvec3) Load 50(dvec3v) + 682: 48(fvec3) Load 50(dvec3v) + 683: 48(fvec3) Load 50(dvec3v) + 684: 48(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 681 682 683 + 685: 48(fvec3) Load 50(dvec3v) + 686: 48(fvec3) FAdd 685 684 + Store 50(dvec3v) 686 + 687: 53(fvec4) Load 55(dvec4v) + 688: 53(fvec4) Load 55(dvec4v) + 689: 53(fvec4) Load 55(dvec4v) + 690: 53(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 687 688 689 + 691: 53(fvec4) Load 55(dvec4v) + 692: 53(fvec4) FAdd 691 690 + Store 55(dvec4v) 692 + 693: 39(float) Load 41(doublev) + 694: 39(float) Load 41(doublev) + 695: 39(float) ExtInst 1(GLSL.std.450) 71(Reflect) 693 694 + 696: 39(float) Load 41(doublev) + 697: 39(float) FAdd 696 695 + Store 41(doublev) 697 + 698: 43(fvec2) Load 45(dvec2v) + 699: 43(fvec2) Load 45(dvec2v) + 700: 43(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 698 699 + 701: 43(fvec2) Load 45(dvec2v) + 702: 43(fvec2) FAdd 701 700 + Store 45(dvec2v) 702 + 703: 48(fvec3) Load 50(dvec3v) + 704: 48(fvec3) Load 50(dvec3v) + 705: 48(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 703 704 + 706: 48(fvec3) Load 50(dvec3v) + 707: 48(fvec3) FAdd 706 705 + Store 50(dvec3v) 707 + 708: 53(fvec4) Load 55(dvec4v) + 709: 53(fvec4) Load 55(dvec4v) + 710: 53(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 708 709 + 711: 53(fvec4) Load 55(dvec4v) + 712: 53(fvec4) FAdd 711 710 + Store 55(dvec4v) 712 + 713: 39(float) Load 41(doublev) + 714: 39(float) Load 41(doublev) + 715: 39(float) Load 41(doublev) + 716: 39(float) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715 + 717: 39(float) Load 41(doublev) + 718: 39(float) FAdd 717 716 + Store 41(doublev) 718 + 719: 43(fvec2) Load 45(dvec2v) + 720: 43(fvec2) Load 45(dvec2v) + 721: 39(float) Load 41(doublev) + 722: 43(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 721 + 723: 43(fvec2) Load 45(dvec2v) + 724: 43(fvec2) FAdd 723 722 + Store 45(dvec2v) 724 + 725: 48(fvec3) Load 50(dvec3v) + 726: 48(fvec3) Load 50(dvec3v) + 727: 39(float) Load 41(doublev) + 728: 48(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 725 726 727 + 729: 48(fvec3) Load 50(dvec3v) + 730: 48(fvec3) FAdd 729 728 + Store 50(dvec3v) 730 + 731: 53(fvec4) Load 55(dvec4v) + 732: 53(fvec4) Load 55(dvec4v) + 733: 39(float) Load 41(doublev) + 734: 53(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 731 732 733 + 735: 53(fvec4) Load 55(dvec4v) + 736: 53(fvec4) FAdd 735 734 + Store 55(dvec4v) 736 + 740: 43(fvec2) Load 45(dvec2v) + 741: 43(fvec2) Load 45(dvec2v) + 742: 737 OuterProduct 740 741 + Store 739(dmat2v) 742 + 746: 48(fvec3) Load 50(dvec3v) + 747: 48(fvec3) Load 50(dvec3v) + 748: 743 OuterProduct 746 747 + Store 745(dmat3v) 748 + 752: 53(fvec4) Load 55(dvec4v) + 753: 53(fvec4) Load 55(dvec4v) + 754: 749 OuterProduct 752 753 + Store 751(dmat4v) 754 + 758: 48(fvec3) Load 50(dvec3v) + 759: 43(fvec2) Load 45(dvec2v) + 760: 755 OuterProduct 758 759 + Store 757(dmat2x3v) 760 + 764: 43(fvec2) Load 45(dvec2v) + 765: 48(fvec3) Load 50(dvec3v) + 766: 761 OuterProduct 764 765 + Store 763(dmat3x2v) 766 + 770: 53(fvec4) Load 55(dvec4v) + 771: 43(fvec2) Load 45(dvec2v) + 772: 767 OuterProduct 770 771 + Store 769(dmat2x4v) 772 + 776: 43(fvec2) Load 45(dvec2v) + 777: 53(fvec4) Load 55(dvec4v) + 778: 773 OuterProduct 776 777 + Store 775(dmat4x2v) 778 + 782: 53(fvec4) Load 55(dvec4v) + 783: 48(fvec3) Load 50(dvec3v) + 784: 779 OuterProduct 782 783 + Store 781(dmat3x4v) 784 + 788: 48(fvec3) Load 50(dvec3v) + 789: 53(fvec4) Load 55(dvec4v) + 790: 785 OuterProduct 788 789 + Store 787(dmat4x3v) 790 + 791: 737 Load 739(dmat2v) + 792: 737 Load 739(dmat2v) + 793: 43(fvec2) CompositeExtract 791 0 + 794: 43(fvec2) CompositeExtract 792 0 + 795: 43(fvec2) FMul 793 794 + 796: 43(fvec2) CompositeExtract 791 1 + 797: 43(fvec2) CompositeExtract 792 1 + 798: 43(fvec2) FMul 796 797 + 799: 737 CompositeConstruct 795 798 + 800: 737 Load 739(dmat2v) + 801: 737 MatrixTimesMatrix 800 799 + Store 739(dmat2v) 801 + 802: 743 Load 745(dmat3v) + 803: 743 Load 745(dmat3v) + 804: 48(fvec3) CompositeExtract 802 0 + 805: 48(fvec3) CompositeExtract 803 0 + 806: 48(fvec3) FMul 804 805 + 807: 48(fvec3) CompositeExtract 802 1 + 808: 48(fvec3) CompositeExtract 803 1 + 809: 48(fvec3) FMul 807 808 + 810: 48(fvec3) CompositeExtract 802 2 + 811: 48(fvec3) CompositeExtract 803 2 + 812: 48(fvec3) FMul 810 811 + 813: 743 CompositeConstruct 806 809 812 + 814: 743 Load 745(dmat3v) + 815: 743 MatrixTimesMatrix 814 813 + Store 745(dmat3v) 815 + 816: 749 Load 751(dmat4v) + 817: 749 Load 751(dmat4v) + 818: 53(fvec4) CompositeExtract 816 0 + 819: 53(fvec4) CompositeExtract 817 0 + 820: 53(fvec4) FMul 818 819 + 821: 53(fvec4) CompositeExtract 816 1 + 822: 53(fvec4) CompositeExtract 817 1 + 823: 53(fvec4) FMul 821 822 + 824: 53(fvec4) CompositeExtract 816 2 + 825: 53(fvec4) CompositeExtract 817 2 + 826: 53(fvec4) FMul 824 825 + 827: 53(fvec4) CompositeExtract 816 3 + 828: 53(fvec4) CompositeExtract 817 3 + 829: 53(fvec4) FMul 827 828 + 830: 749 CompositeConstruct 820 823 826 829 + 831: 749 Load 751(dmat4v) + 832: 749 MatrixTimesMatrix 831 830 + Store 751(dmat4v) 832 + 833: 755 Load 757(dmat2x3v) + 834: 755 Load 757(dmat2x3v) + 835: 48(fvec3) CompositeExtract 833 0 + 836: 48(fvec3) CompositeExtract 834 0 + 837: 48(fvec3) FMul 835 836 + 838: 48(fvec3) CompositeExtract 833 1 + 839: 48(fvec3) CompositeExtract 834 1 + 840: 48(fvec3) FMul 838 839 + 841: 755 CompositeConstruct 837 840 + Store 757(dmat2x3v) 841 + 842: 767 Load 769(dmat2x4v) + 843: 767 Load 769(dmat2x4v) + 844: 53(fvec4) CompositeExtract 842 0 + 845: 53(fvec4) CompositeExtract 843 0 + 846: 53(fvec4) FMul 844 845 + 847: 53(fvec4) CompositeExtract 842 1 + 848: 53(fvec4) CompositeExtract 843 1 + 849: 53(fvec4) FMul 847 848 + 850: 767 CompositeConstruct 846 849 + Store 769(dmat2x4v) 850 + 851: 761 Load 763(dmat3x2v) + 852: 761 Load 763(dmat3x2v) + 853: 43(fvec2) CompositeExtract 851 0 + 854: 43(fvec2) CompositeExtract 852 0 + 855: 43(fvec2) FMul 853 854 + 856: 43(fvec2) CompositeExtract 851 1 + 857: 43(fvec2) CompositeExtract 852 1 + 858: 43(fvec2) FMul 856 857 + 859: 43(fvec2) CompositeExtract 851 2 + 860: 43(fvec2) CompositeExtract 852 2 + 861: 43(fvec2) FMul 859 860 + 862: 761 CompositeConstruct 855 858 861 + Store 763(dmat3x2v) 862 + 863: 779 Load 781(dmat3x4v) + 864: 779 Load 781(dmat3x4v) + 865: 53(fvec4) CompositeExtract 863 0 + 866: 53(fvec4) CompositeExtract 864 0 + 867: 53(fvec4) FMul 865 866 + 868: 53(fvec4) CompositeExtract 863 1 + 869: 53(fvec4) CompositeExtract 864 1 + 870: 53(fvec4) FMul 868 869 + 871: 53(fvec4) CompositeExtract 863 2 + 872: 53(fvec4) CompositeExtract 864 2 + 873: 53(fvec4) FMul 871 872 + 874: 779 CompositeConstruct 867 870 873 + Store 781(dmat3x4v) 874 + 875: 773 Load 775(dmat4x2v) + 876: 773 Load 775(dmat4x2v) + 877: 43(fvec2) CompositeExtract 875 0 + 878: 43(fvec2) CompositeExtract 876 0 + 879: 43(fvec2) FMul 877 878 + 880: 43(fvec2) CompositeExtract 875 1 + 881: 43(fvec2) CompositeExtract 876 1 + 882: 43(fvec2) FMul 880 881 + 883: 43(fvec2) CompositeExtract 875 2 + 884: 43(fvec2) CompositeExtract 876 2 + 885: 43(fvec2) FMul 883 884 + 886: 43(fvec2) CompositeExtract 875 3 + 887: 43(fvec2) CompositeExtract 876 3 + 888: 43(fvec2) FMul 886 887 + 889: 773 CompositeConstruct 879 882 885 888 + Store 775(dmat4x2v) 889 + 890: 785 Load 787(dmat4x3v) + 891: 785 Load 787(dmat4x3v) + 892: 48(fvec3) CompositeExtract 890 0 + 893: 48(fvec3) CompositeExtract 891 0 + 894: 48(fvec3) FMul 892 893 + 895: 48(fvec3) CompositeExtract 890 1 + 896: 48(fvec3) CompositeExtract 891 1 + 897: 48(fvec3) FMul 895 896 + 898: 48(fvec3) CompositeExtract 890 2 + 899: 48(fvec3) CompositeExtract 891 2 + 900: 48(fvec3) FMul 898 899 + 901: 48(fvec3) CompositeExtract 890 3 + 902: 48(fvec3) CompositeExtract 891 3 + 903: 48(fvec3) FMul 901 902 + 904: 785 CompositeConstruct 894 897 900 903 + Store 787(dmat4x3v) 904 + 905: 737 Load 739(dmat2v) + 906: 737 Transpose 905 + 907: 737 Load 739(dmat2v) + 908: 737 MatrixTimesMatrix 907 906 + Store 739(dmat2v) 908 + 909: 743 Load 745(dmat3v) + 910: 743 Transpose 909 + 911: 743 Load 745(dmat3v) + 912: 743 MatrixTimesMatrix 911 910 + Store 745(dmat3v) 912 + 913: 749 Load 751(dmat4v) + 914: 749 Transpose 913 + 915: 749 Load 751(dmat4v) + 916: 749 MatrixTimesMatrix 915 914 + Store 751(dmat4v) 916 + 917: 761 Load 763(dmat3x2v) + 918: 755 Transpose 917 + Store 757(dmat2x3v) 918 + 919: 755 Load 757(dmat2x3v) + 920: 761 Transpose 919 + Store 763(dmat3x2v) 920 + 921: 773 Load 775(dmat4x2v) + 922: 767 Transpose 921 + Store 769(dmat2x4v) 922 + 923: 767 Load 769(dmat2x4v) + 924: 773 Transpose 923 + Store 775(dmat4x2v) 924 + 925: 785 Load 787(dmat4x3v) + 926: 779 Transpose 925 + Store 781(dmat3x4v) 926 + 927: 779 Load 781(dmat3x4v) + 928: 785 Transpose 927 + Store 787(dmat4x3v) 928 + 929: 737 Load 739(dmat2v) + 930: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 929 + 931: 39(float) Load 41(doublev) + 932: 39(float) FAdd 931 930 + Store 41(doublev) 932 + 933: 743 Load 745(dmat3v) + 934: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 933 + 935: 39(float) Load 41(doublev) + 936: 39(float) FAdd 935 934 + Store 41(doublev) 936 + 937: 749 Load 751(dmat4v) + 938: 39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 937 + 939: 39(float) Load 41(doublev) + 940: 39(float) FAdd 939 938 + Store 41(doublev) 940 + 941: 737 Load 739(dmat2v) + 942: 737 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 941 + 943: 737 Load 739(dmat2v) + 944: 737 MatrixTimesMatrix 943 942 + Store 739(dmat2v) 944 + 945: 743 Load 745(dmat3v) + 946: 743 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 945 + 947: 743 Load 745(dmat3v) + 948: 743 MatrixTimesMatrix 947 946 + Store 745(dmat3v) 948 + 949: 749 Load 751(dmat4v) + 950: 749 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 949 + 951: 749 Load 751(dmat4v) + 952: 749 MatrixTimesMatrix 951 950 + Store 751(dmat4v) 952 + 953: 39(float) Load 41(doublev) + 955: 40(ptr) AccessChain 45(dvec2v) 954 + 956: 39(float) Load 955 + 957: 39(float) FAdd 953 956 + 959: 40(ptr) AccessChain 50(dvec3v) 958 + 960: 39(float) Load 959 + 961: 39(float) FAdd 957 960 + 963: 40(ptr) AccessChain 55(dvec4v) 962 + 964: 39(float) Load 963 + 965: 39(float) FAdd 961 964 + 967: 40(ptr) AccessChain 739(dmat2v) 966 954 + 968: 39(float) Load 967 + 969: 39(float) FAdd 965 968 + 971: 40(ptr) AccessChain 745(dmat3v) 970 958 + 972: 39(float) Load 971 + 973: 39(float) FAdd 969 972 + 974: 40(ptr) AccessChain 751(dmat4v) 25 962 + 975: 39(float) Load 974 + 976: 39(float) FAdd 973 975 + 977: 40(ptr) AccessChain 757(dmat2x3v) 966 954 + 978: 39(float) Load 977 + 979: 39(float) FAdd 976 978 + 980: 40(ptr) AccessChain 763(dmat3x2v) 966 954 + 981: 39(float) Load 980 + 982: 39(float) FAdd 979 981 + 983: 40(ptr) AccessChain 781(dmat3x4v) 970 958 + 984: 39(float) Load 983 + 985: 39(float) FAdd 982 984 + 986: 40(ptr) AccessChain 787(dmat4x3v) 970 958 + 987: 39(float) Load 986 + 988: 39(float) FAdd 985 987 + 989: 40(ptr) AccessChain 769(dmat2x4v) 966 954 + 990: 39(float) Load 989 + 991: 39(float) FAdd 988 990 + 992: 40(ptr) AccessChain 775(dmat4x2v) 966 954 + 993: 39(float) Load 992 + 994: 39(float) FAdd 991 993 + 995: 428(bool) Load 430(boolv) + 997: 10(float) Select 995 996 21 + 998: 39(float) FConvert 997 + 999: 39(float) FAdd 994 998 + 1000: 437(bvec2) Load 439(bvec2v) + 1001: 428(bool) CompositeExtract 1000 0 + 1002: 10(float) Select 1001 996 21 + 1003: 39(float) FConvert 1002 + 1004: 39(float) FAdd 999 1003 + 1005: 446(bvec3) Load 448(bvec3v) + 1006: 428(bool) CompositeExtract 1005 0 + 1007: 10(float) Select 1006 996 21 + 1008: 39(float) FConvert 1007 + 1009: 39(float) FAdd 1004 1008 + 1010: 455(bvec4) Load 457(bvec4v) + 1011: 428(bool) CompositeExtract 1010 0 + 1012: 10(float) Select 1011 996 21 + 1013: 39(float) FConvert 1012 + 1014: 39(float) FAdd 1009 1013 + 1015: 10(float) FConvert 1014 + 1016: 11(fvec4) Load 13(outp) + 1017: 11(fvec4) VectorTimesScalar 1016 1015 + Store 13(outp) 1017 Return FunctionEnd diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out index 4390e26d..3206faa3 100755 --- a/Test/baseResults/spv.newTexture.frag.out +++ b/Test/baseResults/spv.newTexture.frag.out @@ -7,7 +7,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 282 +// Id's are bound by 284 Capability Shader Capability SampledRect @@ -15,7 +15,7 @@ Linked fragment stage: Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 251 281 + EntryPoint Fragment 4 "main" 17 26 29 55 81 84 92 253 283 ExecutionMode 4 OriginUpperLeft Source GLSL 430 Name 4 "main" @@ -37,18 +37,18 @@ Linked fragment stage: Name 139 "s2DArrayShadow" Name 167 "iv" Name 171 "is2D" - Name 206 "is3D" - Name 218 "isCube" - Name 230 "is2DArray" - Name 241 "iv2" - Name 245 "sCubeShadow" - Name 251 "FragData" - Name 263 "is2Dms" - Name 267 "us2D" - Name 271 "us3D" - Name 275 "usCube" - Name 279 "us2DArray" - Name 281 "ic4D" + Name 208 "is3D" + Name 220 "isCube" + Name 232 "is2DArray" + Name 243 "iv2" + Name 247 "sCubeShadow" + Name 253 "FragData" + Name 265 "is2Dms" + Name 269 "us2D" + Name 273 "us3D" + Name 277 "usCube" + Name 281 "us2DArray" + Name 283 "ic4D" Decorate 13(s2D) DescriptorSet 0 Decorate 23(sCubeArrayShadow) DescriptorSet 0 Decorate 42(s3D) DescriptorSet 0 @@ -61,16 +61,16 @@ Linked fragment stage: Decorate 128(sCube) DescriptorSet 0 Decorate 139(s2DArrayShadow) DescriptorSet 0 Decorate 171(is2D) DescriptorSet 0 - Decorate 206(is3D) DescriptorSet 0 - Decorate 218(isCube) DescriptorSet 0 - Decorate 230(is2DArray) DescriptorSet 0 - Decorate 245(sCubeShadow) DescriptorSet 0 - Decorate 263(is2Dms) DescriptorSet 0 - Decorate 267(us2D) DescriptorSet 0 - Decorate 271(us3D) DescriptorSet 0 - Decorate 275(usCube) DescriptorSet 0 - Decorate 279(us2DArray) DescriptorSet 0 - Decorate 281(ic4D) Flat + Decorate 208(is3D) DescriptorSet 0 + Decorate 220(isCube) DescriptorSet 0 + Decorate 232(is2DArray) DescriptorSet 0 + Decorate 247(sCubeShadow) DescriptorSet 0 + Decorate 265(is2Dms) DescriptorSet 0 + Decorate 269(us2D) DescriptorSet 0 + Decorate 273(us3D) DescriptorSet 0 + Decorate 277(usCube) DescriptorSet 0 + Decorate 281(us2DArray) DescriptorSet 0 + Decorate 283(ic4D) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -142,55 +142,55 @@ Linked fragment stage: 169: TypeSampledImage 168 170: TypePointer UniformConstant 169 171(is2D): 170(ptr) Variable UniformConstant - 203: TypeImage 67(int) 3D sampled format:Unknown - 204: TypeSampledImage 203 - 205: TypePointer UniformConstant 204 - 206(is3D): 205(ptr) Variable UniformConstant - 209: 6(float) Constant 1082549862 - 215: TypeImage 67(int) Cube sampled format:Unknown - 216: TypeSampledImage 215 - 217: TypePointer UniformConstant 216 - 218(isCube): 217(ptr) Variable UniformConstant - 227: TypeImage 67(int) 2D array sampled format:Unknown - 228: TypeSampledImage 227 - 229: TypePointer UniformConstant 228 - 230(is2DArray): 229(ptr) Variable UniformConstant - 240: TypePointer Function 68(ivec2) - 242: TypeImage 6(float) Cube depth sampled format:Unknown - 243: TypeSampledImage 242 - 244: TypePointer UniformConstant 243 -245(sCubeShadow): 244(ptr) Variable UniformConstant - 247: 67(int) Constant 2 - 250: TypePointer Output 7(fvec4) - 251(FragData): 250(ptr) Variable Output - 255: 6(float) Constant 0 - 260: TypeImage 67(int) 2D multi-sampled sampled format:Unknown - 261: TypeSampledImage 260 - 262: TypePointer UniformConstant 261 - 263(is2Dms): 262(ptr) Variable UniformConstant - 264: TypeImage 32(int) 2D sampled format:Unknown - 265: TypeSampledImage 264 - 266: TypePointer UniformConstant 265 - 267(us2D): 266(ptr) Variable UniformConstant - 268: TypeImage 32(int) 3D sampled format:Unknown - 269: TypeSampledImage 268 - 270: TypePointer UniformConstant 269 - 271(us3D): 270(ptr) Variable UniformConstant - 272: TypeImage 32(int) Cube sampled format:Unknown - 273: TypeSampledImage 272 - 274: TypePointer UniformConstant 273 - 275(usCube): 274(ptr) Variable UniformConstant - 276: TypeImage 32(int) 2D array sampled format:Unknown - 277: TypeSampledImage 276 - 278: TypePointer UniformConstant 277 - 279(us2DArray): 278(ptr) Variable UniformConstant - 280: TypePointer Input 165(ivec4) - 281(ic4D): 280(ptr) Variable Input + 205: TypeImage 67(int) 3D sampled format:Unknown + 206: TypeSampledImage 205 + 207: TypePointer UniformConstant 206 + 208(is3D): 207(ptr) Variable UniformConstant + 211: 6(float) Constant 1082549862 + 217: TypeImage 67(int) Cube sampled format:Unknown + 218: TypeSampledImage 217 + 219: TypePointer UniformConstant 218 + 220(isCube): 219(ptr) Variable UniformConstant + 229: TypeImage 67(int) 2D array sampled format:Unknown + 230: TypeSampledImage 229 + 231: TypePointer UniformConstant 230 + 232(is2DArray): 231(ptr) Variable UniformConstant + 242: TypePointer Function 68(ivec2) + 244: TypeImage 6(float) Cube depth sampled format:Unknown + 245: TypeSampledImage 244 + 246: TypePointer UniformConstant 245 +247(sCubeShadow): 246(ptr) Variable UniformConstant + 249: 67(int) Constant 2 + 252: TypePointer Output 7(fvec4) + 253(FragData): 252(ptr) Variable Output + 257: 6(float) Constant 0 + 262: TypeImage 67(int) 2D multi-sampled sampled format:Unknown + 263: TypeSampledImage 262 + 264: TypePointer UniformConstant 263 + 265(is2Dms): 264(ptr) Variable UniformConstant + 266: TypeImage 32(int) 2D sampled format:Unknown + 267: TypeSampledImage 266 + 268: TypePointer UniformConstant 267 + 269(us2D): 268(ptr) Variable UniformConstant + 270: TypeImage 32(int) 3D sampled format:Unknown + 271: TypeSampledImage 270 + 272: TypePointer UniformConstant 271 + 273(us3D): 272(ptr) Variable UniformConstant + 274: TypeImage 32(int) Cube sampled format:Unknown + 275: TypeSampledImage 274 + 276: TypePointer UniformConstant 275 + 277(usCube): 276(ptr) Variable UniformConstant + 278: TypeImage 32(int) 2D array sampled format:Unknown + 279: TypeSampledImage 278 + 280: TypePointer UniformConstant 279 + 281(us2DArray): 280(ptr) Variable UniformConstant + 282: TypePointer Input 165(ivec4) + 283(ic4D): 282(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(v): 8(ptr) Variable Function 167(iv): 166(ptr) Variable Function - 241(iv2): 240(ptr) Variable Function + 243(iv2): 242(ptr) Variable Function 14: 11 Load 13(s2D) 18: 15(fvec2) Load 17(c2D) 19: 7(fvec4) ImageSampleImplicitLod 14 18 @@ -311,75 +311,77 @@ Linked fragment stage: Store 9(v) 178 179: 169 Load 171(is2D) 180: 7(fvec4) Load 26(c4D) - 181: 165(ivec4) ImageSampleProjImplicitLod 179 180 ConstOffset 70 - Store 167(iv) 181 - 182: 165(ivec4) Load 167(iv) - 183: 7(fvec4) ConvertSToF 182 - 184: 7(fvec4) Load 9(v) - 185: 7(fvec4) FAdd 184 183 - Store 9(v) 185 - 186: 169 Load 171(is2D) - 187: 53(fvec3) Load 55(c3D) - 188: 6(float) Load 29(c1D) - 189: 165(ivec4) ImageSampleProjExplicitLod 186 187 Lod 188 - Store 167(iv) 189 - 190: 165(ivec4) Load 167(iv) - 191: 7(fvec4) ConvertSToF 190 - 192: 7(fvec4) Load 9(v) - 193: 7(fvec4) FAdd 192 191 - Store 9(v) 193 - 194: 169 Load 171(is2D) - 195: 53(fvec3) Load 55(c3D) - 196: 15(fvec2) Load 17(c2D) - 197: 15(fvec2) Load 17(c2D) - 198: 165(ivec4) ImageSampleProjExplicitLod 194 195 Grad 196 197 - Store 167(iv) 198 - 199: 165(ivec4) Load 167(iv) - 200: 7(fvec4) ConvertSToF 199 - 201: 7(fvec4) Load 9(v) - 202: 7(fvec4) FAdd 201 200 - Store 9(v) 202 - 207: 204 Load 206(is3D) - 208: 53(fvec3) Load 55(c3D) - 210: 165(ivec4) ImageSampleImplicitLod 207 208 Bias 209 - Store 167(iv) 210 - 211: 165(ivec4) Load 167(iv) - 212: 7(fvec4) ConvertSToF 211 - 213: 7(fvec4) Load 9(v) - 214: 7(fvec4) FAdd 213 212 - Store 9(v) 214 - 219: 216 Load 218(isCube) - 220: 53(fvec3) Load 55(c3D) - 221: 6(float) Load 29(c1D) - 222: 165(ivec4) ImageSampleExplicitLod 219 220 Lod 221 - Store 167(iv) 222 - 223: 165(ivec4) Load 167(iv) - 224: 7(fvec4) ConvertSToF 223 - 225: 7(fvec4) Load 9(v) - 226: 7(fvec4) FAdd 225 224 - Store 9(v) 226 - 231: 228 Load 230(is2DArray) - 232: 79(ivec3) Load 81(ic3D) - 233: 67(int) Load 84(ic1D) - 234: 227 Image 231 - 235: 165(ivec4) ImageFetch 234 232 Lod 233 - Store 167(iv) 235 - 236: 165(ivec4) Load 167(iv) - 237: 7(fvec4) ConvertSToF 236 - 238: 7(fvec4) Load 9(v) - 239: 7(fvec4) FAdd 238 237 - Store 9(v) 239 - 246: 243 Load 245(sCubeShadow) - 248: 242 Image 246 - 249: 68(ivec2) ImageQuerySizeLod 248 247 - Store 241(iv2) 249 - 252: 7(fvec4) Load 9(v) - 253: 68(ivec2) Load 241(iv2) - 254: 15(fvec2) ConvertSToF 253 - 256: 6(float) CompositeExtract 254 0 - 257: 6(float) CompositeExtract 254 1 - 258: 7(fvec4) CompositeConstruct 256 257 255 255 - 259: 7(fvec4) FAdd 252 258 - Store 251(FragData) 259 + 181: 6(float) CompositeExtract 180 3 + 182: 7(fvec4) CompositeInsert 181 180 2 + 183: 165(ivec4) ImageSampleProjImplicitLod 179 182 ConstOffset 70 + Store 167(iv) 183 + 184: 165(ivec4) Load 167(iv) + 185: 7(fvec4) ConvertSToF 184 + 186: 7(fvec4) Load 9(v) + 187: 7(fvec4) FAdd 186 185 + Store 9(v) 187 + 188: 169 Load 171(is2D) + 189: 53(fvec3) Load 55(c3D) + 190: 6(float) Load 29(c1D) + 191: 165(ivec4) ImageSampleProjExplicitLod 188 189 Lod 190 + Store 167(iv) 191 + 192: 165(ivec4) Load 167(iv) + 193: 7(fvec4) ConvertSToF 192 + 194: 7(fvec4) Load 9(v) + 195: 7(fvec4) FAdd 194 193 + Store 9(v) 195 + 196: 169 Load 171(is2D) + 197: 53(fvec3) Load 55(c3D) + 198: 15(fvec2) Load 17(c2D) + 199: 15(fvec2) Load 17(c2D) + 200: 165(ivec4) ImageSampleProjExplicitLod 196 197 Grad 198 199 + Store 167(iv) 200 + 201: 165(ivec4) Load 167(iv) + 202: 7(fvec4) ConvertSToF 201 + 203: 7(fvec4) Load 9(v) + 204: 7(fvec4) FAdd 203 202 + Store 9(v) 204 + 209: 206 Load 208(is3D) + 210: 53(fvec3) Load 55(c3D) + 212: 165(ivec4) ImageSampleImplicitLod 209 210 Bias 211 + Store 167(iv) 212 + 213: 165(ivec4) Load 167(iv) + 214: 7(fvec4) ConvertSToF 213 + 215: 7(fvec4) Load 9(v) + 216: 7(fvec4) FAdd 215 214 + Store 9(v) 216 + 221: 218 Load 220(isCube) + 222: 53(fvec3) Load 55(c3D) + 223: 6(float) Load 29(c1D) + 224: 165(ivec4) ImageSampleExplicitLod 221 222 Lod 223 + Store 167(iv) 224 + 225: 165(ivec4) Load 167(iv) + 226: 7(fvec4) ConvertSToF 225 + 227: 7(fvec4) Load 9(v) + 228: 7(fvec4) FAdd 227 226 + Store 9(v) 228 + 233: 230 Load 232(is2DArray) + 234: 79(ivec3) Load 81(ic3D) + 235: 67(int) Load 84(ic1D) + 236: 229 Image 233 + 237: 165(ivec4) ImageFetch 236 234 Lod 235 + Store 167(iv) 237 + 238: 165(ivec4) Load 167(iv) + 239: 7(fvec4) ConvertSToF 238 + 240: 7(fvec4) Load 9(v) + 241: 7(fvec4) FAdd 240 239 + Store 9(v) 241 + 248: 245 Load 247(sCubeShadow) + 250: 244 Image 248 + 251: 68(ivec2) ImageQuerySizeLod 250 249 + Store 243(iv2) 251 + 254: 7(fvec4) Load 9(v) + 255: 68(ivec2) Load 243(iv2) + 256: 15(fvec2) ConvertSToF 255 + 258: 6(float) CompositeExtract 256 0 + 259: 6(float) CompositeExtract 256 1 + 260: 7(fvec4) CompositeConstruct 258 259 257 257 + 261: 7(fvec4) FAdd 254 260 + Store 253(FragData) 261 Return FunctionEnd diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out index b5794751..30f3f281 100755 --- a/Test/baseResults/spv.texture.frag.out +++ b/Test/baseResults/spv.texture.frag.out @@ -9,13 +9,13 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 291 +// Id's are bound by 305 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 47 277 280 283 289 290 + EntryPoint Fragment 4 "main" 47 291 294 297 303 304 ExecutionMode 4 OriginUpperLeft Source GLSL 140 Name 4 "main" @@ -29,26 +29,26 @@ Linked fragment stage: 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 222 "gradX" - Name 225 "gradY" - Name 277 "gl_FragColor" - Name 280 "u" - Name 283 "blend" - Name 289 "scale" - Name 290 "t" + Name 76 "texSampler2D" + Name 104 "texSampler3D" + Name 130 "texSamplerCube" + Name 145 "shadowSampler1D" + Name 164 "shadowSampler2D" + Name 221 "iCoords2D" + Name 226 "iLod" + Name 236 "gradX" + Name 239 "gradY" + Name 291 "gl_FragColor" + Name 294 "u" + Name 297 "blend" + Name 303 "scale" + Name 304 "t" Decorate 32(texSampler1D) DescriptorSet 0 - Decorate 72(texSampler2D) DescriptorSet 0 - Decorate 98(texSampler3D) DescriptorSet 0 - Decorate 124(texSamplerCube) DescriptorSet 0 - Decorate 139(shadowSampler1D) DescriptorSet 0 - Decorate 158(shadowSampler2D) DescriptorSet 0 + Decorate 76(texSampler2D) DescriptorSet 0 + Decorate 104(texSampler3D) DescriptorSet 0 + Decorate 130(texSamplerCube) DescriptorSet 0 + Decorate 145(shadowSampler1D) DescriptorSet 0 + Decorate 164(shadowSampler2D) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -73,46 +73,46 @@ Linked fragment stage: 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 - 221: TypePointer Function 45(fvec2) - 250: 204(int) Constant 3 - 251: 204(int) Constant 4294967289 - 252: 205(ivec2) ConstantComposite 250 251 - 276: TypePointer Output 22(fvec4) -277(gl_FragColor): 276(ptr) Variable Output - 279: TypePointer Input 22(fvec4) - 280(u): 279(ptr) Variable Input - 282: TypePointer Input 6(float) - 283(blend): 282(ptr) Variable Input - 289(scale): 46(ptr) Variable Input - 290(t): 46(ptr) Variable Input + 73: TypeImage 6(float) 2D sampled format:Unknown + 74: TypeSampledImage 73 + 75: TypePointer UniformConstant 74 +76(texSampler2D): 75(ptr) Variable UniformConstant + 101: TypeImage 6(float) 3D sampled format:Unknown + 102: TypeSampledImage 101 + 103: TypePointer UniformConstant 102 +104(texSampler3D): 103(ptr) Variable UniformConstant + 127: TypeImage 6(float) Cube sampled format:Unknown + 128: TypeSampledImage 127 + 129: TypePointer UniformConstant 128 +130(texSamplerCube): 129(ptr) Variable UniformConstant + 142: TypeImage 6(float) 1D depth sampled format:Unknown + 143: TypeSampledImage 142 + 144: TypePointer UniformConstant 143 +145(shadowSampler1D): 144(ptr) Variable UniformConstant + 161: TypeImage 6(float) 2D depth sampled format:Unknown + 162: TypeSampledImage 161 + 163: TypePointer UniformConstant 162 +164(shadowSampler2D): 163(ptr) Variable UniformConstant + 218: TypeInt 32 1 + 219: TypeVector 218(int) 2 + 220: TypePointer Function 219(ivec2) + 222: 218(int) Constant 0 + 223: 218(int) Constant 5 + 224: 219(ivec2) ConstantComposite 222 223 + 225: TypePointer Function 218(int) + 227: 218(int) Constant 1 + 235: TypePointer Function 45(fvec2) + 264: 218(int) Constant 3 + 265: 218(int) Constant 4294967289 + 266: 219(ivec2) ConstantComposite 264 265 + 290: TypePointer Output 22(fvec4) +291(gl_FragColor): 290(ptr) Variable Output + 293: TypePointer Input 22(fvec4) + 294(u): 293(ptr) Variable Input + 296: TypePointer Input 6(float) + 297(blend): 296(ptr) Variable Input + 303(scale): 46(ptr) Variable Input + 304(t): 46(ptr) Variable Input 4(main): 2 Function None 3 5: Label 8(blendscale): 7(ptr) Variable Function @@ -123,10 +123,10 @@ Linked fragment stage: 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 - 222(gradX): 221(ptr) Variable Function - 225(gradY): 221(ptr) Variable Function + 221(iCoords2D): 220(ptr) Variable Function + 226(iLod): 225(ptr) Variable Function + 236(gradX): 235(ptr) Variable Function + 239(gradY): 235(ptr) Variable Function Store 8(blendscale) 9 Store 10(bias) 11 Store 12(lod) 13 @@ -156,230 +156,244 @@ Linked fragment stage: 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 Bias 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 Bias 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 Bias 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 Bias 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 Bias 106 + 54: 6(float) CompositeExtract 53 3 + 55: 22(fvec4) CompositeInsert 54 53 1 + 56: 22(fvec4) ImageSampleProjImplicitLod 52 55 + 57: 22(fvec4) Load 26(color) + 58: 22(fvec4) FAdd 57 56 + Store 26(color) 58 + 59: 30 Load 32(texSampler1D) + 60: 45(fvec2) Load 47(coords2D) + 61: 6(float) Load 10(bias) + 62: 22(fvec4) ImageSampleProjImplicitLod 59 60 Bias 61 + 63: 22(fvec4) Load 26(color) + 64: 22(fvec4) FAdd 63 62 + Store 26(color) 64 + 65: 30 Load 32(texSampler1D) + 66: 22(fvec4) Load 24(coords4D) + 67: 6(float) Load 10(bias) + 68: 6(float) CompositeExtract 66 3 + 69: 22(fvec4) CompositeInsert 68 66 1 + 70: 22(fvec4) ImageSampleProjImplicitLod 65 69 Bias 67 + 71: 22(fvec4) Load 26(color) + 72: 22(fvec4) FAdd 71 70 + Store 26(color) 72 + 77: 74 Load 76(texSampler2D) + 78: 45(fvec2) Load 47(coords2D) + 79: 22(fvec4) ImageSampleImplicitLod 77 78 + 80: 22(fvec4) Load 26(color) + 81: 22(fvec4) FAdd 80 79 + Store 26(color) 81 + 82: 74 Load 76(texSampler2D) + 83: 45(fvec2) Load 47(coords2D) + 84: 6(float) Load 10(bias) + 85: 22(fvec4) ImageSampleImplicitLod 82 83 Bias 84 + 86: 22(fvec4) Load 26(color) + 87: 22(fvec4) FAdd 86 85 + Store 26(color) 87 + 88: 74 Load 76(texSampler2D) + 89: 16(fvec3) Load 18(coords3D) + 90: 22(fvec4) ImageSampleProjImplicitLod 88 89 + 91: 22(fvec4) Load 26(color) + 92: 22(fvec4) FAdd 91 90 + Store 26(color) 92 + 93: 74 Load 76(texSampler2D) + 94: 22(fvec4) Load 24(coords4D) + 95: 6(float) Load 10(bias) + 96: 6(float) CompositeExtract 94 3 + 97: 22(fvec4) CompositeInsert 96 94 2 + 98: 22(fvec4) ImageSampleProjImplicitLod 93 97 Bias 95 + 99: 22(fvec4) Load 26(color) + 100: 22(fvec4) FAdd 99 98 + Store 26(color) 100 + 105: 102 Load 104(texSampler3D) + 106: 16(fvec3) Load 18(coords3D) + 107: 22(fvec4) ImageSampleImplicitLod 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 Bias 117 + 110: 102 Load 104(texSampler3D) + 111: 16(fvec3) Load 18(coords3D) + 112: 6(float) Load 10(bias) + 113: 22(fvec4) ImageSampleImplicitLod 110 111 Bias 112 + 114: 22(fvec4) Load 26(color) + 115: 22(fvec4) FAdd 114 113 + Store 26(color) 115 + 116: 102 Load 104(texSampler3D) + 117: 22(fvec4) Load 24(coords4D) + 118: 22(fvec4) ImageSampleProjImplicitLod 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 Bias 132 + 121: 102 Load 104(texSampler3D) + 122: 22(fvec4) Load 24(coords4D) + 123: 6(float) Load 10(bias) + 124: 22(fvec4) ImageSampleProjImplicitLod 121 122 Bias 123 + 125: 22(fvec4) Load 26(color) + 126: 22(fvec4) FAdd 125 124 + Store 26(color) 126 + 131: 128 Load 130(texSamplerCube) + 132: 16(fvec3) Load 18(coords3D) + 133: 22(fvec4) ImageSampleImplicitLod 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) Load 26(color) - 145: 22(fvec4) CompositeConstruct 143 143 143 143 - 146: 22(fvec4) FAdd 144 145 - 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 Bias 149 - 152: 22(fvec4) Load 26(color) - 153: 22(fvec4) CompositeConstruct 151 151 151 151 - 154: 22(fvec4) FAdd 152 153 - 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) Load 26(color) - 164: 22(fvec4) CompositeConstruct 162 162 162 162 - 165: 22(fvec4) FAdd 163 164 - 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 Bias 168 - 171: 22(fvec4) Load 26(color) - 172: 22(fvec4) CompositeConstruct 170 170 170 170 - 173: 22(fvec4) FAdd 171 172 - Store 26(color) 173 - 174: 137 Load 139(shadowSampler1D) - 175: 22(fvec4) Load 24(coords4D) - 176: 6(float) CompositeExtract 175 2 - 177: 6(float) ImageSampleProjDrefImplicitLod 174 175 176 - 178: 22(fvec4) Load 26(color) - 179: 22(fvec4) CompositeConstruct 177 177 177 177 - 180: 22(fvec4) FAdd 178 179 - 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 2 - 185: 6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183 + 136: 128 Load 130(texSamplerCube) + 137: 16(fvec3) Load 18(coords3D) + 138: 6(float) Load 10(bias) + 139: 22(fvec4) ImageSampleImplicitLod 136 137 Bias 138 + 140: 22(fvec4) Load 26(color) + 141: 22(fvec4) FAdd 140 139 + Store 26(color) 141 + 146: 143 Load 145(shadowSampler1D) + 147: 16(fvec3) Load 18(coords3D) + 148: 6(float) CompositeExtract 147 2 + 149: 6(float) ImageSampleDrefImplicitLod 146 147 148 + 150: 22(fvec4) Load 26(color) + 151: 22(fvec4) CompositeConstruct 149 149 149 149 + 152: 22(fvec4) FAdd 150 151 + Store 26(color) 152 + 153: 143 Load 145(shadowSampler1D) + 154: 16(fvec3) Load 18(coords3D) + 155: 6(float) Load 10(bias) + 156: 6(float) CompositeExtract 154 2 + 157: 6(float) ImageSampleDrefImplicitLod 153 154 156 Bias 155 + 158: 22(fvec4) Load 26(color) + 159: 22(fvec4) CompositeConstruct 157 157 157 157 + 160: 22(fvec4) FAdd 158 159 + Store 26(color) 160 + 165: 162 Load 164(shadowSampler2D) + 166: 16(fvec3) Load 18(coords3D) + 167: 6(float) CompositeExtract 166 2 + 168: 6(float) ImageSampleDrefImplicitLod 165 166 167 + 169: 22(fvec4) Load 26(color) + 170: 22(fvec4) CompositeConstruct 168 168 168 168 + 171: 22(fvec4) FAdd 169 170 + Store 26(color) 171 + 172: 162 Load 164(shadowSampler2D) + 173: 16(fvec3) Load 18(coords3D) + 174: 6(float) Load 10(bias) + 175: 6(float) CompositeExtract 173 2 + 176: 6(float) ImageSampleDrefImplicitLod 172 173 175 Bias 174 + 177: 22(fvec4) Load 26(color) + 178: 22(fvec4) CompositeConstruct 176 176 176 176 + 179: 22(fvec4) FAdd 177 178 + Store 26(color) 179 + 180: 143 Load 145(shadowSampler1D) + 181: 22(fvec4) Load 24(coords4D) + 182: 6(float) CompositeExtract 181 2 + 183: 6(float) CompositeExtract 181 3 + 184: 22(fvec4) CompositeInsert 183 181 1 + 185: 6(float) ImageSampleProjDrefImplicitLod 180 184 182 186: 22(fvec4) Load 26(color) 187: 22(fvec4) CompositeConstruct 185 185 185 185 188: 22(fvec4) FAdd 186 187 Store 26(color) 188 - 189: 156 Load 158(shadowSampler2D) + 189: 143 Load 145(shadowSampler1D) 190: 22(fvec4) Load 24(coords4D) - 191: 6(float) CompositeExtract 190 2 - 192: 6(float) ImageSampleProjDrefImplicitLod 189 190 191 - 193: 22(fvec4) Load 26(color) - 194: 22(fvec4) CompositeConstruct 192 192 192 192 - 195: 22(fvec4) FAdd 193 194 - 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 2 - 200: 6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198 - 201: 22(fvec4) Load 26(color) - 202: 22(fvec4) CompositeConstruct 200 200 200 200 - 203: 22(fvec4) FAdd 201 202 - 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: 69 Image 214 - 218: 22(fvec4) ImageFetch 217 215 Lod 216 - 219: 22(fvec4) Load 26(color) - 220: 22(fvec4) FAdd 219 218 - Store 26(color) 220 - 223: 45(fvec2) Load 47(coords2D) - 224: 45(fvec2) DPdx 223 - Store 222(gradX) 224 - 226: 45(fvec2) Load 47(coords2D) - 227: 45(fvec2) DPdy 226 - Store 225(gradY) 227 - 228: 70 Load 72(texSampler2D) - 229: 45(fvec2) Load 47(coords2D) - 230: 45(fvec2) Load 222(gradX) - 231: 45(fvec2) Load 225(gradY) - 232: 22(fvec4) ImageSampleExplicitLod 228 229 Grad 230 231 + 191: 6(float) Load 10(bias) + 192: 6(float) CompositeExtract 190 2 + 193: 6(float) CompositeExtract 190 3 + 194: 22(fvec4) CompositeInsert 193 190 1 + 195: 6(float) ImageSampleProjDrefImplicitLod 189 194 192 Bias 191 + 196: 22(fvec4) Load 26(color) + 197: 22(fvec4) CompositeConstruct 195 195 195 195 + 198: 22(fvec4) FAdd 196 197 + Store 26(color) 198 + 199: 162 Load 164(shadowSampler2D) + 200: 22(fvec4) Load 24(coords4D) + 201: 6(float) CompositeExtract 200 2 + 202: 6(float) CompositeExtract 200 3 + 203: 22(fvec4) CompositeInsert 202 200 2 + 204: 6(float) ImageSampleProjDrefImplicitLod 199 203 201 + 205: 22(fvec4) Load 26(color) + 206: 22(fvec4) CompositeConstruct 204 204 204 204 + 207: 22(fvec4) FAdd 205 206 + Store 26(color) 207 + 208: 162 Load 164(shadowSampler2D) + 209: 22(fvec4) Load 24(coords4D) + 210: 6(float) Load 10(bias) + 211: 6(float) CompositeExtract 209 2 + 212: 6(float) CompositeExtract 209 3 + 213: 22(fvec4) CompositeInsert 212 209 2 + 214: 6(float) ImageSampleProjDrefImplicitLod 208 213 211 Bias 210 + 215: 22(fvec4) Load 26(color) + 216: 22(fvec4) CompositeConstruct 214 214 214 214 + 217: 22(fvec4) FAdd 215 216 + Store 26(color) 217 + Store 221(iCoords2D) 224 + Store 226(iLod) 227 + 228: 74 Load 76(texSampler2D) + 229: 219(ivec2) Load 221(iCoords2D) + 230: 218(int) Load 226(iLod) + 231: 73 Image 228 + 232: 22(fvec4) ImageFetch 231 229 Lod 230 233: 22(fvec4) Load 26(color) 234: 22(fvec4) FAdd 233 232 Store 26(color) 234 - 235: 70 Load 72(texSampler2D) - 236: 45(fvec2) Load 47(coords2D) - 237: 6(float) Load 14(proj) - 238: 6(float) CompositeExtract 236 0 - 239: 6(float) CompositeExtract 236 1 - 240: 16(fvec3) CompositeConstruct 238 239 237 - 241: 45(fvec2) Load 222(gradX) - 242: 45(fvec2) Load 225(gradY) - 243: 22(fvec4) ImageSampleProjExplicitLod 235 240 Grad 241 242 - 244: 22(fvec4) Load 26(color) - 245: 22(fvec4) FAdd 244 243 - Store 26(color) 245 - 246: 70 Load 72(texSampler2D) - 247: 45(fvec2) Load 47(coords2D) - 248: 45(fvec2) Load 222(gradX) - 249: 45(fvec2) Load 225(gradY) - 253: 22(fvec4) ImageSampleExplicitLod 246 247 Grad ConstOffset 248 249 252 - 254: 22(fvec4) Load 26(color) - 255: 22(fvec4) FAdd 254 253 - Store 26(color) 255 - 256: 70 Load 72(texSampler2D) - 257: 16(fvec3) Load 18(coords3D) - 258: 45(fvec2) Load 222(gradX) - 259: 45(fvec2) Load 225(gradY) - 260: 22(fvec4) ImageSampleProjExplicitLod 256 257 Grad ConstOffset 258 259 252 - 261: 22(fvec4) Load 26(color) - 262: 22(fvec4) FAdd 261 260 - Store 26(color) 262 - 263: 156 Load 158(shadowSampler2D) - 264: 45(fvec2) Load 47(coords2D) - 265: 6(float) Load 12(lod) - 266: 6(float) CompositeExtract 264 0 - 267: 6(float) CompositeExtract 264 1 - 268: 16(fvec3) CompositeConstruct 266 267 265 - 269: 45(fvec2) Load 222(gradX) - 270: 45(fvec2) Load 225(gradY) - 271: 6(float) CompositeExtract 268 2 - 272: 6(float) ImageSampleDrefExplicitLod 263 268 271 Grad 269 270 - 273: 22(fvec4) Load 26(color) - 274: 22(fvec4) CompositeConstruct 272 272 272 272 - 275: 22(fvec4) FAdd 273 274 - Store 26(color) 275 - 278: 22(fvec4) Load 26(color) - 281: 22(fvec4) Load 280(u) - 284: 6(float) Load 283(blend) - 285: 6(float) Load 8(blendscale) - 286: 6(float) FMul 284 285 - 287: 22(fvec4) CompositeConstruct 286 286 286 286 - 288: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 278 281 287 - Store 277(gl_FragColor) 288 + 237: 45(fvec2) Load 47(coords2D) + 238: 45(fvec2) DPdx 237 + Store 236(gradX) 238 + 240: 45(fvec2) Load 47(coords2D) + 241: 45(fvec2) DPdy 240 + Store 239(gradY) 241 + 242: 74 Load 76(texSampler2D) + 243: 45(fvec2) Load 47(coords2D) + 244: 45(fvec2) Load 236(gradX) + 245: 45(fvec2) Load 239(gradY) + 246: 22(fvec4) ImageSampleExplicitLod 242 243 Grad 244 245 + 247: 22(fvec4) Load 26(color) + 248: 22(fvec4) FAdd 247 246 + Store 26(color) 248 + 249: 74 Load 76(texSampler2D) + 250: 45(fvec2) Load 47(coords2D) + 251: 6(float) Load 14(proj) + 252: 6(float) CompositeExtract 250 0 + 253: 6(float) CompositeExtract 250 1 + 254: 16(fvec3) CompositeConstruct 252 253 251 + 255: 45(fvec2) Load 236(gradX) + 256: 45(fvec2) Load 239(gradY) + 257: 22(fvec4) ImageSampleProjExplicitLod 249 254 Grad 255 256 + 258: 22(fvec4) Load 26(color) + 259: 22(fvec4) FAdd 258 257 + Store 26(color) 259 + 260: 74 Load 76(texSampler2D) + 261: 45(fvec2) Load 47(coords2D) + 262: 45(fvec2) Load 236(gradX) + 263: 45(fvec2) Load 239(gradY) + 267: 22(fvec4) ImageSampleExplicitLod 260 261 Grad ConstOffset 262 263 266 + 268: 22(fvec4) Load 26(color) + 269: 22(fvec4) FAdd 268 267 + Store 26(color) 269 + 270: 74 Load 76(texSampler2D) + 271: 16(fvec3) Load 18(coords3D) + 272: 45(fvec2) Load 236(gradX) + 273: 45(fvec2) Load 239(gradY) + 274: 22(fvec4) ImageSampleProjExplicitLod 270 271 Grad ConstOffset 272 273 266 + 275: 22(fvec4) Load 26(color) + 276: 22(fvec4) FAdd 275 274 + Store 26(color) 276 + 277: 162 Load 164(shadowSampler2D) + 278: 45(fvec2) Load 47(coords2D) + 279: 6(float) Load 12(lod) + 280: 6(float) CompositeExtract 278 0 + 281: 6(float) CompositeExtract 278 1 + 282: 16(fvec3) CompositeConstruct 280 281 279 + 283: 45(fvec2) Load 236(gradX) + 284: 45(fvec2) Load 239(gradY) + 285: 6(float) CompositeExtract 282 2 + 286: 6(float) ImageSampleDrefExplicitLod 277 282 285 Grad 283 284 + 287: 22(fvec4) Load 26(color) + 288: 22(fvec4) CompositeConstruct 286 286 286 286 + 289: 22(fvec4) FAdd 287 288 + Store 26(color) 289 + 292: 22(fvec4) Load 26(color) + 295: 22(fvec4) Load 294(u) + 298: 6(float) Load 297(blend) + 299: 6(float) Load 8(blendscale) + 300: 6(float) FMul 298 299 + 301: 22(fvec4) CompositeConstruct 300 300 300 300 + 302: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 292 295 301 + Store 291(gl_FragColor) 302 Return FunctionEnd diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out index 179e567d..cc3d3daa 100755 --- a/Test/baseResults/spv.texture.vert.out +++ b/Test/baseResults/spv.texture.vert.out @@ -5,13 +5,13 @@ Linked vertex stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 142 +// Id's are bound by 150 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 39 140 + EntryPoint Vertex 4 "main" 39 148 Source GLSL 140 Name 4 "main" Name 8 "lod" @@ -21,19 +21,19 @@ Linked vertex stage: 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 140 "gl_Position" + Name 56 "texSampler2D" + Name 80 "texSampler3D" + Name 96 "texSamplerCube" + Name 106 "shadowSampler1D" + Name 118 "shadowSampler2D" + Name 148 "gl_Position" Decorate 29(texSampler1D) DescriptorSet 0 - Decorate 54(texSampler2D) DescriptorSet 0 - Decorate 76(texSampler3D) DescriptorSet 0 - Decorate 92(texSamplerCube) DescriptorSet 0 - Decorate 102(shadowSampler1D) DescriptorSet 0 - Decorate 114(shadowSampler2D) DescriptorSet 0 - Decorate 140(gl_Position) BuiltIn Position + Decorate 56(texSampler2D) DescriptorSet 0 + Decorate 80(texSampler3D) DescriptorSet 0 + Decorate 96(texSamplerCube) DescriptorSet 0 + Decorate 106(shadowSampler1D) DescriptorSet 0 + Decorate 118(shadowSampler2D) DescriptorSet 0 + Decorate 148(gl_Position) BuiltIn Position 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -58,28 +58,28 @@ Linked vertex stage: 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 - 139: TypePointer Output 18(fvec4) -140(gl_Position): 139(ptr) Variable Output + 53: TypeImage 6(float) 2D sampled format:Unknown + 54: TypeSampledImage 53 + 55: TypePointer UniformConstant 54 +56(texSampler2D): 55(ptr) Variable UniformConstant + 77: TypeImage 6(float) 3D sampled format:Unknown + 78: TypeSampledImage 77 + 79: TypePointer UniformConstant 78 +80(texSampler3D): 79(ptr) Variable UniformConstant + 93: TypeImage 6(float) Cube sampled format:Unknown + 94: TypeSampledImage 93 + 95: TypePointer UniformConstant 94 +96(texSamplerCube): 95(ptr) Variable UniformConstant + 103: TypeImage 6(float) 1D depth sampled format:Unknown + 104: TypeSampledImage 103 + 105: TypePointer UniformConstant 104 +106(shadowSampler1D): 105(ptr) Variable UniformConstant + 115: TypeImage 6(float) 2D depth sampled format:Unknown + 116: TypeSampledImage 115 + 117: TypePointer UniformConstant 116 +118(shadowSampler2D): 117(ptr) Variable UniformConstant + 147: TypePointer Output 18(fvec4) +148(gl_Position): 147(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(lod): 7(ptr) Variable Function @@ -109,89 +109,97 @@ Linked vertex stage: 45: 27 Load 29(texSampler1D) 46: 18(fvec4) Load 20(coords4D) 47: 6(float) Load 8(lod) - 48: 18(fvec4) ImageSampleProjExplicitLod 45 46 Lod 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 Lod 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 Lod 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 Lod 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 Lod 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 Lod 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 Lod 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 Lod 105 - 108: 18(fvec4) Load 23(color) - 109: 18(fvec4) CompositeConstruct 107 107 107 107 - 110: 18(fvec4) FAdd 108 109 - Store 23(color) 110 - 115: 112 Load 114(shadowSampler2D) - 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 Lod 117 - 120: 18(fvec4) Load 23(color) - 121: 18(fvec4) CompositeConstruct 119 119 119 119 - 122: 18(fvec4) FAdd 120 121 - 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 2 - 127: 6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125 - 128: 18(fvec4) Load 23(color) - 129: 18(fvec4) CompositeConstruct 127 127 127 127 - 130: 18(fvec4) FAdd 128 129 - 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 2 - 135: 6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133 - 136: 18(fvec4) Load 23(color) - 137: 18(fvec4) CompositeConstruct 135 135 135 135 - 138: 18(fvec4) FAdd 136 137 - Store 23(color) 138 - 141: 18(fvec4) Load 23(color) - Store 140(gl_Position) 141 + 48: 6(float) CompositeExtract 46 3 + 49: 18(fvec4) CompositeInsert 48 46 1 + 50: 18(fvec4) ImageSampleProjExplicitLod 45 49 Lod 47 + 51: 18(fvec4) Load 23(color) + 52: 18(fvec4) FAdd 51 50 + Store 23(color) 52 + 57: 54 Load 56(texSampler2D) + 58: 37(fvec2) Load 39(coords2D) + 59: 6(float) Load 8(lod) + 60: 18(fvec4) ImageSampleExplicitLod 57 58 Lod 59 + 61: 18(fvec4) Load 23(color) + 62: 18(fvec4) FAdd 61 60 + Store 23(color) 62 + 63: 54 Load 56(texSampler2D) + 64: 12(fvec3) Load 14(coords3D) + 65: 6(float) Load 8(lod) + 66: 18(fvec4) ImageSampleProjExplicitLod 63 64 Lod 65 + 67: 18(fvec4) Load 23(color) + 68: 18(fvec4) FAdd 67 66 + Store 23(color) 68 + 69: 54 Load 56(texSampler2D) + 70: 18(fvec4) Load 20(coords4D) + 71: 6(float) Load 8(lod) + 72: 6(float) CompositeExtract 70 3 + 73: 18(fvec4) CompositeInsert 72 70 2 + 74: 18(fvec4) ImageSampleProjExplicitLod 69 73 Lod 71 + 75: 18(fvec4) Load 23(color) + 76: 18(fvec4) FAdd 75 74 + Store 23(color) 76 + 81: 78 Load 80(texSampler3D) + 82: 12(fvec3) Load 14(coords3D) + 83: 6(float) Load 8(lod) + 84: 18(fvec4) ImageSampleExplicitLod 81 82 Lod 83 + 85: 18(fvec4) Load 23(color) + 86: 18(fvec4) FAdd 85 84 + Store 23(color) 86 + 87: 78 Load 80(texSampler3D) + 88: 18(fvec4) Load 20(coords4D) + 89: 6(float) Load 8(lod) + 90: 18(fvec4) ImageSampleProjExplicitLod 87 88 Lod 89 + 91: 18(fvec4) Load 23(color) + 92: 18(fvec4) FAdd 91 90 + Store 23(color) 92 + 97: 94 Load 96(texSamplerCube) + 98: 12(fvec3) Load 14(coords3D) + 99: 6(float) Load 8(lod) + 100: 18(fvec4) ImageSampleExplicitLod 97 98 Lod 99 + 101: 18(fvec4) Load 23(color) + 102: 18(fvec4) FAdd 101 100 + Store 23(color) 102 + 107: 104 Load 106(shadowSampler1D) + 108: 12(fvec3) Load 14(coords3D) + 109: 6(float) Load 8(lod) + 110: 6(float) CompositeExtract 108 2 + 111: 6(float) ImageSampleDrefExplicitLod 107 108 110 Lod 109 + 112: 18(fvec4) Load 23(color) + 113: 18(fvec4) CompositeConstruct 111 111 111 111 + 114: 18(fvec4) FAdd 112 113 + Store 23(color) 114 + 119: 116 Load 118(shadowSampler2D) + 120: 12(fvec3) Load 14(coords3D) + 121: 6(float) Load 8(lod) + 122: 6(float) CompositeExtract 120 2 + 123: 6(float) ImageSampleDrefExplicitLod 119 120 122 Lod 121 + 124: 18(fvec4) Load 23(color) + 125: 18(fvec4) CompositeConstruct 123 123 123 123 + 126: 18(fvec4) FAdd 124 125 + Store 23(color) 126 + 127: 104 Load 106(shadowSampler1D) + 128: 18(fvec4) Load 20(coords4D) + 129: 6(float) Load 8(lod) + 130: 6(float) CompositeExtract 128 2 + 131: 6(float) CompositeExtract 128 3 + 132: 18(fvec4) CompositeInsert 131 128 1 + 133: 6(float) ImageSampleProjDrefExplicitLod 127 132 130 Lod 129 + 134: 18(fvec4) Load 23(color) + 135: 18(fvec4) CompositeConstruct 133 133 133 133 + 136: 18(fvec4) FAdd 134 135 + Store 23(color) 136 + 137: 116 Load 118(shadowSampler2D) + 138: 18(fvec4) Load 20(coords4D) + 139: 6(float) Load 8(lod) + 140: 6(float) CompositeExtract 138 2 + 141: 6(float) CompositeExtract 138 3 + 142: 18(fvec4) CompositeInsert 141 138 2 + 143: 6(float) ImageSampleProjDrefExplicitLod 137 142 140 Lod 139 + 144: 18(fvec4) Load 23(color) + 145: 18(fvec4) CompositeConstruct 143 143 143 143 + 146: 18(fvec4) FAdd 144 145 + Store 23(color) 146 + 149: 18(fvec4) Load 23(color) + Store 148(gl_Position) 149 Return FunctionEnd From b901ade05849717b30400aad36f4d2fc1cf07251 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 16 Jun 2016 20:59:42 -0600 Subject: [PATCH 42/48] SPV: Non-functional: Condense SPV-related versioning, and rationalize all uses. --- Test/baseResults/spv.atomic.comp.out | 2 - Test/baseResults/vulkan.vert.out | 4 +- Test/spv.atomic.comp | 2 +- glslang/MachineIndependent/Initialize.cpp | 88 +++++++++--------- glslang/MachineIndependent/Initialize.h | 18 ++-- glslang/MachineIndependent/ParseHelper.cpp | 20 ++--- glslang/MachineIndependent/ParseHelper.h | 6 +- glslang/MachineIndependent/Scan.cpp | 4 +- glslang/MachineIndependent/ShaderLang.cpp | 89 +++++++++++-------- glslang/MachineIndependent/Versions.cpp | 22 +++-- glslang/MachineIndependent/Versions.h | 11 +++ .../MachineIndependent/localintermediate.h | 8 +- glslang/MachineIndependent/parseVersions.h | 7 +- hlsl/hlslParseHelper.cpp | 22 ++--- hlsl/hlslParseHelper.h | 2 +- hlsl/hlslParseables.cpp | 14 +-- hlsl/hlslParseables.h | 8 +- 17 files changed, 174 insertions(+), 153 deletions(-) diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out index bc8d9b81..14a0fe31 100755 --- a/Test/baseResults/spv.atomic.comp.out +++ b/Test/baseResults/spv.atomic.comp.out @@ -2,7 +2,6 @@ spv.atomic.comp Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. Shader version: 310 -Requested GL_ARB_gl_spirv local_size = (1, 1, 1) 0:? Sequence 0:14 Function Definition: func(au1; (global highp uint) @@ -105,7 +104,6 @@ Linked compute stage: Shader version: 310 -Requested GL_ARB_gl_spirv local_size = (1, 1, 1) 0:? Sequence 0:14 Function Definition: func(au1; (global highp uint) diff --git a/Test/baseResults/vulkan.vert.out b/Test/baseResults/vulkan.vert.out index 0cac808f..351e6f1b 100644 --- a/Test/baseResults/vulkan.vert.out +++ b/Test/baseResults/vulkan.vert.out @@ -17,8 +17,8 @@ ERROR: 0:16: 'constant_id' : cannot declare a default, can only be used on a sca ERROR: 0:20: 'subpassLoad' : no matching overloaded function found ERROR: 0:20: 'assign' : cannot convert from 'const float' to 'smooth out 4-component vector of float' ERROR: 0:23: 'atomic counter types' : not allowed when using GLSL for Vulkan -ERROR: 0:24: 'shared' : not allowed when using GLSL for Vulkan -ERROR: 0:25: 'packed' : not allowed when using GLSL for Vulkan +ERROR: 0:24: 'shared' : not allowed when generating SPIR-V +ERROR: 0:25: 'packed' : not allowed when generating SPIR-V ERROR: 0:32: 'initializer' : can't use with types containing arrays sized with a specialization constant ERROR: 0:34: '=' : can't use with types containing arrays sized with a specialization constant ERROR: 0:35: '==' : can't use with types containing arrays sized with a specialization constant diff --git a/Test/spv.atomic.comp b/Test/spv.atomic.comp index d1215f7c..dc1fe6e8 100644 --- a/Test/spv.atomic.comp +++ b/Test/spv.atomic.comp @@ -1,6 +1,6 @@ #version 310 es -#extension GL_ARB_gl_spirv : enable + layout(binding = 0) uniform atomic_uint counter; diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index f5362022..e8327c45 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -63,9 +63,9 @@ const bool ForwardCompatibility = false; // Using PureOperatorBuiltins=false is deprecated. bool PureOperatorBuiltins = true; -inline bool IncludeLegacy(int version, EProfile profile, int spv) +inline bool IncludeLegacy(int version, EProfile profile, const SpvVersion& spvVersion) { - return profile != EEsProfile && (version <= 130 || (spv == 0 && ARBCompatibility) || profile == ECompatibilityProfile); + return profile != EEsProfile && (version <= 130 || (spvVersion.spv == 0 && ARBCompatibility) || profile == ECompatibilityProfile); } // Construct TBuiltInParseables base class. This can be used for language-common constructs. @@ -114,7 +114,7 @@ TBuiltIns::~TBuiltIns() // Most built-ins variables can be added as simple text strings. Some need to // be added programmatically, which is done later in IdentifyBuiltIns() below. // -void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) +void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvVersion) { //============================================================================ // @@ -1174,7 +1174,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) profile == ECompatibilityProfile || (profile == ECoreProfile && version < 420) || profile == ENoProfile) { - if (spv == 0) { + if (spvVersion.spv == 0) { commonBuiltins.append( "vec4 texture2D(sampler2D, vec2);" @@ -1193,7 +1193,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) if ( profile == ECompatibilityProfile || (profile == ECoreProfile && version < 420) || profile == ENoProfile) { - if (spv == 0) { + if (spvVersion.spv == 0) { commonBuiltins.append( "vec4 texture1D(sampler1D, float);" @@ -1216,7 +1216,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) } if (profile == EEsProfile) { - if (spv == 0) { + if (spvVersion.spv == 0) { commonBuiltins.append( "vec4 texture2D(samplerExternalOES, vec2 coord);" // GL_OES_EGL_image_external, caught by keyword check "vec4 texture2DProj(samplerExternalOES, vec3);" // GL_OES_EGL_image_external, caught by keyword check @@ -1258,7 +1258,8 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "\n"); } - if (vulkan == 0) { + if (spvVersion.vulkan == 0) { + // gl_spirv TODO // // Atomic counter functions. // @@ -1479,7 +1480,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) // // Geometric Functions. // - if (IncludeLegacy(version, profile, spv)) + if (IncludeLegacy(version, profile, spvVersion)) stageBuiltins[EShLangVertex].append("vec4 ftransform();"); // @@ -1494,7 +1495,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) profile == ECompatibilityProfile || (profile == ECoreProfile && version < 420) || profile == ENoProfile) { - if (spv == 0) { + if (spvVersion.spv == 0) { s->append( "vec4 texture2DLod(sampler2D, vec2, float);" // GL_ARB_shader_texture_lod "vec4 texture2DProjLod(sampler2D, vec3, float);" // GL_ARB_shader_texture_lod @@ -1509,7 +1510,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) if ( profile == ECompatibilityProfile || (profile == ECoreProfile && version < 420) || profile == ENoProfile) { - if (spv == 0) { + if (spvVersion.spv == 0) { s->append( "vec4 texture1DLod(sampler1D, float, float);" // GL_ARB_shader_texture_lod "vec4 texture1DProjLod(sampler1D, vec2, float);" // GL_ARB_shader_texture_lod @@ -1601,7 +1602,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) // // Original-style texture Functions with bias. // - if (spv == 0 && (profile != EEsProfile || version == 100)) { + if (spvVersion.spv == 0 && (profile != EEsProfile || version == 100)) { stageBuiltins[EShLangFragment].append( "vec4 texture2D(sampler2D, vec2, float);" "vec4 texture2DProj(sampler2D, vec3, float);" @@ -1612,7 +1613,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "\n"); } - if (spv == 0 && (profile != EEsProfile && version > 100)) { + if (spvVersion.spv == 0 && (profile != EEsProfile && version > 100)) { stageBuiltins[EShLangFragment].append( "vec4 texture1D(sampler1D, float, float);" "vec4 texture1DProj(sampler1D, vec2, float);" @@ -1624,7 +1625,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "\n"); } - if (spv == 0 && profile == EEsProfile) { + if (spvVersion.spv == 0 && profile == EEsProfile) { stageBuiltins[EShLangFragment].append( "vec4 texture2DLodEXT(sampler2D, vec2, float);" // GL_EXT_shader_texture_lod "vec4 texture2DProjLodEXT(sampler2D, vec3, float);" // GL_EXT_shader_texture_lod @@ -1722,7 +1723,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) // // Depth range in window coordinates, p. 33 // - if (vulkan == 0) { + if (spvVersion.spv == 0) { commonBuiltins.append( "struct gl_DepthRangeParameters {" ); @@ -1746,7 +1747,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "\n"); } - if (vulkan == 0 && IncludeLegacy(version, profile, spv)) { + if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) { // // Matrix state. p. 31, 32, 37, 39, 40. // @@ -1909,7 +1910,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "attribute vec4 gl_MultiTexCoord7;" "attribute float gl_FogCoord;" "\n"); - } else if (IncludeLegacy(version, profile, spv)) { + } else if (IncludeLegacy(version, profile, spvVersion)) { stageBuiltins[EShLangVertex].append( "in vec4 gl_Color;" "in vec4 gl_SecondaryColor;" @@ -1938,7 +1939,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "varying vec4 gl_TexCoord[];" "varying float gl_FogFragCoord;" "\n"); - } else if (IncludeLegacy(version, profile, spv)) { + } else if (IncludeLegacy(version, profile, spvVersion)) { stageBuiltins[EShLangVertex].append( " vec4 gl_ClipVertex;" // needs qualifier fixed later "out vec4 gl_FrontColor;" @@ -1966,7 +1967,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "float gl_PointSize;" // needs qualifier fixed later "float gl_ClipDistance[];" ); - if (IncludeLegacy(version, profile, spv)) + if (IncludeLegacy(version, profile, spvVersion)) stageBuiltins[EShLangVertex].append( "vec4 gl_ClipVertex;" // needs qualifier fixed later "vec4 gl_FrontColor;" @@ -1984,15 +1985,18 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "};" "\n"); } - if (version >= 130 && vulkan == 0) + if (version >= 130 && spvVersion.vulkan == 0) + // gl_spirv TODO stageBuiltins[EShLangVertex].append( "int gl_VertexID;" // needs qualifier fixed later ); - if (version >= 140 && vulkan == 0) + if (version >= 140 && spvVersion.vulkan == 0) + // gl_spirv TODO stageBuiltins[EShLangVertex].append( "int gl_InstanceID;" // needs qualifier fixed later ); - if (vulkan > 0 && version >= 140) + if (spvVersion.vulkan >= 100 && version >= 140) + // gl_spirv TODO stageBuiltins[EShLangVertex].append( "in int gl_VertexIndex;" "in int gl_InstanceIndex;" @@ -2012,12 +2016,14 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "mediump float gl_PointSize;" // needs qualifier fixed later ); } else { - if (vulkan == 0) + if (spvVersion.vulkan == 0) + // gl_spirv TODO stageBuiltins[EShLangVertex].append( "in highp int gl_VertexID;" // needs qualifier fixed later "in highp int gl_InstanceID;" // needs qualifier fixed later ); - if (vulkan > 0) + if (spvVersion.vulkan >= 100) + // gl_spirv TODO stageBuiltins[EShLangVertex].append( "in highp int gl_VertexIndex;" "in highp int gl_InstanceIndex;" @@ -2270,7 +2276,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) stageBuiltins[EShLangFragment].append( "vec2 gl_PointCoord;" // needs qualifier fixed later ); - if (IncludeLegacy(version, profile, spv) || (! ForwardCompatibility && version < 420)) + if (IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && version < 420)) stageBuiltins[EShLangFragment].append( "vec4 gl_FragColor;" // needs qualifier fixed later ); @@ -2287,7 +2293,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) "in float gl_ClipDistance[];" ); - if (IncludeLegacy(version, profile, spv)) { + if (IncludeLegacy(version, profile, spvVersion)) { if (version < 150) stageBuiltins[EShLangFragment].append( "in float gl_FogFragCoord;" @@ -2373,7 +2379,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) stageBuiltins[EShLangFragment].append("\n"); if (version >= 130) - add2ndGenerationSamplingImaging(version, profile, spv, vulkan); + add2ndGenerationSamplingImaging(version, profile, spvVersion); // GL_ARB_shader_ballot if (profile != EEsProfile && version >= 450) { @@ -2398,7 +2404,7 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan) // Helper function for initialize(), to add the second set of names for texturing, // when adding context-independent built-in functions. // -void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, int /*spv*/, int vulkan) +void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion) { // // In this function proper, enumerate the types, then calls the next set of functions @@ -2425,7 +2431,7 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, i for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, 2D, ..., buffer - if (dim == EsdSubpass && vulkan == 0) + if (dim == EsdSubpass && spvVersion.vulkan == 0) continue; if (dim == EsdSubpass && (image || shadow || arrayed)) continue; @@ -3029,7 +3035,7 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, TString& typeName, int vers // add stage-specific entries to the commonBuiltins, and only if that stage // was requested. // -void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, int spv, int vulkan, EShLanguage language) +void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language) { // // Initialize the context-dependent (resource-dependent) built-in strings for parsing. @@ -3192,7 +3198,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf snprintf(builtInConstant, maxSize, "const int gl_MaxFragmentUniformComponents = %d;", resources.maxFragmentUniformComponents); s.append(builtInConstant); - if (vulkan == 0 && IncludeLegacy(version, profile, spv)) { + if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) { // // OpenGL'uniform' state. Page numbers are in reference to version // 1.4 of the OpenGL specification. @@ -3536,7 +3542,7 @@ static void BuiltInVariable(const char* blockName, const char* name, TBuiltInVar // 3) Tag extension-related symbols added to their base version with their extensions, so // that if an early version has the extension turned off, there is an error reported on use. // -void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable) +void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable) { // // Tag built-in variables and functions with additional qualifier and extension information @@ -3589,7 +3595,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul } // Compatibility variables, vertex only - if (spv == 0) { + if (spvVersion.spv == 0) { BuiltInVariable("gl_Color", EbvColor, symbolTable); BuiltInVariable("gl_SecondaryColor", EbvSecondaryColor, symbolTable); BuiltInVariable("gl_Normal", EbvNormal, symbolTable); @@ -3606,7 +3612,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul } if (profile == EEsProfile) { - if (spv == 0) { + if (spvVersion.spv == 0) { symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod); @@ -3627,7 +3633,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul symbolTable.setFunctionExtensions("imageAtomicCompSwap", 1, &E_GL_OES_shader_image_atomic); } - if (vulkan == 0) { + if (spvVersion.vulkan == 0) { + // gl_spirv TODO SpecialQualifier("gl_VertexID", EvqVertexId, EbvVertexId, symbolTable); SpecialQualifier("gl_InstanceID", EvqInstanceId, EbvInstanceId, symbolTable); } @@ -3762,7 +3769,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul // built-in functions if (profile == EEsProfile) { - if (spv == 0) { + if (spvVersion.spv == 0) { symbolTable.setFunctionExtensions("texture2DLodEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("texture2DProjLodEXT", 1, &E_GL_EXT_shader_texture_lod); symbolTable.setFunctionExtensions("textureCubeLodEXT", 1, &E_GL_EXT_shader_texture_lod); @@ -3783,7 +3790,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul symbolTable.setFunctionExtensions("interpolateAtOffset", 1, &E_GL_OES_shader_multisample_interpolation); } } else if (version < 130) { - if (spv == 0) { + if (spvVersion.spv == 0) { symbolTable.setFunctionExtensions("texture1DLod", 1, &E_GL_ARB_shader_texture_lod); symbolTable.setFunctionExtensions("texture2DLod", 1, &E_GL_ARB_shader_texture_lod); symbolTable.setFunctionExtensions("texture3DLod", 1, &E_GL_ARB_shader_texture_lod); @@ -3799,7 +3806,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul } // E_GL_ARB_shader_texture_lod functions usable only with the extension enabled - if (profile != EEsProfile && spv == 0) { + if (profile != EEsProfile && spvVersion.spv == 0) { symbolTable.setFunctionExtensions("texture1DGradARB", 1, &E_GL_ARB_shader_texture_lod); symbolTable.setFunctionExtensions("texture1DProjGradARB", 1, &E_GL_ARB_shader_texture_lod); symbolTable.setFunctionExtensions("texture2DGradARB", 1, &E_GL_ARB_shader_texture_lod); @@ -4116,7 +4123,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul symbolTable.relateToOperator("noise3", EOpNoise); symbolTable.relateToOperator("noise4", EOpNoise); - if (spv == 0 && (IncludeLegacy(version, profile, spv) || (profile == EEsProfile && version == 100))) { + if (spvVersion.spv == 0 && (IncludeLegacy(version, profile, spvVersion) || + (profile == EEsProfile && version == 100))) { symbolTable.relateToOperator("ftransform", EOpFtransform); symbolTable.relateToOperator("texture1D", EOpTexture); @@ -4256,7 +4264,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int vul // 2) Tag extension-related symbols added to their base version with their extensions, so // that if an early version has the extension turned off, there is an error reported on use. // -void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) +void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) { if (profile != EEsProfile && version >= 430 && version < 440) { symbolTable.setVariableExtensions("gl_MaxTransformFeedbackBuffers", 1, &E_GL_ARB_enhanced_layouts); @@ -4272,7 +4280,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, int spv, int /*v switch(language) { case EShLangFragment: // Set up gl_FragData based on current array size. - if (version == 100 || IncludeLegacy(version, profile, spv) || (! ForwardCompatibility && profile != EEsProfile && version < 420)) { + if (version == 100 || IncludeLegacy(version, profile, spvVersion) || (! ForwardCompatibility && profile != EEsProfile && version < 420)) { TPrecisionQualifier pq = profile == EEsProfile ? EpqMedium : EpqNone; TType fragData(EbtFloat, EvqFragColor, pq, 4); TArraySizes& arraySizes = *new TArraySizes; diff --git a/glslang/MachineIndependent/Initialize.h b/glslang/MachineIndependent/Initialize.h index 40551cdd..23f57acc 100644 --- a/glslang/MachineIndependent/Initialize.h +++ b/glslang/MachineIndependent/Initialize.h @@ -61,14 +61,14 @@ public: POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) TBuiltInParseables(); virtual ~TBuiltInParseables(); - virtual void initialize(int version, EProfile, int spv, int vulkan) = 0; - virtual void initialize(const TBuiltInResource& resources, int version, EProfile, int spv, int vulkan, EShLanguage) = 0; + virtual void initialize(int version, EProfile, const SpvVersion& spvVersion) = 0; + virtual void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage) = 0; virtual const TString& getCommonString() const { return commonBuiltins; } virtual const TString& getStageString(EShLanguage language) const { return stageBuiltins[language]; } - virtual void identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable) = 0; + virtual void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable) = 0; - virtual void identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) = 0; + virtual void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) = 0; protected: TString commonBuiltins; @@ -85,15 +85,15 @@ public: POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) TBuiltIns(); virtual ~TBuiltIns(); - void initialize(int version, EProfile, int spv, int vulkan); - void initialize(const TBuiltInResource& resources, int version, EProfile, int spv, int vulkan, EShLanguage); + void initialize(int version, EProfile, const SpvVersion& spvVersion); + void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage); - void identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable); + void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable); - void identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources); + void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources); protected: - void add2ndGenerationSamplingImaging(int version, EProfile profile, int spv, int vulkan); + void add2ndGenerationSamplingImaging(int version, EProfile profile, const SpvVersion& spvVersion); void addSubpassSampling(TSampler, TString& typeName, int version, EProfile profile); void addQueryFunctions(TSampler, TString& typeName, int version, EProfile profile); void addImageFunctions(TSampler, TString& typeName, int version, EProfile profile); diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 72f827cf..35085af6 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -49,9 +49,9 @@ extern int yyparse(glslang::TParseContext*); namespace glslang { TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, - int version, EProfile profile, int spv, int vulkan, EShLanguage language, + int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : - TParseContextBase(symbolTable, interm, version, profile, spv, vulkan, language, infoSink, forwardCompatible, messages), + TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), statementNestingLevel(0), inMain(false), postMainReturn(false), currentFunctionType(nullptr), blockName(nullptr), limits(resources.limits), parsingBuiltins(parsingBuiltins), @@ -104,11 +104,11 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b globalUniformDefaults.clear(); globalUniformDefaults.layoutMatrix = ElmColumnMajor; - globalUniformDefaults.layoutPacking = vulkan > 0 ? ElpStd140 : ElpShared; + globalUniformDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd140 : ElpShared; globalBufferDefaults.clear(); globalBufferDefaults.layoutMatrix = ElmColumnMajor; - globalBufferDefaults.layoutPacking = vulkan > 0 ? ElpStd430 : ElpShared; + globalBufferDefaults.layoutPacking = spvVersion.spv != 0 ? ElpStd430 : ElpShared; globalInputDefaults.clear(); globalOutputDefaults.clear(); @@ -2565,7 +2565,7 @@ void TParseContext::transparentCheck(const TSourceLoc& loc, const TType& type, c return; // Vulkan doesn't allow transparent uniforms outside of blocks - if (vulkan == 0 || type.getQualifier().storage != EvqUniform) + if (spvVersion.vulkan == 0 || type.getQualifier().storage != EvqUniform) return; if (type.containsNonOpaque()) vulkanRemoved(loc, "non-opaque uniforms outside a block"); @@ -3890,14 +3890,14 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi return; } if (id == TQualifier::getLayoutPackingString(ElpPacked)) { - if (vulkan > 0) - vulkanRemoved(loc, "packed"); + if (spvVersion.spv != 0) + spvRemoved(loc, "packed"); publicType.qualifier.layoutPacking = ElpPacked; return; } if (id == TQualifier::getLayoutPackingString(ElpShared)) { - if (vulkan > 0) - vulkanRemoved(loc, "shared"); + if (spvVersion.spv != 0) + spvRemoved(loc, "shared"); publicType.qualifier.layoutPacking = ElpShared; return; } @@ -4263,7 +4263,7 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi publicType.shaderQualifiers.localSize[2] = value; return; } - if (spv > 0) { + if (spvVersion.spv != 0) { if (id == "local_size_x_id") { publicType.shaderQualifiers.localSizeSpecId[0] = value; return; diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 5b4a9df0..67815bbb 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -74,9 +74,9 @@ typedef std::set TIdSetType; class TParseContextBase : public TParseVersions { public: TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, int version, - EProfile profile, int spv, int vulkan, EShLanguage language, + EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) - : TParseVersions(interm, version, profile, spv, vulkan, language, infoSink, forwardCompatible, messages), + : TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), symbolTable(symbolTable), tokensBeforeEOF(false), linkage(nullptr), scanContext(nullptr), ppContext(nullptr) { } virtual ~TParseContextBase() { } @@ -151,7 +151,7 @@ protected: // class TParseContext : public TParseContextBase { public: - TParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, int version, EProfile, int spv, int vulkan, EShLanguage, TInfoSink&, + TParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~TParseContext(); diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 762fb86c..b8cb869f 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -1092,7 +1092,7 @@ int TScanContext::tokenizeIdentifier() case TEXTURE1DARRAY: case SAMPLER: case SAMPLERSHADOW: - if (parseContext.spv > 0) + if (parseContext.spvVersion.vulkan >= 100) return keyword; else return identifierOrType(); @@ -1103,7 +1103,7 @@ int TScanContext::tokenizeIdentifier() case ISUBPASSINPUTMS: case USUBPASSINPUT: case USUBPASSINPUTMS: - if (parseContext.spv > 0) + if (parseContext.spvVersion.vulkan >= 100) return keyword; else return identifierOrType(); diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index c2b56055..9766fa33 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -141,12 +141,12 @@ TPoolAllocator* PerProcessGPA = 0; // // Parse and add to the given symbol table the content of the given shader string. // -bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profile, int spv, int vulkan, EShLanguage language, TInfoSink& infoSink, +bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, TSymbolTable& symbolTable) { TIntermediate intermediate(language, version, profile); - TParseContext parseContext(symbolTable, intermediate, true, version, profile, spv, vulkan, language, infoSink); + TParseContext parseContext(symbolTable, intermediate, true, version, profile, spvVersion, language, infoSink); TShader::ForbidInclude includer; TPpContext ppContext(parseContext, "", includer); TScanContext scanContext(parseContext); @@ -189,12 +189,12 @@ int CommonIndex(EProfile profile, EShLanguage language) // // To initialize per-stage shared tables, with the common table already complete. // -void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int version, EProfile profile, int spv, int vulkan, +void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, TSymbolTable** commonTable, TSymbolTable** symbolTables) { (*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]); - InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spv, vulkan, language, infoSink, *symbolTables[language]); - builtInParseables.identifyBuiltIns(version, profile, spv, vulkan, language, *symbolTables[language]); + InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, infoSink, *symbolTables[language]); + builtInParseables.identifyBuiltIns(version, profile, spvVersion, language, *symbolTables[language]); if (profile == EEsProfile && version >= 300) (*symbolTables[language]).setNoBuiltInRedeclarations(); if (version == 110) @@ -205,51 +205,51 @@ void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int versi // Initialize the full set of shareable symbol tables; // The common (cross-stage) and those shareable per-stage. // -bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TSymbolTable** symbolTables, int version, EProfile profile, int spv, int vulkan, EShSource source) +bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TSymbolTable** symbolTables, int version, EProfile profile, const SpvVersion& spvVersion, EShSource source) { std::unique_ptr builtInParseables(CreateBuiltInParseables(infoSink, source)); - builtInParseables->initialize(version, profile, spv, vulkan); + builtInParseables->initialize(version, profile, spvVersion); // do the common tables - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spv, vulkan, EShLangVertex, infoSink, *commonTable[EPcGeneral]); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangVertex, infoSink, *commonTable[EPcGeneral]); if (profile == EEsProfile) - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spv, vulkan, EShLangFragment, infoSink, *commonTable[EPcFragment]); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangFragment, infoSink, *commonTable[EPcFragment]); // do the per-stage tables // always have vertex and fragment - InitializeStageSymbolTable(*builtInParseables, version, profile, spv, vulkan, EShLangVertex, infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spv, vulkan, EShLangFragment, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangVertex, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, infoSink, commonTable, symbolTables); // check for tessellation if ((profile != EEsProfile && version >= 150) || (profile == EEsProfile && version >= 310)) { - InitializeStageSymbolTable(*builtInParseables, version, profile, spv, vulkan, EShLangTessControl, infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spv, vulkan, EShLangTessEvaluation, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessControl, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessEvaluation, infoSink, commonTable, symbolTables); } // check for geometry if ((profile != EEsProfile && version >= 150) || (profile == EEsProfile && version >= 310)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spv, vulkan, EShLangGeometry, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, infoSink, commonTable, symbolTables); // check for compute if ((profile != EEsProfile && version >= 420) || (profile == EEsProfile && version >= 310)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spv, vulkan, EShLangCompute, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, infoSink, commonTable, symbolTables); return true; } bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& infoSink, TSymbolTable& symbolTable, int version, - EProfile profile, int spv, int vulkan, EShLanguage language, EShSource source) + EProfile profile, const SpvVersion& spvVersion, EShLanguage language, EShSource source) { std::unique_ptr builtInParseables(CreateBuiltInParseables(infoSink, source)); - builtInParseables->initialize(*resources, version, profile, spv, vulkan, language); - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spv, vulkan, language, infoSink, symbolTable); - builtInParseables->identifyBuiltIns(version, profile, spv, vulkan, language, symbolTable, *resources); + builtInParseables->initialize(*resources, version, profile, spvVersion, language); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, infoSink, symbolTable); + builtInParseables->identifyBuiltIns(version, profile, spvVersion, language, symbolTable, *resources); return true; } @@ -266,7 +266,7 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf // This only gets done the first time any thread needs a particular symbol table // (lazy evaluation). // -void SetupBuiltinSymbolTable(int version, EProfile profile, int spv, int vulkan, EShSource source) +void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& spvVersion, EShSource source) { TInfoSink infoSink; @@ -296,7 +296,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, int spv, int vulkan, stageTables[stage] = new TSymbolTable; // Generate the local symbol tables using the new pool - InitializeSymbolTables(infoSink, commonTable, stageTables, version, profile, spv, vulkan, source); + InitializeSymbolTables(infoSink, commonTable, stageTables, version, profile, spvVersion, source); // Switch to the process-global pool SetThreadPoolAllocator(*PerProcessGPA); @@ -332,7 +332,7 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, int spv, int vulkan, // Return true if the shader was correctly specified for version/profile/stage. bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNotFirst, int defaultVersion, - EShSource source, int& version, EProfile& profile, int spv) + EShSource source, int& version, EProfile& profile, const SpvVersion& spvVersion) { const int FirstProfileVersion = 150; bool correct = true; @@ -430,19 +430,27 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo } // Check for SPIR-V compatibility - if (spv > 0) { - if (profile == EEsProfile) { - if (version < 310) { + if (spvVersion.spv != 0) { + switch (profile) { + case EEsProfile: + if (spvVersion.vulkan >= 100 && version < 310) { correct = false; - infoSink.info.message(EPrefixError, "#version: ES shaders for SPIR-V require version 310 or higher"); + infoSink.info.message(EPrefixError, "#version: ES shaders for Vulkan SPIR-V require version 310 or higher"); version = 310; } - } else { - if (version < 140) { + // gl_spirv TODO: test versions + break; + case ECompatibilityProfile: + infoSink.info.message(EPrefixError, "#version: compilation for SPIR-V does not support the compatibility profile"); + break; + default: + if (spvVersion.vulkan >= 100 && version < 140) { correct = false; - infoSink.info.message(EPrefixError, "#version: Desktop shaders for SPIR-V require version 140 or higher"); + infoSink.info.message(EPrefixError, "#version: Desktop shaders for Vulkan SPIR-V require version 140 or higher"); version = 140; } + // gl_spirv TODO: test versions + break; } } @@ -581,9 +589,11 @@ bool ProcessDeferred( version = defaultVersion; profile = defaultProfile; } - int spv = (messages & EShMsgSpvRules) ? 100 : 0; // TODO find path to get real version number here, for now non-0 is what matters + SpvVersion spvVersion; + if (messages & EShMsgSpvRules) + spvVersion.spv = 0x00010000; // TODO: eventually have this come from the outside EShSource source = (messages & EShMsgReadHlsl) ? EShSourceHlsl : EShSourceGlsl; - bool goodVersion = DeduceVersionProfile(compiler->infoSink, compiler->getLanguage(), versionNotFirst, defaultVersion, source, version, profile, spv); + bool goodVersion = DeduceVersionProfile(compiler->infoSink, compiler->getLanguage(), versionNotFirst, defaultVersion, source, version, profile, spvVersion); bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst)); bool warnVersionNotFirst = false; if (! versionWillBeError && versionNotFirstToken) { @@ -593,14 +603,17 @@ bool ProcessDeferred( versionWillBeError = true; } - int vulkan = (messages & EShMsgVulkanRules) ? 100 : 0; // TODO find path to get real version number here, for now non-0 is what matters + if (messages & EShMsgVulkanRules) + spvVersion.vulkan = 100; // TODO: eventually have this come from the outside + else if (spvVersion.spv != 0) + spvVersion.openGl = 100; intermediate.setSource(source); intermediate.setVersion(version); intermediate.setProfile(profile); - intermediate.setSpv(spv); - if (vulkan) + intermediate.setSpv(spvVersion); + if (spvVersion.vulkan >= 100) intermediate.setOriginUpperLeft(); - SetupBuiltinSymbolTable(version, profile, spv, vulkan, source); + SetupBuiltinSymbolTable(version, profile, spvVersion, source); TSymbolTable* cachedTable = SharedSymbolTables[MapVersionToIndex(version)] [MapProfileToIndex(profile)] @@ -614,7 +627,7 @@ bool ProcessDeferred( // Add built-in symbols that are potentially context dependent; // they get popped again further down. - AddContextSpecificSymbols(resources, compiler->infoSink, symbolTable, version, profile, spv, vulkan, + AddContextSpecificSymbols(resources, compiler->infoSink, symbolTable, version, profile, spvVersion, compiler->getLanguage(), source); // @@ -623,12 +636,12 @@ bool ProcessDeferred( TParseContextBase* parseContext; if (source == EShSourceHlsl) { - parseContext = new HlslParseContext(symbolTable, intermediate, false, version, profile, spv, vulkan, + parseContext = new HlslParseContext(symbolTable, intermediate, false, version, profile, spvVersion, compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); } else { intermediate.setEntryPoint("main"); - parseContext = new TParseContext(symbolTable, intermediate, false, version, profile, spv, vulkan, + parseContext = new TParseContext(symbolTable, intermediate, false, version, profile, spvVersion, compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); } TPpContext ppContext(*parseContext, names[numPre]? names[numPre]: "", includer); diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index c1192071..ec418ddd 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -293,8 +293,15 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_GOOGLE_include_directive 1\n" ; - if (vulkan > 0) - preamble += "#define VULKAN 100\n"; + // #define VULKAN XXXX + if (spvVersion.vulkan > 0) { + preamble += "#define VULKAN "; + char number[12]; + snprintf(number, 12, "%d", spvVersion.vulkan); + preamble += number; + preamble += "\n"; + } + // gl_spirv TODO } // @@ -575,9 +582,6 @@ void TParseVersions::updateExtensionBehavior(int line, const char* extension, co updateExtensionBehavior(line, "GL_OES_shader_io_blocks", behaviorString); else if (strcmp(extension, "GL_GOOGLE_include_directive") == 0) updateExtensionBehavior(line, "GL_GOOGLE_cpp_style_line_directive", behaviorString); - // SPIR-V - else if (strcmp(extension, "GL_ARB_gl_spirv") == 0) - spv = 100; } void TParseVersions::updateExtensionBehavior(const char* extension, TExtensionBehavior behavior) @@ -649,28 +653,28 @@ void TParseVersions::int64Check(const TSourceLoc& loc, const char* op, bool buil // Call for any operation removed because SPIR-V is in use. void TParseVersions::spvRemoved(const TSourceLoc& loc, const char* op) { - if (spv > 0) + if (spvVersion.spv != 0) error(loc, "not allowed when generating SPIR-V", op, ""); } // Call for any operation removed because Vulkan SPIR-V is being generated. void TParseVersions::vulkanRemoved(const TSourceLoc& loc, const char* op) { - if (vulkan > 0) + if (spvVersion.vulkan >= 100) error(loc, "not allowed when using GLSL for Vulkan", op, ""); } // Call for any operation that requires Vulkan. void TParseVersions::requireVulkan(const TSourceLoc& loc, const char* op) { - if (vulkan == 0) + if (spvVersion.vulkan == 0) error(loc, "only allowed when using GLSL for Vulkan", op, ""); } // Call for any operation that requires SPIR-V. void TParseVersions::requireSpv(const TSourceLoc& loc, const char* op) { - if (spv == 0) + if (spvVersion.spv == 0) error(loc, "only allowed when generating SPIR-V", op, ""); } diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index ba08ca3c..98da0e63 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -71,6 +71,17 @@ inline const char* ProfileName(EProfile profile) } } +// +// SPIR-V has versions for multiple things; tie them together. +// 0 means a target or rule set is not enabled. +// +struct SpvVersion { + SpvVersion() : spv(0), vulkan(0), openGl(0) {} + unsigned int spv; // the version of the targeted SPIR-V, as defined by SPIR-V in word 1 of the SPIR-V binary header + int vulkan; // the version of semantics for Vulkan; e.g., for GLSL from KHR_vulkan_glsl "#define VULKAN" + int openGl; // the version of semantics for OpenGL; gl_spirv TODO +}; + // // The behaviors from the GLSL "#extension extension_name : behavior" // diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 7445dee0..d855e723 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -125,7 +125,7 @@ class TVariable; class TIntermediate { public: explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) : - source(EShSourceNone), language(l), profile(p), version(v), spv(0), treeRoot(0), + source(EShSourceNone), language(l), profile(p), version(v), treeRoot(0), numMains(0), numErrors(0), numPushConstants(0), recursive(false), invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), inputPrimitive(ElgNone), outputPrimitive(ElgNone), pixelCenterInteger(false), originUpperLeft(false), @@ -154,8 +154,8 @@ public: int getVersion() const { return version; } void setProfile(EProfile p) { profile = p; } EProfile getProfile() const { return profile; } - void setSpv(int s) { spv = s; } - int getSpv() const { return spv; } + void setSpv(const SpvVersion& s) { spvVersion = s; } + const SpvVersion& getSpv() const { return spvVersion; } EShLanguage getStage() const { return language; } void addRequestedExtension(const char* extension) { requestedExtensions.insert(extension); } const std::set& getRequestedExtensions() const { return requestedExtensions; } @@ -352,7 +352,7 @@ protected: std::string entryPoint; EProfile profile; int version; - int spv; + SpvVersion spvVersion; TIntermNode* treeRoot; std::set requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them TBuiltInResource resources; diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index 0eebb10a..c0c89457 100755 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -54,10 +54,10 @@ namespace glslang { class TParseVersions { public: TParseVersions(TIntermediate& interm, int version, EProfile profile, - int spv, int vulkan, EShLanguage language, TInfoSink& infoSink, + const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : infoSink(infoSink), version(version), profile(profile), language(language), - spv(spv), vulkan(vulkan), forwardCompatible(forwardCompatible), + spvVersion(spvVersion), forwardCompatible(forwardCompatible), intermediate(interm), messages(messages), numErrors(0), currentScanner(0) { } virtual ~TParseVersions() { } virtual void initializeExtensionBehavior(); @@ -114,8 +114,7 @@ public: int version; // version, updated by #version in the shader EProfile profile; // the declared profile in the shader (core by default) EShLanguage language; // really the stage - int spv; // SPIR-V version; 0 means not SPIR-V - int vulkan; // Vulkan version; 0 means not vulkan + SpvVersion spvVersion; bool forwardCompatible; // true if errors are to be given for use of deprecated features TIntermediate& intermediate; // helper for making and hooking up pieces of the parse tree diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index cb80f294..a8641c88 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -49,9 +49,9 @@ namespace glslang { HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool /*parsingBuiltins*/, - int version, EProfile profile, int spv, int vulkan, EShLanguage language, TInfoSink& infoSink, + int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : - TParseContextBase(symbolTable, interm, version, profile, spv, vulkan, language, infoSink, forwardCompatible, messages), + TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), postMainReturn(false), limits(resources.limits), @@ -62,11 +62,11 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int globalUniformDefaults.clear(); globalUniformDefaults.layoutMatrix = ElmColumnMajor; - globalUniformDefaults.layoutPacking = vulkan > 0 ? ElpStd140 : ElpShared; + globalUniformDefaults.layoutPacking = ElpStd140; globalBufferDefaults.clear(); globalBufferDefaults.layoutMatrix = ElmColumnMajor; - globalBufferDefaults.layoutPacking = vulkan > 0 ? ElpStd430 : ElpShared; + globalBufferDefaults.layoutPacking = ElpStd430; globalInputDefaults.clear(); globalOutputDefaults.clear(); @@ -2416,18 +2416,6 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu publicType.qualifier.layoutMatrix = ElmRowMajor; return; } - if (id == TQualifier::getLayoutPackingString(ElpPacked)) { - if (vulkan > 0) - vulkanRemoved(loc, "packed"); - publicType.qualifier.layoutPacking = ElpPacked; - return; - } - if (id == TQualifier::getLayoutPackingString(ElpShared)) { - if (vulkan > 0) - vulkanRemoved(loc, "shared"); - publicType.qualifier.layoutPacking = ElpShared; - return; - } if (id == "push_constant") { requireVulkan(loc, "push_constant"); publicType.qualifier.layoutPushConstant = true; @@ -2714,7 +2702,7 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu publicType.shaderQualifiers.localSize[2] = value; return; } - if (spv > 0) { + if (spvVersion.spv != 0) { if (id == "local_size_x_id") { publicType.shaderQualifiers.localSizeSpecId[0] = value; return; diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index bcc22029..838f2e61 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -44,7 +44,7 @@ namespace glslang { class HlslParseContext : public TParseContextBase { public: HlslParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, - int version, EProfile, int spv, int vulkan, EShLanguage, TInfoSink&, + int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~HlslParseContext(); void setLimits(const TBuiltInResource&); diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 6643e166..1137bebb 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -218,7 +218,7 @@ TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() // Most built-ins variables can be added as simple text strings. Some need to // be added programmatically, which is done later in IdentifyBuiltIns() below. // -void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, int vulkan) +void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const SpvVersion& spvVersion) { static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); @@ -229,8 +229,8 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, // typekey can be: // D = double, F = float, U = uint, I = int, B = bool, S = sampler, - = void // An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM. - // '>' as first letter of order creates an output paremeter - // '<' as first letter of order creates an input paremeter + // '>' as first letter of order creates an output parameter + // '<' as first letter of order creates an input parameter // '^' as first letter of order takes transpose dimensions static const struct { @@ -498,8 +498,8 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, // add stage-specific entries to the commonBuiltins, and only if that stage // was requested. // -void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int version, EProfile profile, int spv, - int vulkan, EShLanguage language) +void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int version, EProfile profile, + const SpvVersion& spvVersion, EShLanguage language) { } @@ -512,7 +512,7 @@ void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int v // 3) Tag extension-related symbols added to their base version with their extensions, so // that if an early version has the extension turned off, there is an error reported on use. // -void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, +void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable) { // symbolTable.relateToOperator("abort", EOpAbort); @@ -660,7 +660,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int // 2) Tag extension-related symbols added to their base version with their extensions, so // that if an early version has the extension turned off, there is an error reported on use. // -void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, +void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources) { } diff --git a/hlsl/hlslParseables.h b/hlsl/hlslParseables.h index c09c1ecf..f03e64db 100755 --- a/hlsl/hlslParseables.h +++ b/hlsl/hlslParseables.h @@ -48,12 +48,12 @@ class TBuiltInParseablesHlsl : public TBuiltInParseables { public: POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator()) TBuiltInParseablesHlsl(); - void initialize(int version, EProfile, int spv, int vulkan); - void initialize(const TBuiltInResource& resources, int version, EProfile, int spv, int vulkan, EShLanguage); + void initialize(int version, EProfile, const SpvVersion& spvVersion); + void initialize(const TBuiltInResource& resources, int version, EProfile, const SpvVersion& spvVersion, EShLanguage); - void identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language, TSymbolTable& symbolTable); + void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable); - void identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources); + void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources); }; } // end namespace glslang From 21f1286f57a05b39fbc45a7dfbaf899ede04317b Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 17 Jun 2016 12:43:31 -0600 Subject: [PATCH 43/48] Front-end: Implement GL_EXT_shader_non_constant_global_initializers. This lets ES shaders use non-constant initializers for non-constant globals. --- Test/100.frag | 6 +++++ Test/baseResults/100.frag.out | 30 +++++++++++++++++++++- glslang/MachineIndependent/ParseHelper.cpp | 12 +++++---- glslang/MachineIndependent/Versions.cpp | 4 +++ glslang/MachineIndependent/Versions.h | 2 ++ 5 files changed, 48 insertions(+), 6 deletions(-) diff --git a/Test/100.frag b/Test/100.frag index ce6a6eec..4f0c69b5 100644 --- a/Test/100.frag +++ b/Test/100.frag @@ -213,6 +213,12 @@ float fooinit() int init1 = gl_FrontFacing ? 1 : 2; // ERROR, non-const initializer +#ifdef GL_EXT_shader_non_constant_global_initializers +#extension GL_EXT_shader_non_constant_global_initializers : enable +#endif + +int init2 = gl_FrontFacing ? 1 : 2; + #pragma STDGL invariant(all) #line 3000 diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out index 7af716d8..70b89349 100644 --- a/Test/baseResults/100.frag.out +++ b/Test/baseResults/100.frag.out @@ -82,7 +82,7 @@ ERROR: 0:192: '.' : cannot apply to an array: nothing ERROR: 0:193: '.length' : not supported for this version or the enabled extensions ERROR: 0:194: '.' : cannot apply to an array: method ERROR: 0:194: 'a' : can't use function syntax on variable -ERROR: 0:214: 'non-constant global initializer' : not supported with this profile: es +ERROR: 0:214: 'non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)' : not supported for this version or the enabled extensions ERROR: 0:3000: '#error' : line of this error should be 3000 ERROR: 0:3002: '' : syntax error ERROR: 77 compilation errors. No code generated. @@ -90,6 +90,7 @@ ERROR: 77 compilation errors. No code generated. Shader version: 100 Requested GL_EXT_frag_depth +Requested GL_EXT_shader_non_constant_global_initializers Requested GL_EXT_shader_texture_lod Requested GL_OES_EGL_image_external Requested GL_OES_standard_derivatives @@ -376,6 +377,18 @@ ERROR: node is still EOpNull! 0:214 false case 0:214 Constant: 0:214 2 (const int) +0:220 Sequence +0:220 move second child to first child (temp mediump int) +0:220 'init2' (global mediump int) +0:220 Test condition and select (temp mediump int) +0:220 Condition +0:220 'gl_FrontFacing' (gl_FrontFacing bool Face) +0:220 true case +0:220 Constant: +0:220 1 (const int) +0:220 false case +0:220 Constant: +0:220 2 (const int) 0:? Linker Objects 0:? 'a' (global 3-element array of mediump int) 0:? 'uint' (global mediump int) @@ -407,6 +420,7 @@ ERROR: node is still EOpNull! 0:? 'fi3' (const mediump float) 0:? 5.000000 0:? 'init1' (global mediump int) +0:? 'init2' (global mediump int) Linked fragment stage: @@ -414,6 +428,7 @@ Linked fragment stage: Shader version: 100 Requested GL_EXT_frag_depth +Requested GL_EXT_shader_non_constant_global_initializers Requested GL_EXT_shader_texture_lod Requested GL_OES_EGL_image_external Requested GL_OES_standard_derivatives @@ -700,6 +715,18 @@ ERROR: node is still EOpNull! 0:214 false case 0:214 Constant: 0:214 2 (const int) +0:220 Sequence +0:220 move second child to first child (temp mediump int) +0:220 'init2' (global mediump int) +0:220 Test condition and select (temp mediump int) +0:220 Condition +0:220 'gl_FrontFacing' (gl_FrontFacing bool Face) +0:220 true case +0:220 Constant: +0:220 1 (const int) +0:220 false case +0:220 Constant: +0:220 2 (const int) 0:? Linker Objects 0:? 'a' (global 3-element array of mediump int) 0:? 'uint' (global mediump int) @@ -731,4 +758,5 @@ ERROR: node is still EOpNull! 0:? 'fi3' (const mediump float) 0:? 5.000000 0:? 'init1' (global mediump int) +0:? 'init2' (global mediump int) diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 35085af6..8d7ecdec 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -5083,11 +5083,13 @@ TIntermNode* TParseContext::executeInitializer(const TSourceLoc& loc, TIntermTyp // "In declarations of global variables with no storage qualifier or with a const // qualifier any initializer must be a constant expression." if (symbolTable.atGlobalLevel() && ! initializer->getType().getQualifier().isConstant()) { - const char* initFeature = "non-constant global initializer"; - if (relaxedErrors()) - warn(loc, "not allowed in this version", initFeature, ""); - else - requireProfile(loc, ~EEsProfile, initFeature); + const char* initFeature = "non-constant global initializer (needs GL_EXT_shader_non_constant_global_initializers)"; + if (profile == EEsProfile) { + if (relaxedErrors() && ! extensionTurnedOn(E_GL_EXT_shader_non_constant_global_initializers)) + warn(loc, "not allowed in this version", initFeature, ""); + else + profileRequires(loc, EEsProfile, 0, E_GL_EXT_shader_non_constant_global_initializers, initFeature); + } } } diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index ec418ddd..7d5a81e7 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -182,6 +182,8 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_ARB_sparse_texture_clamp] = EBhDisable; // extensionBehavior[E_GL_ARB_cull_distance] = EBhDisable; // present for 4.5, but need extension control over block members + extensionBehavior[E_GL_EXT_shader_non_constant_global_initializers] = EBhDisable; + // #line and #include extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhDisable; extensionBehavior[E_GL_GOOGLE_include_directive] = EBhDisable; @@ -256,6 +258,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_OES_tessellation_point_size 1\n" "#define GL_OES_texture_buffer 1\n" "#define GL_OES_texture_cube_map_array 1\n" + "#define GL_EXT_shader_non_constant_global_initializers 1\n" ; } else { preamble = @@ -284,6 +287,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_ARB_sparse_texture2 1\n" "#define GL_ARB_sparse_texture_clamp 1\n" // "#define GL_ARB_cull_distance 1\n" // present for 4.5, but need extension control over block members + "#define GL_EXT_shader_non_constant_global_initializers 1\n" ; } diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 98da0e63..3a212a00 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -130,6 +130,8 @@ const char* const E_GL_ARB_sparse_texture2 = "GL_ARB_sparse_texture const char* const E_GL_ARB_sparse_texture_clamp = "GL_ARB_sparse_texture_clamp"; //const char* const E_GL_ARB_cull_distance = "GL_ARB_cull_distance"; // present for 4.5, but need extension control over block members +const char* const E_GL_EXT_shader_non_constant_global_initializers = "GL_EXT_shader_non_constant_global_initializers"; + // #line and #include const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp_style_line_directive"; const char* const E_GL_GOOGLE_include_directive = "GL_GOOGLE_include_directive"; From c3387d33ee48cb66e22a4b5a4d1e9e01f7a90dee Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 17 Jun 2016 14:21:02 -0600 Subject: [PATCH 44/48] HLSL: Support semantics in function parameter declarations. --- Test/hlsl.float1.frag | 2 +- hlsl/hlslGrammar.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Test/hlsl.float1.frag b/Test/hlsl.float1.frag index 5000dced..6247e77b 100644 --- a/Test/hlsl.float1.frag +++ b/Test/hlsl.float1.frag @@ -1,7 +1,7 @@ float1 f1 = float1(1.0); float scalar = 2.0; -float1 ShaderFunction(float1 inFloat1, float inScalar) : COLOR0 +float1 ShaderFunction(float1 inFloat1 : COLOR, float inScalar) : COLOR0 { return f1 * scalar + inFloat1 * inScalar; } diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index c0d4f285..3f0740a0 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -769,8 +769,8 @@ bool HlslGrammar::acceptFunctionParameters(TFunction& function) } // parameter_declaration -// : fully_specified_type -// | fully_specified_type identifier +// : fully_specified_type post_decls +// | fully_specified_type identifier post_decls // bool HlslGrammar::acceptParameterDeclaration(TFunction& function) { @@ -783,6 +783,8 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) HlslToken idToken; acceptIdentifier(idToken); + acceptPostDecls(*type); + TParameter param = { idToken.string, type }; function.addParameter(param); From 5aa59e2044aaba9410d94f444aa4b7b79b7208f4 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 17 Jun 2016 15:50:47 -0600 Subject: [PATCH 45/48] HLSL: Map parameter qualifiers from generic to function-specific and entry-point specific. --- SPIRV/GlslangToSpv.cpp | 2 +- Test/baseResults/hlsl.assoc.frag.out | 74 +- Test/baseResults/hlsl.attribute.frag.out | 4 +- Test/baseResults/hlsl.cast.frag.out | 18 +- Test/baseResults/hlsl.doLoop.frag.out | 22 +- Test/baseResults/hlsl.float1.frag.out | 16 +- Test/baseResults/hlsl.float4.frag.out | 8 +- Test/baseResults/hlsl.forLoop.frag.out | 54 +- Test/baseResults/hlsl.frag.out | 81 +- Test/baseResults/hlsl.if.frag.out | 82 +- Test/baseResults/hlsl.intrinsics.comp.out | 126 +- Test/baseResults/hlsl.intrinsics.frag.out | 3341 +++++++++-------- .../hlsl.intrinsics.negative.comp.out | 80 +- .../hlsl.intrinsics.negative.frag.out | 116 +- .../hlsl.intrinsics.negative.vert.out | 116 +- Test/baseResults/hlsl.intrinsics.vert.out | 2987 +++++++-------- Test/baseResults/hlsl.matType.frag.out | 8 +- Test/baseResults/hlsl.max.frag.out | 24 +- Test/baseResults/hlsl.precedence.frag.out | 44 +- Test/baseResults/hlsl.precedence2.frag.out | 60 +- Test/baseResults/hlsl.scope.frag.out | 4 +- Test/baseResults/hlsl.sin.frag.out | 14 +- Test/baseResults/hlsl.struct.frag.out | 14 +- Test/baseResults/hlsl.void.frag.out | 4 +- Test/baseResults/hlsl.whileLoop.frag.out | 22 +- hlsl/hlslGrammar.cpp | 2 + hlsl/hlslParseHelper.cpp | 30 +- hlsl/hlslParseHelper.h | 3 +- 28 files changed, 3680 insertions(+), 3676 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index b41afc59..03faf07a 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -238,7 +238,7 @@ spv::StorageClass TranslateStorageClass(const glslang::TType& type) return spv::StorageClassUniform; else return spv::StorageClassUniformConstant; - // TODO: how are we distuingishing between default and non-default non-writable uniforms? Do default uniforms even exist? + // TODO: how are we distinguishing between default and non-default non-writable uniforms? Do default uniforms even exist? } else { switch (type.getQualifier().storage) { case glslang::EvqShared: return spv::StorageClassWorkgroup; break; diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index a027a62c..bc06bd0c 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -4,31 +4,31 @@ gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:8 Function Parameters: -0:8 'a1' (temp 4-component vector of float) -0:8 'a2' (temp 4-component vector of float) -0:8 'a3' (temp 4-component vector of float) -0:8 'a4' (temp 4-component vector of float) -0:8 'a5' (temp 4-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) +0:8 'a5' (in 4-component vector of float) 0:? Sequence 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a1' (temp 4-component vector of float) +0:9 'a1' (in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a2' (temp 4-component vector of float) +0:9 'a2' (in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a3' (temp 4-component vector of float) +0:9 'a3' (in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a4' (temp 4-component vector of float) -0:9 'a5' (temp 4-component vector of float) +0:9 'a4' (in 4-component vector of float) +0:9 'a5' (in 4-component vector of float) 0:10 Branch: Return with expression 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (temp 4-component vector of float) -0:10 'a2' (temp 4-component vector of float) +0:10 'a1' (in 4-component vector of float) +0:10 'a2' (in 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a3' (temp 4-component vector of float) -0:10 'a4' (temp 4-component vector of float) -0:10 'a5' (temp 4-component vector of float) +0:10 'a3' (in 4-component vector of float) +0:10 'a4' (in 4-component vector of float) +0:10 'a5' (in 4-component vector of float) 0:? Linker Objects @@ -40,31 +40,31 @@ gl_FragCoord origin is upper left 0:? Sequence 0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:8 Function Parameters: -0:8 'a1' (temp 4-component vector of float) -0:8 'a2' (temp 4-component vector of float) -0:8 'a3' (temp 4-component vector of float) -0:8 'a4' (temp 4-component vector of float) -0:8 'a5' (temp 4-component vector of float) +0:8 'a1' (in 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) +0:8 'a5' (in 4-component vector of float) 0:? Sequence 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a1' (temp 4-component vector of float) +0:9 'a1' (in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a2' (temp 4-component vector of float) +0:9 'a2' (in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a3' (temp 4-component vector of float) +0:9 'a3' (in 4-component vector of float) 0:9 move second child to first child (temp 4-component vector of float) -0:9 'a4' (temp 4-component vector of float) -0:9 'a5' (temp 4-component vector of float) +0:9 'a4' (in 4-component vector of float) +0:9 'a5' (in 4-component vector of float) 0:10 Branch: Return with expression 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a1' (temp 4-component vector of float) -0:10 'a2' (temp 4-component vector of float) +0:10 'a1' (in 4-component vector of float) +0:10 'a2' (in 4-component vector of float) 0:10 add (temp 4-component vector of float) -0:10 'a3' (temp 4-component vector of float) -0:10 'a4' (temp 4-component vector of float) -0:10 'a5' (temp 4-component vector of float) +0:10 'a3' (in 4-component vector of float) +0:10 'a4' (in 4-component vector of float) +0:10 'a5' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 9 10 11 12 13 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -87,14 +87,14 @@ gl_FragCoord origin is upper left 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) + 8: TypePointer Input 7(fvec4) + 9(a1): 8(ptr) Variable Input + 10(a2): 8(ptr) Variable Input + 11(a3): 8(ptr) Variable Input + 12(a4): 8(ptr) Variable Input + 13(a5): 8(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 9(a1): 8(ptr) Variable Function - 10(a2): 8(ptr) Variable Function - 11(a3): 8(ptr) Variable Function - 12(a4): 8(ptr) Variable Function - 13(a5): 8(ptr) Variable Function 14: 7(fvec4) Load 13(a5) Store 12(a4) 14 Store 11(a3) 14 diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index 6ee4a246..3bfbea71 100755 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:11 Test condition and select (temp void) 0:11 Condition @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:11 Test condition and select (temp void) 0:11 Condition diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 1e689788..61ca29f5 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -4,16 +4,16 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Branch: Return with expression 0:3 add (temp 4-component vector of float) 0:3 add (temp 4-component vector of float) 0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:3 Convert int to float (temp 4-component vector of float) 0:3 Convert float to int (temp 4-component vector of int) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:3 Constant: 0:3 1.198000 0:3 1.198000 @@ -30,16 +30,16 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Branch: Return with expression 0:3 add (temp 4-component vector of float) 0:3 add (temp 4-component vector of float) 0:3 Construct vec4 (temp 4-component vector of float) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:3 Convert int to float (temp 4-component vector of float) 0:3 Convert float to int (temp 4-component vector of int) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:3 Constant: 0:3 1.198000 0:3 1.198000 @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 9 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -63,14 +63,14 @@ gl_FragCoord origin is upper left 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) + 8: TypePointer Input 7(fvec4) + 9(input): 8(ptr) Variable Input 17: TypeInt 32 1 18: TypeVector 17(int) 4 22: 6(float) Constant 1067014160 23: 7(fvec4) ConstantComposite 22 22 22 22 4(PixelShaderFunction): 2 Function None 3 5: Label - 9(input): 8(ptr) Variable Function 10: 7(fvec4) Load 9(input) 11: 6(float) CompositeExtract 10 0 12: 6(float) CompositeExtract 10 1 diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index eed2d913..1ac86d80 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Loop with condition not tested first 0:3 Loop Condition @@ -19,11 +19,11 @@ gl_FragCoord origin is upper left 0:5 Loop with condition not tested first 0:5 Loop Condition 0:5 Compare Equal (temp bool) -0:5 'input' (temp 4-component vector of float) -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:5 Loop Body 0:5 Branch: Return with expression -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:? Linker Objects @@ -35,7 +35,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Loop with condition not tested first 0:3 Loop Condition @@ -50,11 +50,11 @@ gl_FragCoord origin is upper left 0:5 Loop with condition not tested first 0:5 Loop Condition 0:5 Compare Equal (temp bool) -0:5 'input' (temp 4-component vector of float) -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:5 Loop Body 0:5 Branch: Return with expression -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 @@ -64,7 +64,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 23 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -75,11 +75,11 @@ gl_FragCoord origin is upper left 11: 10(bool) ConstantFalse 20: TypeFloat 32 21: TypeVector 20(float) 4 - 22: TypePointer Function 21(fvec4) + 22: TypePointer Input 21(fvec4) + 23(input): 22(ptr) Variable Input 28: TypeVector 10(bool) 4 4(PixelShaderFunction): 2 Function None 3 5: Label - 23(input): 22(ptr) Variable Function Branch 6 6: Label LoopMerge 8 9 None diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index 4cf0a0d1..c21931d5 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -12,8 +12,8 @@ gl_FragCoord origin is upper left 0:2 2.000000 0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:5 Function Parameters: -0:5 'inFloat1' (temp 1-component vector of float) -0:5 'inScalar' (temp float) +0:5 'inFloat1' (in 1-component vector of float) +0:5 'inScalar' (in float) 0:? Sequence 0:6 Branch: Return with expression 0:6 add (temp 1-component vector of float) @@ -21,8 +21,8 @@ gl_FragCoord origin is upper left 0:6 'f1' (temp 1-component vector of float) 0:6 'scalar' (temp float) 0:6 vector-scale (temp 1-component vector of float) -0:6 'inFloat1' (temp 1-component vector of float) -0:6 'inScalar' (temp float) +0:6 'inFloat1' (in 1-component vector of float) +0:6 'inScalar' (in float) 0:? Linker Objects 0:? 'f1' (temp 1-component vector of float) 0:? 'scalar' (temp float) @@ -44,8 +44,8 @@ gl_FragCoord origin is upper left 0:2 2.000000 0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:5 Function Parameters: -0:5 'inFloat1' (temp 1-component vector of float) -0:5 'inScalar' (temp float) +0:5 'inFloat1' (in 1-component vector of float) +0:5 'inScalar' (in float) 0:? Sequence 0:6 Branch: Return with expression 0:6 add (temp 1-component vector of float) @@ -53,8 +53,8 @@ gl_FragCoord origin is upper left 0:6 'f1' (temp 1-component vector of float) 0:6 'scalar' (temp float) 0:6 vector-scale (temp 1-component vector of float) -0:6 'inFloat1' (temp 1-component vector of float) -0:6 'inScalar' (temp float) +0:6 'inFloat1' (in 1-component vector of float) +0:6 'inScalar' (in float) 0:? Linker Objects 0:? 'f1' (temp 1-component vector of float) 0:? 'scalar' (temp float) diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 2ea803f1..7ad1721d 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -11,11 +11,11 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:9 Function Parameters: -0:9 'input' (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) 0:? Sequence 0:10 Branch: Return with expression 0:10 component-wise multiply (temp 4-component vector of float) -0:10 'input' (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) 0:10 'AmbientColor' (temp 4-component vector of float) 0:? Linker Objects 0:? 'AmbientColor' (temp 4-component vector of float) @@ -40,11 +40,11 @@ gl_FragCoord origin is upper left 0:? 1.000000 0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:9 Function Parameters: -0:9 'input' (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) 0:? Sequence 0:10 Branch: Return with expression 0:10 component-wise multiply (temp 4-component vector of float) -0:10 'input' (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) 0:10 'AmbientColor' (temp 4-component vector of float) 0:? Linker Objects 0:? 'AmbientColor' (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 2e654e19..8e2b7922 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:? Sequence 0:3 Loop with condition tested first @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:3 No loop body 0:4 Sequence 0:4 Pre-Increment (temp 4-component vector of float) -0:4 'input' (temp 4-component vector of float) +0:4 'input' (in 4-component vector of float) 0:4 Loop with condition tested first 0:4 No loop condition 0:4 No loop body @@ -20,36 +20,36 @@ gl_FragCoord origin is upper left 0:5 Loop with condition tested first 0:5 Loop Condition 0:5 Compare Not Equal (temp bool) -0:5 'input' (temp 4-component vector of float) -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:5 No loop body 0:? Sequence 0:6 Loop with condition tested first 0:6 Loop Condition 0:6 Compare Not Equal (temp bool) -0:6 'input' (temp 4-component vector of float) -0:6 'input' (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 'input' (in 4-component vector of float) 0:6 Loop Body 0:? Sequence 0:6 Branch: Return with expression 0:6 Negate value (temp 4-component vector of float) -0:6 'input' (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) 0:7 Sequence 0:7 Pre-Decrement (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 Loop with condition tested first 0:7 Loop Condition 0:7 Compare Not Equal (temp bool) -0:7 'input' (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 Loop Body 0:? Sequence 0:7 Branch: Return with expression 0:7 Negate value (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 Loop Terminal Expression 0:7 add second child into first child (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 Constant: 0:7 2.000000 0:? Linker Objects @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:? Sequence 0:3 Loop with condition tested first @@ -71,7 +71,7 @@ gl_FragCoord origin is upper left 0:3 No loop body 0:4 Sequence 0:4 Pre-Increment (temp 4-component vector of float) -0:4 'input' (temp 4-component vector of float) +0:4 'input' (in 4-component vector of float) 0:4 Loop with condition tested first 0:4 No loop condition 0:4 No loop body @@ -79,36 +79,36 @@ gl_FragCoord origin is upper left 0:5 Loop with condition tested first 0:5 Loop Condition 0:5 Compare Not Equal (temp bool) -0:5 'input' (temp 4-component vector of float) -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:5 No loop body 0:? Sequence 0:6 Loop with condition tested first 0:6 Loop Condition 0:6 Compare Not Equal (temp bool) -0:6 'input' (temp 4-component vector of float) -0:6 'input' (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 'input' (in 4-component vector of float) 0:6 Loop Body 0:? Sequence 0:6 Branch: Return with expression 0:6 Negate value (temp 4-component vector of float) -0:6 'input' (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) 0:7 Sequence 0:7 Pre-Decrement (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 Loop with condition tested first 0:7 Loop Condition 0:7 Compare Not Equal (temp bool) -0:7 'input' (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 Loop Body 0:? Sequence 0:7 Branch: Return with expression 0:7 Negate value (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 Loop Terminal Expression 0:7 add second child into first child (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 Constant: 0:7 2.000000 0:? Linker Objects @@ -120,7 +120,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 13 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -129,14 +129,14 @@ gl_FragCoord origin is upper left 3: TypeFunction 2 10: TypeFloat 32 11: TypeVector 10(float) 4 - 12: TypePointer Function 11(fvec4) + 12: TypePointer Input 11(fvec4) + 13(input): 12(ptr) Variable Input 15: 10(float) Constant 1065353216 29: TypeBool 30: TypeVector 29(bool) 4 60: 10(float) Constant 1073741824 4(PixelShaderFunction): 2 Function None 3 5: Label - 13(input): 12(ptr) Variable Function Branch 6 6: Label LoopMerge 8 9 None diff --git a/Test/baseResults/hlsl.frag.out b/Test/baseResults/hlsl.frag.out index cfed9051..b0e6e4df 100644 --- a/Test/baseResults/hlsl.frag.out +++ b/Test/baseResults/hlsl.frag.out @@ -15,47 +15,47 @@ gl_FragCoord origin is upper left 0:2 0.100000 0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:5 Function Parameters: -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:? Sequence 0:6 Branch: Return with expression 0:6 add (temp 4-component vector of float) 0:6 vector-scale (temp 4-component vector of float) -0:6 'input' (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) 0:6 'AmbientIntensity' (temp float) 0:6 'AmbientColor' (temp 4-component vector of float) 0:7 Branch: Return with expression 0:7 add (temp 4-component vector of float) 0:7 component-wise multiply (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 component-wise multiply (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:8 Branch: Return with expression 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'input' (temp 4-component vector of float) +0:8 'input' (in 4-component vector of float) 0:8 component-wise multiply (temp 4-component vector of float) -0:8 'input' (temp 4-component vector of float) -0:8 'input' (temp 4-component vector of float) -0:8 'input' (temp 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 'input' (in 4-component vector of float) 0:9 Branch: Return with expression 0:9 component-wise multiply (temp 4-component vector of float) 0:9 Pre-Increment (temp 4-component vector of float) -0:9 'input' (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) 0:9 Negate value (temp 4-component vector of float) 0:9 Negate value (temp 4-component vector of float) 0:9 Pre-Decrement (temp 4-component vector of float) -0:9 'input' (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) 0:10 Branch: Return with expression 0:10 add (temp 4-component vector of float) 0:10 Post-Increment (temp 4-component vector of float) -0:10 'input' (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) 0:10 Pre-Increment (temp 4-component vector of float) -0:10 'input' (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) 0:11 Branch: Return with expression 0:11 sine (global 4-component vector of float) -0:11 'input' (temp 4-component vector of float) +0:11 'input' (in 4-component vector of float) 0:? Linker Objects 0:? 'AmbientColor' (temp 4-component vector of float) 0:? 'AmbientIntensity' (temp float) @@ -80,81 +80,82 @@ gl_FragCoord origin is upper left 0:2 0.100000 0:13 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:5 Function Parameters: -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:? Sequence 0:6 Branch: Return with expression 0:6 add (temp 4-component vector of float) 0:6 vector-scale (temp 4-component vector of float) -0:6 'input' (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) 0:6 'AmbientIntensity' (temp float) 0:6 'AmbientColor' (temp 4-component vector of float) 0:7 Branch: Return with expression 0:7 add (temp 4-component vector of float) 0:7 component-wise multiply (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:7 component-wise multiply (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:8 Branch: Return with expression 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'input' (temp 4-component vector of float) +0:8 'input' (in 4-component vector of float) 0:8 component-wise multiply (temp 4-component vector of float) -0:8 'input' (temp 4-component vector of float) -0:8 'input' (temp 4-component vector of float) -0:8 'input' (temp 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 'input' (in 4-component vector of float) +0:8 'input' (in 4-component vector of float) 0:9 Branch: Return with expression 0:9 component-wise multiply (temp 4-component vector of float) 0:9 Pre-Increment (temp 4-component vector of float) -0:9 'input' (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) 0:9 Negate value (temp 4-component vector of float) 0:9 Negate value (temp 4-component vector of float) 0:9 Pre-Decrement (temp 4-component vector of float) -0:9 'input' (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) 0:10 Branch: Return with expression 0:10 add (temp 4-component vector of float) 0:10 Post-Increment (temp 4-component vector of float) -0:10 'input' (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) 0:10 Pre-Increment (temp 4-component vector of float) -0:10 'input' (temp 4-component vector of float) +0:10 'input' (in 4-component vector of float) 0:11 Branch: Return with expression 0:11 sine (global 4-component vector of float) -0:11 'input' (temp 4-component vector of float) +0:11 'input' (in 4-component vector of float) 0:? Linker Objects 0:? 'AmbientColor' (temp 4-component vector of float) 0:? 'AmbientIntensity' (temp float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 57 +// Id's are bound by 58 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 9 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input" Name 12 "AmbientIntensity" - Name 15 "AmbientColor" + Name 16 "AmbientColor" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) + 8: TypePointer Input 7(fvec4) + 9(input): 8(ptr) Variable Input 11: TypePointer Function 6(float) - 36: 6(float) Constant 1065353216 + 15: TypePointer Function 7(fvec4) + 37: 6(float) Constant 1065353216 4(PixelShaderFunction): 2 Function None 3 5: Label - 9(input): 8(ptr) Variable Function 12(AmbientIntensity): 11(ptr) Variable Function -15(AmbientColor): 8(ptr) Variable Function +16(AmbientColor): 15(ptr) Variable Function 10: 7(fvec4) Load 9(input) 13: 6(float) Load 12(AmbientIntensity) 14: 7(fvec4) VectorTimesScalar 10 13 - 16: 7(fvec4) Load 15(AmbientColor) - 17: 7(fvec4) FAdd 14 16 - ReturnValue 17 + 17: 7(fvec4) Load 16(AmbientColor) + 18: 7(fvec4) FAdd 14 17 + ReturnValue 18 FunctionEnd diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 8908279b..a5a6a67e 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -4,63 +4,63 @@ gl_FragCoord origin is upper left 0:? Sequence 0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Test condition and select (temp void) 0:3 Condition 0:3 Compare Equal (temp bool) -0:3 'input' (temp 4-component vector of float) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:3 true case 0:4 Branch: Return with expression -0:4 'input' (temp 4-component vector of float) +0:4 'input' (in 4-component vector of float) 0:6 Test condition and select (temp void) 0:6 Condition 0:6 Compare Equal (temp bool) -0:6 'input' (temp 4-component vector of float) -0:6 'input' (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 'input' (in 4-component vector of float) 0:6 true case 0:7 Branch: Return with expression -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:6 false case 0:9 Branch: Return with expression 0:9 Negate value (temp 4-component vector of float) -0:9 'input' (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) 0:11 Test condition and select (temp void) 0:11 Condition 0:11 Compare Equal (temp bool) -0:11 'input' (temp 4-component vector of float) -0:11 'input' (temp 4-component vector of float) +0:11 'input' (in 4-component vector of float) +0:11 'input' (in 4-component vector of float) 0:11 true case is null 0:14 Test condition and select (temp void) 0:14 Condition 0:14 Compare Equal (temp bool) -0:14 'input' (temp 4-component vector of float) -0:14 'input' (temp 4-component vector of float) +0:14 'input' (in 4-component vector of float) +0:14 'input' (in 4-component vector of float) 0:14 true case is null 0:19 Test condition and select (temp void) 0:19 Condition 0:19 Compare Equal (temp bool) -0:19 'input' (temp 4-component vector of float) -0:19 'input' (temp 4-component vector of float) +0:19 'input' (in 4-component vector of float) +0:19 'input' (in 4-component vector of float) 0:19 true case 0:? Sequence 0:20 Branch: Return with expression -0:20 'input' (temp 4-component vector of float) +0:20 'input' (in 4-component vector of float) 0:23 Test condition and select (temp void) 0:23 Condition 0:23 Compare Equal (temp bool) -0:23 'input' (temp 4-component vector of float) -0:23 'input' (temp 4-component vector of float) +0:23 'input' (in 4-component vector of float) +0:23 'input' (in 4-component vector of float) 0:23 true case 0:? Sequence 0:24 Branch: Return with expression -0:24 'input' (temp 4-component vector of float) +0:24 'input' (in 4-component vector of float) 0:23 false case 0:? Sequence 0:26 Branch: Return with expression 0:26 Negate value (temp 4-component vector of float) -0:26 'input' (temp 4-component vector of float) +0:26 'input' (in 4-component vector of float) 0:? Linker Objects @@ -72,63 +72,63 @@ gl_FragCoord origin is upper left 0:? Sequence 0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Test condition and select (temp void) 0:3 Condition 0:3 Compare Equal (temp bool) -0:3 'input' (temp 4-component vector of float) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:3 true case 0:4 Branch: Return with expression -0:4 'input' (temp 4-component vector of float) +0:4 'input' (in 4-component vector of float) 0:6 Test condition and select (temp void) 0:6 Condition 0:6 Compare Equal (temp bool) -0:6 'input' (temp 4-component vector of float) -0:6 'input' (temp 4-component vector of float) +0:6 'input' (in 4-component vector of float) +0:6 'input' (in 4-component vector of float) 0:6 true case 0:7 Branch: Return with expression -0:7 'input' (temp 4-component vector of float) +0:7 'input' (in 4-component vector of float) 0:6 false case 0:9 Branch: Return with expression 0:9 Negate value (temp 4-component vector of float) -0:9 'input' (temp 4-component vector of float) +0:9 'input' (in 4-component vector of float) 0:11 Test condition and select (temp void) 0:11 Condition 0:11 Compare Equal (temp bool) -0:11 'input' (temp 4-component vector of float) -0:11 'input' (temp 4-component vector of float) +0:11 'input' (in 4-component vector of float) +0:11 'input' (in 4-component vector of float) 0:11 true case is null 0:14 Test condition and select (temp void) 0:14 Condition 0:14 Compare Equal (temp bool) -0:14 'input' (temp 4-component vector of float) -0:14 'input' (temp 4-component vector of float) +0:14 'input' (in 4-component vector of float) +0:14 'input' (in 4-component vector of float) 0:14 true case is null 0:19 Test condition and select (temp void) 0:19 Condition 0:19 Compare Equal (temp bool) -0:19 'input' (temp 4-component vector of float) -0:19 'input' (temp 4-component vector of float) +0:19 'input' (in 4-component vector of float) +0:19 'input' (in 4-component vector of float) 0:19 true case 0:? Sequence 0:20 Branch: Return with expression -0:20 'input' (temp 4-component vector of float) +0:20 'input' (in 4-component vector of float) 0:23 Test condition and select (temp void) 0:23 Condition 0:23 Compare Equal (temp bool) -0:23 'input' (temp 4-component vector of float) -0:23 'input' (temp 4-component vector of float) +0:23 'input' (in 4-component vector of float) +0:23 'input' (in 4-component vector of float) 0:23 true case 0:? Sequence 0:24 Branch: Return with expression -0:24 'input' (temp 4-component vector of float) +0:24 'input' (in 4-component vector of float) 0:23 false case 0:? Sequence 0:26 Branch: Return with expression 0:26 Negate value (temp 4-component vector of float) -0:26 'input' (temp 4-component vector of float) +0:26 'input' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 @@ -138,7 +138,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 9 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -147,12 +147,12 @@ gl_FragCoord origin is upper left 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) + 8: TypePointer Input 7(fvec4) + 9(input): 8(ptr) Variable Input 12: TypeBool 13: TypeVector 12(bool) 4 4(PixelShaderFunction): 2 Function None 3 5: Label - 9(input): 8(ptr) Variable Function 10: 7(fvec4) Load 9(input) 11: 7(fvec4) Load 9(input) 14: 13(bvec4) FOrdEqual 10 11 diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index 63e90e83..d6012df9 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -4,14 +4,14 @@ local_size = (1, 1, 1) 0:? Sequence 0:44 Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: -0:17 'inF0' (temp float) -0:17 'inF1' (temp float) -0:17 'inF2' (temp float) -0:17 'inU0' (temp uint) -0:17 'inU1' (temp uint) +0:17 'inF0' (in float) +0:17 'inF1' (in float) +0:17 'inF2' (in float) +0:17 'inU0' (in uint) +0:17 'inU1' (in uint) 0:? Sequence 0:21 all (global bool) -0:21 'inF0' (temp float) +0:21 'inF0' (in float) 0:24 AtomicAdd (global void) 0:24 'gs_ua' (temp uint) 0:24 'gs_ub' (temp uint) @@ -76,23 +76,23 @@ local_size = (1, 1, 1) 0:41 0.000000 0:50 Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) 0:45 Function Parameters: -0:45 'inF0' (temp 1-component vector of float) -0:45 'inF1' (temp 1-component vector of float) -0:45 'inF2' (temp 1-component vector of float) +0:45 'inF0' (in 1-component vector of float) +0:45 'inF1' (in 1-component vector of float) +0:45 'inF2' (in 1-component vector of float) 0:? Sequence 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 0:77 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:51 Function Parameters: -0:51 'inF0' (temp 2-component vector of float) -0:51 'inF1' (temp 2-component vector of float) -0:51 'inF2' (temp 2-component vector of float) -0:51 'inU0' (temp 2-component vector of uint) -0:51 'inU1' (temp 2-component vector of uint) +0:51 'inF0' (in 2-component vector of float) +0:51 'inF1' (in 2-component vector of float) +0:51 'inF2' (in 2-component vector of float) +0:51 'inU0' (in 2-component vector of uint) +0:51 'inU1' (in 2-component vector of uint) 0:? Sequence 0:55 all (global bool) -0:55 'inF0' (temp 2-component vector of float) +0:55 'inF0' (in 2-component vector of float) 0:58 AtomicAdd (global void) 0:58 'gs_ua2' (temp 2-component vector of uint) 0:58 'gs_ub2' (temp 2-component vector of uint) @@ -158,14 +158,14 @@ local_size = (1, 1, 1) 0:? 2.000000 0:104 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:78 Function Parameters: -0:78 'inF0' (temp 3-component vector of float) -0:78 'inF1' (temp 3-component vector of float) -0:78 'inF2' (temp 3-component vector of float) -0:78 'inU0' (temp 3-component vector of uint) -0:78 'inU1' (temp 3-component vector of uint) +0:78 'inF0' (in 3-component vector of float) +0:78 'inF1' (in 3-component vector of float) +0:78 'inF2' (in 3-component vector of float) +0:78 'inU0' (in 3-component vector of uint) +0:78 'inU1' (in 3-component vector of uint) 0:? Sequence 0:82 all (global bool) -0:82 'inF0' (temp 3-component vector of float) +0:82 'inF0' (in 3-component vector of float) 0:85 AtomicAdd (global void) 0:85 'gs_ua3' (temp 3-component vector of uint) 0:85 'gs_ub3' (temp 3-component vector of uint) @@ -232,14 +232,14 @@ local_size = (1, 1, 1) 0:? 3.000000 0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:105 Function Parameters: -0:105 'inF0' (temp 4-component vector of float) -0:105 'inF1' (temp 4-component vector of float) -0:105 'inF2' (temp 4-component vector of float) -0:105 'inU0' (temp 4-component vector of uint) -0:105 'inU1' (temp 4-component vector of uint) +0:105 'inF0' (in 4-component vector of float) +0:105 'inF1' (in 4-component vector of float) +0:105 'inF2' (in 4-component vector of float) +0:105 'inU0' (in 4-component vector of uint) +0:105 'inU1' (in 4-component vector of uint) 0:? Sequence 0:109 all (global bool) -0:109 'inF0' (temp 4-component vector of float) +0:109 'inF0' (in 4-component vector of float) 0:112 AtomicAdd (global void) 0:112 'gs_ua4' (temp 4-component vector of uint) 0:112 'gs_ub4' (temp 4-component vector of uint) @@ -328,14 +328,14 @@ local_size = (1, 1, 1) 0:? Sequence 0:44 Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: -0:17 'inF0' (temp float) -0:17 'inF1' (temp float) -0:17 'inF2' (temp float) -0:17 'inU0' (temp uint) -0:17 'inU1' (temp uint) +0:17 'inF0' (in float) +0:17 'inF1' (in float) +0:17 'inF2' (in float) +0:17 'inU0' (in uint) +0:17 'inU1' (in uint) 0:? Sequence 0:21 all (global bool) -0:21 'inF0' (temp float) +0:21 'inF0' (in float) 0:24 AtomicAdd (global void) 0:24 'gs_ua' (temp uint) 0:24 'gs_ub' (temp uint) @@ -400,23 +400,23 @@ local_size = (1, 1, 1) 0:41 0.000000 0:50 Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) 0:45 Function Parameters: -0:45 'inF0' (temp 1-component vector of float) -0:45 'inF1' (temp 1-component vector of float) -0:45 'inF2' (temp 1-component vector of float) +0:45 'inF0' (in 1-component vector of float) +0:45 'inF1' (in 1-component vector of float) +0:45 'inF2' (in 1-component vector of float) 0:? Sequence 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 0:77 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:51 Function Parameters: -0:51 'inF0' (temp 2-component vector of float) -0:51 'inF1' (temp 2-component vector of float) -0:51 'inF2' (temp 2-component vector of float) -0:51 'inU0' (temp 2-component vector of uint) -0:51 'inU1' (temp 2-component vector of uint) +0:51 'inF0' (in 2-component vector of float) +0:51 'inF1' (in 2-component vector of float) +0:51 'inF2' (in 2-component vector of float) +0:51 'inU0' (in 2-component vector of uint) +0:51 'inU1' (in 2-component vector of uint) 0:? Sequence 0:55 all (global bool) -0:55 'inF0' (temp 2-component vector of float) +0:55 'inF0' (in 2-component vector of float) 0:58 AtomicAdd (global void) 0:58 'gs_ua2' (temp 2-component vector of uint) 0:58 'gs_ub2' (temp 2-component vector of uint) @@ -482,14 +482,14 @@ local_size = (1, 1, 1) 0:? 2.000000 0:104 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:78 Function Parameters: -0:78 'inF0' (temp 3-component vector of float) -0:78 'inF1' (temp 3-component vector of float) -0:78 'inF2' (temp 3-component vector of float) -0:78 'inU0' (temp 3-component vector of uint) -0:78 'inU1' (temp 3-component vector of uint) +0:78 'inF0' (in 3-component vector of float) +0:78 'inF1' (in 3-component vector of float) +0:78 'inF2' (in 3-component vector of float) +0:78 'inU0' (in 3-component vector of uint) +0:78 'inU1' (in 3-component vector of uint) 0:? Sequence 0:82 all (global bool) -0:82 'inF0' (temp 3-component vector of float) +0:82 'inF0' (in 3-component vector of float) 0:85 AtomicAdd (global void) 0:85 'gs_ua3' (temp 3-component vector of uint) 0:85 'gs_ub3' (temp 3-component vector of uint) @@ -556,14 +556,14 @@ local_size = (1, 1, 1) 0:? 3.000000 0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:105 Function Parameters: -0:105 'inF0' (temp 4-component vector of float) -0:105 'inF1' (temp 4-component vector of float) -0:105 'inF2' (temp 4-component vector of float) -0:105 'inU0' (temp 4-component vector of uint) -0:105 'inU1' (temp 4-component vector of uint) +0:105 'inF0' (in 4-component vector of float) +0:105 'inF1' (in 4-component vector of float) +0:105 'inF2' (in 4-component vector of float) +0:105 'inU0' (in 4-component vector of uint) +0:105 'inU1' (in 4-component vector of uint) 0:? Sequence 0:109 all (global bool) -0:109 'inF0' (temp 4-component vector of float) +0:109 'inF0' (in 4-component vector of float) 0:112 AtomicAdd (global void) 0:112 'gs_ua4' (temp 4-component vector of uint) 0:112 'gs_ub4' (temp 4-component vector of uint) @@ -650,7 +650,7 @@ local_size = (1, 1, 1) Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" + EntryPoint GLCompute 4 "ComputeShaderFunction" 8 54 98 141 ExecutionMode 4 LocalSize 1 1 1 Source HLSL 450 Name 4 "ComputeShaderFunction" @@ -677,7 +677,8 @@ local_size = (1, 1, 1) 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 - 7: TypePointer Function 6(float) + 7: TypePointer Input 6(float) + 8(inF0): 7(ptr) Variable Input 10: TypeBool 12: TypeInt 32 0 13: TypePointer Function 12(int) @@ -685,42 +686,41 @@ local_size = (1, 1, 1) 18: 12(int) Constant 0 49: 6(float) Constant 0 52: TypeVector 6(float) 2 - 53: TypePointer Function 52(fvec2) + 53: TypePointer Input 52(fvec2) + 54(inF0): 53(ptr) Variable Input 57: TypeVector 12(int) 2 58: TypePointer Function 57(ivec2) 92: 6(float) Constant 1065353216 93: 6(float) Constant 1073741824 94: 52(fvec2) ConstantComposite 92 93 96: TypeVector 6(float) 3 - 97: TypePointer Function 96(fvec3) + 97: TypePointer Input 96(fvec3) + 98(inF0): 97(ptr) Variable Input 101: TypeVector 12(int) 3 102: TypePointer Function 101(ivec3) 136: 6(float) Constant 1077936128 137: 96(fvec3) ConstantComposite 92 93 136 139: TypeVector 6(float) 4 - 140: TypePointer Function 139(fvec4) + 140: TypePointer Input 139(fvec4) + 141(inF0): 140(ptr) Variable Input 144: TypeVector 12(int) 4 145: TypePointer Function 144(ivec4) 179: 6(float) Constant 1082130432 180: 139(fvec4) ConstantComposite 92 93 136 179 4(ComputeShaderFunction): 2 Function None 3 5: Label - 8(inF0): 7(ptr) Variable Function 14(gs_ua): 13(ptr) Variable Function 15(gs_ub): 13(ptr) Variable Function 20(out_u1): 13(ptr) Variable Function 28(gs_uc): 13(ptr) Variable Function - 54(inF0): 53(ptr) Variable Function 59(gs_ua2): 58(ptr) Variable Function 60(gs_ub2): 58(ptr) Variable Function 63(out_u2): 58(ptr) Variable Function 71(gs_uc2): 58(ptr) Variable Function - 98(inF0): 97(ptr) Variable Function 103(gs_ua3): 102(ptr) Variable Function 104(gs_ub3): 102(ptr) Variable Function 107(out_u3): 102(ptr) Variable Function 115(gs_uc3): 102(ptr) Variable Function - 141(inF0): 140(ptr) Variable Function 146(gs_ua4): 145(ptr) Variable Function 147(gs_ub4): 145(ptr) Variable Function 150(out_u4): 145(ptr) Variable Function diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 80ac3dd5..1b886d10 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -4,72 +4,72 @@ gl_FragCoord origin is upper left 0:? Sequence 0:87 Function Definition: PixelShaderFunction(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: -0:17 'inF0' (temp float) -0:17 'inF1' (temp float) -0:17 'inF2' (temp float) -0:17 'inU0' (temp uint) -0:17 'inU1' (temp uint) +0:17 'inF0' (in float) +0:17 'inF1' (in float) +0:17 'inF2' (in float) +0:17 'inU0' (in uint) +0:17 'inU1' (in uint) 0:? Sequence 0:20 all (global bool) -0:20 'inF0' (temp float) +0:20 'inF0' (in float) 0:21 Absolute value (global float) -0:21 'inF0' (temp float) +0:21 'inF0' (in float) 0:22 arc cosine (global float) -0:22 'inF0' (temp float) +0:22 'inF0' (in float) 0:23 any (global bool) -0:23 'inF0' (temp float) +0:23 'inF0' (in float) 0:24 arc sine (global float) -0:24 'inF0' (temp float) +0:24 'inF0' (in float) 0:25 floatBitsToInt (global int) -0:25 'inF0' (temp float) +0:25 'inF0' (in float) 0:26 floatBitsToUint (global uint) -0:26 'inF0' (temp float) +0:26 'inF0' (in float) 0:27 intBitsToFloat (global float) -0:27 'inU0' (temp uint) +0:27 'inU0' (in uint) 0:29 arc tangent (global float) -0:29 'inF0' (temp float) +0:29 'inF0' (in float) 0:30 arc tangent (global float) -0:30 'inF0' (temp float) -0:30 'inF1' (temp float) +0:30 'inF0' (in float) +0:30 'inF1' (in float) 0:31 Ceiling (global float) -0:31 'inF0' (temp float) +0:31 'inF0' (in float) 0:32 clamp (global float) -0:32 'inF0' (temp float) -0:32 'inF1' (temp float) -0:32 'inF2' (temp float) +0:32 'inF0' (in float) +0:32 'inF1' (in float) +0:32 'inF2' (in float) 0:33 Test condition and select (temp void) 0:33 Condition 0:33 Compare Less Than (temp bool) -0:33 'inF0' (temp float) +0:33 'inF0' (in float) 0:33 Constant: 0:33 0.000000 0:33 true case 0:33 Branch: Kill 0:34 cosine (global float) -0:34 'inF0' (temp float) +0:34 'inF0' (in float) 0:35 hyp. cosine (global float) -0:35 'inF0' (temp float) +0:35 'inF0' (in float) 0:36 bitCount (global uint) 0:36 Constant: 0:36 7 (const uint) 0:37 dPdx (global float) -0:37 'inF0' (temp float) +0:37 'inF0' (in float) 0:38 dPdxCoarse (global float) -0:38 'inF0' (temp float) +0:38 'inF0' (in float) 0:39 dPdxFine (global float) -0:39 'inF0' (temp float) +0:39 'inF0' (in float) 0:40 dPdy (global float) -0:40 'inF0' (temp float) +0:40 'inF0' (in float) 0:41 dPdyCoarse (global float) -0:41 'inF0' (temp float) +0:41 'inF0' (in float) 0:42 dPdyFine (global float) -0:42 'inF0' (temp float) +0:42 'inF0' (in float) 0:43 degrees (global float) -0:43 'inF0' (temp float) +0:43 'inF0' (in float) 0:47 exp (global float) -0:47 'inF0' (temp float) +0:47 'inF0' (in float) 0:48 exp2 (global float) -0:48 'inF0' (temp float) +0:48 'inF0' (in float) 0:49 findMSB (global int) 0:49 Constant: 0:49 7 (const int) @@ -77,184 +77,184 @@ gl_FragCoord origin is upper left 0:50 Constant: 0:50 7 (const int) 0:51 Floor (global float) -0:51 'inF0' (temp float) +0:51 'inF0' (in float) 0:53 mod (global float) -0:53 'inF0' (temp float) -0:53 'inF1' (temp float) +0:53 'inF0' (in float) +0:53 'inF1' (in float) 0:54 Fraction (global float) -0:54 'inF0' (temp float) +0:54 'inF0' (in float) 0:55 frexp (global float) -0:55 'inF0' (temp float) -0:55 'inF1' (temp float) +0:55 'inF0' (in float) +0:55 'inF1' (in float) 0:56 fwidth (global float) -0:56 'inF0' (temp float) +0:56 'inF0' (in float) 0:57 isinf (global bool) -0:57 'inF0' (temp float) +0:57 'inF0' (in float) 0:58 isnan (global bool) -0:58 'inF0' (temp float) +0:58 'inF0' (in float) 0:59 ldexp (global float) -0:59 'inF0' (temp float) -0:59 'inF1' (temp float) +0:59 'inF0' (in float) +0:59 'inF1' (in float) 0:60 log (global float) -0:60 'inF0' (temp float) +0:60 'inF0' (in float) 0:61 component-wise multiply (temp float) 0:61 log2 (temp float) -0:61 'inF0' (temp float) +0:61 'inF0' (in float) 0:61 Constant: 0:61 0.301030 0:62 log2 (global float) -0:62 'inF0' (temp float) +0:62 'inF0' (in float) 0:63 max (global float) -0:63 'inF0' (temp float) -0:63 'inF1' (temp float) +0:63 'inF0' (in float) +0:63 'inF1' (in float) 0:64 min (global float) -0:64 'inF0' (temp float) -0:64 'inF1' (temp float) +0:64 'inF0' (in float) +0:64 'inF1' (in float) 0:65 pow (global float) -0:65 'inF0' (temp float) -0:65 'inF1' (temp float) +0:65 'inF0' (in float) +0:65 'inF1' (in float) 0:66 radians (global float) -0:66 'inF0' (temp float) +0:66 'inF0' (in float) 0:67 divide (temp float) 0:67 Constant: 0:67 1.000000 -0:67 'inF0' (temp float) +0:67 'inF0' (in float) 0:68 bitFieldReverse (global uint) 0:68 Constant: 0:68 2 (const uint) 0:69 roundEven (global float) -0:69 'inF0' (temp float) +0:69 'inF0' (in float) 0:70 inverse sqrt (global float) -0:70 'inF0' (temp float) +0:70 'inF0' (in float) 0:71 clamp (temp float) -0:71 'inF0' (temp float) +0:71 'inF0' (in float) 0:71 Constant: 0:71 0.000000 0:71 Constant: 0:71 1.000000 0:72 Sign (global float) -0:72 'inF0' (temp float) +0:72 'inF0' (in float) 0:73 sine (global float) -0:73 'inF0' (temp float) +0:73 'inF0' (in float) 0:74 Sequence 0:74 move second child to first child (temp float) -0:74 'inF1' (temp float) +0:74 'inF1' (in float) 0:74 sine (temp float) -0:74 'inF0' (temp float) +0:74 'inF0' (in float) 0:74 move second child to first child (temp float) -0:74 'inF2' (temp float) +0:74 'inF2' (in float) 0:74 cosine (temp float) -0:74 'inF0' (temp float) +0:74 'inF0' (in float) 0:75 hyp. sine (global float) -0:75 'inF0' (temp float) +0:75 'inF0' (in float) 0:76 smoothstep (global float) -0:76 'inF0' (temp float) -0:76 'inF1' (temp float) -0:76 'inF2' (temp float) +0:76 'inF0' (in float) +0:76 'inF1' (in float) +0:76 'inF2' (in float) 0:77 sqrt (global float) -0:77 'inF0' (temp float) +0:77 'inF0' (in float) 0:78 step (global float) -0:78 'inF0' (temp float) -0:78 'inF1' (temp float) +0:78 'inF0' (in float) +0:78 'inF1' (in float) 0:79 tangent (global float) -0:79 'inF0' (temp float) +0:79 'inF0' (in float) 0:80 hyp. tangent (global float) -0:80 'inF0' (temp float) +0:80 'inF0' (in float) 0:82 trunc (global float) -0:82 'inF0' (temp float) +0:82 'inF0' (in float) 0:84 Branch: Return with expression 0:84 Constant: 0:84 0.000000 0:93 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) 0:88 Function Parameters: -0:88 'inF0' (temp 1-component vector of float) -0:88 'inF1' (temp 1-component vector of float) -0:88 'inF2' (temp 1-component vector of float) +0:88 'inF0' (in 1-component vector of float) +0:88 'inF1' (in 1-component vector of float) +0:88 'inF2' (in 1-component vector of float) 0:? Sequence 0:90 Branch: Return with expression 0:90 Constant: 0:90 0.000000 0:172 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:94 Function Parameters: -0:94 'inF0' (temp 2-component vector of float) -0:94 'inF1' (temp 2-component vector of float) -0:94 'inF2' (temp 2-component vector of float) -0:94 'inU0' (temp 2-component vector of uint) -0:94 'inU1' (temp 2-component vector of uint) +0:94 'inF0' (in 2-component vector of float) +0:94 'inF1' (in 2-component vector of float) +0:94 'inF2' (in 2-component vector of float) +0:94 'inU0' (in 2-component vector of uint) +0:94 'inU1' (in 2-component vector of uint) 0:? Sequence 0:97 all (global bool) -0:97 'inF0' (temp 2-component vector of float) +0:97 'inF0' (in 2-component vector of float) 0:98 Absolute value (global 2-component vector of float) -0:98 'inF0' (temp 2-component vector of float) +0:98 'inF0' (in 2-component vector of float) 0:99 arc cosine (global 2-component vector of float) -0:99 'inF0' (temp 2-component vector of float) +0:99 'inF0' (in 2-component vector of float) 0:100 any (global bool) -0:100 'inF0' (temp 2-component vector of float) +0:100 'inF0' (in 2-component vector of float) 0:101 arc sine (global 2-component vector of float) -0:101 'inF0' (temp 2-component vector of float) +0:101 'inF0' (in 2-component vector of float) 0:102 floatBitsToInt (global 2-component vector of int) -0:102 'inF0' (temp 2-component vector of float) +0:102 'inF0' (in 2-component vector of float) 0:103 floatBitsToUint (global 2-component vector of uint) -0:103 'inF0' (temp 2-component vector of float) +0:103 'inF0' (in 2-component vector of float) 0:104 intBitsToFloat (global 2-component vector of float) -0:104 'inU0' (temp 2-component vector of uint) +0:104 'inU0' (in 2-component vector of uint) 0:106 arc tangent (global 2-component vector of float) -0:106 'inF0' (temp 2-component vector of float) +0:106 'inF0' (in 2-component vector of float) 0:107 arc tangent (global 2-component vector of float) -0:107 'inF0' (temp 2-component vector of float) -0:107 'inF1' (temp 2-component vector of float) +0:107 'inF0' (in 2-component vector of float) +0:107 'inF1' (in 2-component vector of float) 0:108 Ceiling (global 2-component vector of float) -0:108 'inF0' (temp 2-component vector of float) +0:108 'inF0' (in 2-component vector of float) 0:109 clamp (global 2-component vector of float) -0:109 'inF0' (temp 2-component vector of float) -0:109 'inF1' (temp 2-component vector of float) -0:109 'inF2' (temp 2-component vector of float) +0:109 'inF0' (in 2-component vector of float) +0:109 'inF1' (in 2-component vector of float) +0:109 'inF2' (in 2-component vector of float) 0:110 Test condition and select (temp void) 0:110 Condition 0:110 any (temp bool) 0:110 Compare Less Than (temp 2-component vector of bool) -0:110 'inF0' (temp 2-component vector of float) +0:110 'inF0' (in 2-component vector of float) 0:110 Constant: 0:110 0.000000 0:110 0.000000 0:110 true case 0:110 Branch: Kill 0:111 cosine (global 2-component vector of float) -0:111 'inF0' (temp 2-component vector of float) +0:111 'inF0' (in 2-component vector of float) 0:112 hyp. cosine (global 2-component vector of float) -0:112 'inF0' (temp 2-component vector of float) +0:112 'inF0' (in 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:114 dPdx (global 2-component vector of float) -0:114 'inF0' (temp 2-component vector of float) +0:114 'inF0' (in 2-component vector of float) 0:115 dPdxCoarse (global 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) +0:115 'inF0' (in 2-component vector of float) 0:116 dPdxFine (global 2-component vector of float) -0:116 'inF0' (temp 2-component vector of float) +0:116 'inF0' (in 2-component vector of float) 0:117 dPdy (global 2-component vector of float) -0:117 'inF0' (temp 2-component vector of float) +0:117 'inF0' (in 2-component vector of float) 0:118 dPdyCoarse (global 2-component vector of float) -0:118 'inF0' (temp 2-component vector of float) +0:118 'inF0' (in 2-component vector of float) 0:119 dPdyFine (global 2-component vector of float) -0:119 'inF0' (temp 2-component vector of float) +0:119 'inF0' (in 2-component vector of float) 0:120 degrees (global 2-component vector of float) -0:120 'inF0' (temp 2-component vector of float) +0:120 'inF0' (in 2-component vector of float) 0:121 distance (global float) -0:121 'inF0' (temp 2-component vector of float) -0:121 'inF1' (temp 2-component vector of float) +0:121 'inF0' (in 2-component vector of float) +0:121 'inF1' (in 2-component vector of float) 0:122 dot-product (global float) -0:122 'inF0' (temp 2-component vector of float) -0:122 'inF1' (temp 2-component vector of float) +0:122 'inF0' (in 2-component vector of float) +0:122 'inF1' (in 2-component vector of float) 0:126 exp (global 2-component vector of float) -0:126 'inF0' (temp 2-component vector of float) +0:126 'inF0' (in 2-component vector of float) 0:127 exp2 (global 2-component vector of float) -0:127 'inF0' (temp 2-component vector of float) +0:127 'inF0' (in 2-component vector of float) 0:128 face-forward (global 2-component vector of float) -0:128 'inF0' (temp 2-component vector of float) -0:128 'inF1' (temp 2-component vector of float) -0:128 'inF2' (temp 2-component vector of float) +0:128 'inF0' (in 2-component vector of float) +0:128 'inF1' (in 2-component vector of float) +0:128 'inF2' (in 2-component vector of float) 0:129 findMSB (global int) 0:129 Constant: 0:129 7 (const int) @@ -262,58 +262,58 @@ gl_FragCoord origin is upper left 0:130 Constant: 0:130 7 (const int) 0:131 Floor (global 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) +0:131 'inF0' (in 2-component vector of float) 0:133 mod (global 2-component vector of float) -0:133 'inF0' (temp 2-component vector of float) -0:133 'inF1' (temp 2-component vector of float) +0:133 'inF0' (in 2-component vector of float) +0:133 'inF1' (in 2-component vector of float) 0:134 Fraction (global 2-component vector of float) -0:134 'inF0' (temp 2-component vector of float) +0:134 'inF0' (in 2-component vector of float) 0:135 frexp (global 2-component vector of float) -0:135 'inF0' (temp 2-component vector of float) -0:135 'inF1' (temp 2-component vector of float) +0:135 'inF0' (in 2-component vector of float) +0:135 'inF1' (in 2-component vector of float) 0:136 fwidth (global 2-component vector of float) -0:136 'inF0' (temp 2-component vector of float) +0:136 'inF0' (in 2-component vector of float) 0:137 isinf (global 2-component vector of bool) -0:137 'inF0' (temp 2-component vector of float) +0:137 'inF0' (in 2-component vector of float) 0:138 isnan (global 2-component vector of bool) -0:138 'inF0' (temp 2-component vector of float) +0:138 'inF0' (in 2-component vector of float) 0:139 ldexp (global 2-component vector of float) -0:139 'inF0' (temp 2-component vector of float) -0:139 'inF1' (temp 2-component vector of float) +0:139 'inF0' (in 2-component vector of float) +0:139 'inF1' (in 2-component vector of float) 0:140 length (global float) -0:140 'inF0' (temp 2-component vector of float) +0:140 'inF0' (in 2-component vector of float) 0:141 log (global 2-component vector of float) -0:141 'inF0' (temp 2-component vector of float) +0:141 'inF0' (in 2-component vector of float) 0:142 vector-scale (temp 2-component vector of float) 0:142 log2 (temp 2-component vector of float) -0:142 'inF0' (temp 2-component vector of float) +0:142 'inF0' (in 2-component vector of float) 0:142 Constant: 0:142 0.301030 0:143 log2 (global 2-component vector of float) -0:143 'inF0' (temp 2-component vector of float) +0:143 'inF0' (in 2-component vector of float) 0:144 max (global 2-component vector of float) -0:144 'inF0' (temp 2-component vector of float) -0:144 'inF1' (temp 2-component vector of float) +0:144 'inF0' (in 2-component vector of float) +0:144 'inF1' (in 2-component vector of float) 0:145 min (global 2-component vector of float) -0:145 'inF0' (temp 2-component vector of float) -0:145 'inF1' (temp 2-component vector of float) +0:145 'inF0' (in 2-component vector of float) +0:145 'inF1' (in 2-component vector of float) 0:146 normalize (global 2-component vector of float) -0:146 'inF0' (temp 2-component vector of float) +0:146 'inF0' (in 2-component vector of float) 0:147 pow (global 2-component vector of float) -0:147 'inF0' (temp 2-component vector of float) -0:147 'inF1' (temp 2-component vector of float) +0:147 'inF0' (in 2-component vector of float) +0:147 'inF1' (in 2-component vector of float) 0:148 radians (global 2-component vector of float) -0:148 'inF0' (temp 2-component vector of float) +0:148 'inF0' (in 2-component vector of float) 0:149 divide (temp 2-component vector of float) 0:149 Constant: 0:149 1.000000 -0:149 'inF0' (temp 2-component vector of float) +0:149 'inF0' (in 2-component vector of float) 0:150 reflect (global 2-component vector of float) -0:150 'inF0' (temp 2-component vector of float) -0:150 'inF1' (temp 2-component vector of float) +0:150 'inF0' (in 2-component vector of float) +0:150 'inF1' (in 2-component vector of float) 0:151 refract (global 2-component vector of float) -0:151 'inF0' (temp 2-component vector of float) -0:151 'inF1' (temp 2-component vector of float) +0:151 'inF0' (in 2-component vector of float) +0:151 'inF1' (in 2-component vector of float) 0:151 Constant: 0:151 2.000000 0:? bitFieldReverse (global 2-component vector of uint) @@ -321,89 +321,89 @@ gl_FragCoord origin is upper left 0:? 1 (const uint) 0:? 2 (const uint) 0:153 roundEven (global 2-component vector of float) -0:153 'inF0' (temp 2-component vector of float) +0:153 'inF0' (in 2-component vector of float) 0:154 inverse sqrt (global 2-component vector of float) -0:154 'inF0' (temp 2-component vector of float) +0:154 'inF0' (in 2-component vector of float) 0:155 clamp (temp 2-component vector of float) -0:155 'inF0' (temp 2-component vector of float) +0:155 'inF0' (in 2-component vector of float) 0:155 Constant: 0:155 0.000000 0:155 Constant: 0:155 1.000000 0:156 Sign (global 2-component vector of float) -0:156 'inF0' (temp 2-component vector of float) +0:156 'inF0' (in 2-component vector of float) 0:157 sine (global 2-component vector of float) -0:157 'inF0' (temp 2-component vector of float) +0:157 'inF0' (in 2-component vector of float) 0:158 Sequence 0:158 move second child to first child (temp 2-component vector of float) -0:158 'inF1' (temp 2-component vector of float) +0:158 'inF1' (in 2-component vector of float) 0:158 sine (temp 2-component vector of float) -0:158 'inF0' (temp 2-component vector of float) +0:158 'inF0' (in 2-component vector of float) 0:158 move second child to first child (temp 2-component vector of float) -0:158 'inF2' (temp 2-component vector of float) +0:158 'inF2' (in 2-component vector of float) 0:158 cosine (temp 2-component vector of float) -0:158 'inF0' (temp 2-component vector of float) +0:158 'inF0' (in 2-component vector of float) 0:159 hyp. sine (global 2-component vector of float) -0:159 'inF0' (temp 2-component vector of float) +0:159 'inF0' (in 2-component vector of float) 0:160 smoothstep (global 2-component vector of float) -0:160 'inF0' (temp 2-component vector of float) -0:160 'inF1' (temp 2-component vector of float) -0:160 'inF2' (temp 2-component vector of float) +0:160 'inF0' (in 2-component vector of float) +0:160 'inF1' (in 2-component vector of float) +0:160 'inF2' (in 2-component vector of float) 0:161 sqrt (global 2-component vector of float) -0:161 'inF0' (temp 2-component vector of float) +0:161 'inF0' (in 2-component vector of float) 0:162 step (global 2-component vector of float) -0:162 'inF0' (temp 2-component vector of float) -0:162 'inF1' (temp 2-component vector of float) +0:162 'inF0' (in 2-component vector of float) +0:162 'inF1' (in 2-component vector of float) 0:163 tangent (global 2-component vector of float) -0:163 'inF0' (temp 2-component vector of float) +0:163 'inF0' (in 2-component vector of float) 0:164 hyp. tangent (global 2-component vector of float) -0:164 'inF0' (temp 2-component vector of float) +0:164 'inF0' (in 2-component vector of float) 0:166 trunc (global 2-component vector of float) -0:166 'inF0' (temp 2-component vector of float) +0:166 'inF0' (in 2-component vector of float) 0:169 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:252 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:173 Function Parameters: -0:173 'inF0' (temp 3-component vector of float) -0:173 'inF1' (temp 3-component vector of float) -0:173 'inF2' (temp 3-component vector of float) -0:173 'inU0' (temp 3-component vector of uint) -0:173 'inU1' (temp 3-component vector of uint) +0:173 'inF0' (in 3-component vector of float) +0:173 'inF1' (in 3-component vector of float) +0:173 'inF2' (in 3-component vector of float) +0:173 'inU0' (in 3-component vector of uint) +0:173 'inU1' (in 3-component vector of uint) 0:? Sequence 0:176 all (global bool) -0:176 'inF0' (temp 3-component vector of float) +0:176 'inF0' (in 3-component vector of float) 0:177 Absolute value (global 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) +0:177 'inF0' (in 3-component vector of float) 0:178 arc cosine (global 3-component vector of float) -0:178 'inF0' (temp 3-component vector of float) +0:178 'inF0' (in 3-component vector of float) 0:179 any (global bool) -0:179 'inF0' (temp 3-component vector of float) +0:179 'inF0' (in 3-component vector of float) 0:180 arc sine (global 3-component vector of float) -0:180 'inF0' (temp 3-component vector of float) +0:180 'inF0' (in 3-component vector of float) 0:181 floatBitsToInt (global 3-component vector of int) -0:181 'inF0' (temp 3-component vector of float) +0:181 'inF0' (in 3-component vector of float) 0:182 floatBitsToUint (global 3-component vector of uint) -0:182 'inF0' (temp 3-component vector of float) +0:182 'inF0' (in 3-component vector of float) 0:183 intBitsToFloat (global 3-component vector of float) -0:183 'inU0' (temp 3-component vector of uint) +0:183 'inU0' (in 3-component vector of uint) 0:185 arc tangent (global 3-component vector of float) -0:185 'inF0' (temp 3-component vector of float) +0:185 'inF0' (in 3-component vector of float) 0:186 arc tangent (global 3-component vector of float) -0:186 'inF0' (temp 3-component vector of float) -0:186 'inF1' (temp 3-component vector of float) +0:186 'inF0' (in 3-component vector of float) +0:186 'inF1' (in 3-component vector of float) 0:187 Ceiling (global 3-component vector of float) -0:187 'inF0' (temp 3-component vector of float) +0:187 'inF0' (in 3-component vector of float) 0:188 clamp (global 3-component vector of float) -0:188 'inF0' (temp 3-component vector of float) -0:188 'inF1' (temp 3-component vector of float) -0:188 'inF2' (temp 3-component vector of float) +0:188 'inF0' (in 3-component vector of float) +0:188 'inF1' (in 3-component vector of float) +0:188 'inF2' (in 3-component vector of float) 0:189 Test condition and select (temp void) 0:189 Condition 0:189 any (temp bool) 0:189 Compare Less Than (temp 3-component vector of bool) -0:189 'inF0' (temp 3-component vector of float) +0:189 'inF0' (in 3-component vector of float) 0:189 Constant: 0:189 0.000000 0:189 0.000000 @@ -411,45 +411,45 @@ gl_FragCoord origin is upper left 0:189 true case 0:189 Branch: Kill 0:190 cosine (global 3-component vector of float) -0:190 'inF0' (temp 3-component vector of float) +0:190 'inF0' (in 3-component vector of float) 0:191 hyp. cosine (global 3-component vector of float) -0:191 'inF0' (temp 3-component vector of float) +0:191 'inF0' (in 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:193 cross-product (global 3-component vector of float) -0:193 'inF0' (temp 3-component vector of float) -0:193 'inF1' (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) +0:193 'inF1' (in 3-component vector of float) 0:194 dPdx (global 3-component vector of float) -0:194 'inF0' (temp 3-component vector of float) +0:194 'inF0' (in 3-component vector of float) 0:195 dPdxCoarse (global 3-component vector of float) -0:195 'inF0' (temp 3-component vector of float) +0:195 'inF0' (in 3-component vector of float) 0:196 dPdxFine (global 3-component vector of float) -0:196 'inF0' (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) 0:197 dPdy (global 3-component vector of float) -0:197 'inF0' (temp 3-component vector of float) +0:197 'inF0' (in 3-component vector of float) 0:198 dPdyCoarse (global 3-component vector of float) -0:198 'inF0' (temp 3-component vector of float) +0:198 'inF0' (in 3-component vector of float) 0:199 dPdyFine (global 3-component vector of float) -0:199 'inF0' (temp 3-component vector of float) +0:199 'inF0' (in 3-component vector of float) 0:200 degrees (global 3-component vector of float) -0:200 'inF0' (temp 3-component vector of float) +0:200 'inF0' (in 3-component vector of float) 0:201 distance (global float) -0:201 'inF0' (temp 3-component vector of float) -0:201 'inF1' (temp 3-component vector of float) +0:201 'inF0' (in 3-component vector of float) +0:201 'inF1' (in 3-component vector of float) 0:202 dot-product (global float) -0:202 'inF0' (temp 3-component vector of float) -0:202 'inF1' (temp 3-component vector of float) +0:202 'inF0' (in 3-component vector of float) +0:202 'inF1' (in 3-component vector of float) 0:206 exp (global 3-component vector of float) -0:206 'inF0' (temp 3-component vector of float) +0:206 'inF0' (in 3-component vector of float) 0:207 exp2 (global 3-component vector of float) -0:207 'inF0' (temp 3-component vector of float) +0:207 'inF0' (in 3-component vector of float) 0:208 face-forward (global 3-component vector of float) -0:208 'inF0' (temp 3-component vector of float) -0:208 'inF1' (temp 3-component vector of float) -0:208 'inF2' (temp 3-component vector of float) +0:208 'inF0' (in 3-component vector of float) +0:208 'inF1' (in 3-component vector of float) +0:208 'inF2' (in 3-component vector of float) 0:209 findMSB (global int) 0:209 Constant: 0:209 7 (const int) @@ -457,58 +457,58 @@ gl_FragCoord origin is upper left 0:210 Constant: 0:210 7 (const int) 0:211 Floor (global 3-component vector of float) -0:211 'inF0' (temp 3-component vector of float) +0:211 'inF0' (in 3-component vector of float) 0:213 mod (global 3-component vector of float) -0:213 'inF0' (temp 3-component vector of float) -0:213 'inF1' (temp 3-component vector of float) +0:213 'inF0' (in 3-component vector of float) +0:213 'inF1' (in 3-component vector of float) 0:214 Fraction (global 3-component vector of float) -0:214 'inF0' (temp 3-component vector of float) +0:214 'inF0' (in 3-component vector of float) 0:215 frexp (global 3-component vector of float) -0:215 'inF0' (temp 3-component vector of float) -0:215 'inF1' (temp 3-component vector of float) +0:215 'inF0' (in 3-component vector of float) +0:215 'inF1' (in 3-component vector of float) 0:216 fwidth (global 3-component vector of float) -0:216 'inF0' (temp 3-component vector of float) +0:216 'inF0' (in 3-component vector of float) 0:217 isinf (global 3-component vector of bool) -0:217 'inF0' (temp 3-component vector of float) +0:217 'inF0' (in 3-component vector of float) 0:218 isnan (global 3-component vector of bool) -0:218 'inF0' (temp 3-component vector of float) +0:218 'inF0' (in 3-component vector of float) 0:219 ldexp (global 3-component vector of float) -0:219 'inF0' (temp 3-component vector of float) -0:219 'inF1' (temp 3-component vector of float) +0:219 'inF0' (in 3-component vector of float) +0:219 'inF1' (in 3-component vector of float) 0:220 length (global float) -0:220 'inF0' (temp 3-component vector of float) +0:220 'inF0' (in 3-component vector of float) 0:221 log (global 3-component vector of float) -0:221 'inF0' (temp 3-component vector of float) +0:221 'inF0' (in 3-component vector of float) 0:222 vector-scale (temp 3-component vector of float) 0:222 log2 (temp 3-component vector of float) -0:222 'inF0' (temp 3-component vector of float) +0:222 'inF0' (in 3-component vector of float) 0:222 Constant: 0:222 0.301030 0:223 log2 (global 3-component vector of float) -0:223 'inF0' (temp 3-component vector of float) +0:223 'inF0' (in 3-component vector of float) 0:224 max (global 3-component vector of float) -0:224 'inF0' (temp 3-component vector of float) -0:224 'inF1' (temp 3-component vector of float) +0:224 'inF0' (in 3-component vector of float) +0:224 'inF1' (in 3-component vector of float) 0:225 min (global 3-component vector of float) -0:225 'inF0' (temp 3-component vector of float) -0:225 'inF1' (temp 3-component vector of float) +0:225 'inF0' (in 3-component vector of float) +0:225 'inF1' (in 3-component vector of float) 0:226 normalize (global 3-component vector of float) -0:226 'inF0' (temp 3-component vector of float) +0:226 'inF0' (in 3-component vector of float) 0:227 pow (global 3-component vector of float) -0:227 'inF0' (temp 3-component vector of float) -0:227 'inF1' (temp 3-component vector of float) +0:227 'inF0' (in 3-component vector of float) +0:227 'inF1' (in 3-component vector of float) 0:228 radians (global 3-component vector of float) -0:228 'inF0' (temp 3-component vector of float) +0:228 'inF0' (in 3-component vector of float) 0:229 divide (temp 3-component vector of float) 0:229 Constant: 0:229 1.000000 -0:229 'inF0' (temp 3-component vector of float) +0:229 'inF0' (in 3-component vector of float) 0:230 reflect (global 3-component vector of float) -0:230 'inF0' (temp 3-component vector of float) -0:230 'inF1' (temp 3-component vector of float) +0:230 'inF0' (in 3-component vector of float) +0:230 'inF1' (in 3-component vector of float) 0:231 refract (global 3-component vector of float) -0:231 'inF0' (temp 3-component vector of float) -0:231 'inF1' (temp 3-component vector of float) +0:231 'inF0' (in 3-component vector of float) +0:231 'inF1' (in 3-component vector of float) 0:231 Constant: 0:231 2.000000 0:? bitFieldReverse (global 3-component vector of uint) @@ -517,45 +517,45 @@ gl_FragCoord origin is upper left 0:? 2 (const uint) 0:? 3 (const uint) 0:233 roundEven (global 3-component vector of float) -0:233 'inF0' (temp 3-component vector of float) +0:233 'inF0' (in 3-component vector of float) 0:234 inverse sqrt (global 3-component vector of float) -0:234 'inF0' (temp 3-component vector of float) +0:234 'inF0' (in 3-component vector of float) 0:235 clamp (temp 3-component vector of float) -0:235 'inF0' (temp 3-component vector of float) +0:235 'inF0' (in 3-component vector of float) 0:235 Constant: 0:235 0.000000 0:235 Constant: 0:235 1.000000 0:236 Sign (global 3-component vector of float) -0:236 'inF0' (temp 3-component vector of float) +0:236 'inF0' (in 3-component vector of float) 0:237 sine (global 3-component vector of float) -0:237 'inF0' (temp 3-component vector of float) +0:237 'inF0' (in 3-component vector of float) 0:238 Sequence 0:238 move second child to first child (temp 3-component vector of float) -0:238 'inF1' (temp 3-component vector of float) +0:238 'inF1' (in 3-component vector of float) 0:238 sine (temp 3-component vector of float) -0:238 'inF0' (temp 3-component vector of float) +0:238 'inF0' (in 3-component vector of float) 0:238 move second child to first child (temp 3-component vector of float) -0:238 'inF2' (temp 3-component vector of float) +0:238 'inF2' (in 3-component vector of float) 0:238 cosine (temp 3-component vector of float) -0:238 'inF0' (temp 3-component vector of float) +0:238 'inF0' (in 3-component vector of float) 0:239 hyp. sine (global 3-component vector of float) -0:239 'inF0' (temp 3-component vector of float) +0:239 'inF0' (in 3-component vector of float) 0:240 smoothstep (global 3-component vector of float) -0:240 'inF0' (temp 3-component vector of float) -0:240 'inF1' (temp 3-component vector of float) -0:240 'inF2' (temp 3-component vector of float) +0:240 'inF0' (in 3-component vector of float) +0:240 'inF1' (in 3-component vector of float) +0:240 'inF2' (in 3-component vector of float) 0:241 sqrt (global 3-component vector of float) -0:241 'inF0' (temp 3-component vector of float) +0:241 'inF0' (in 3-component vector of float) 0:242 step (global 3-component vector of float) -0:242 'inF0' (temp 3-component vector of float) -0:242 'inF1' (temp 3-component vector of float) +0:242 'inF0' (in 3-component vector of float) +0:242 'inF1' (in 3-component vector of float) 0:243 tangent (global 3-component vector of float) -0:243 'inF0' (temp 3-component vector of float) +0:243 'inF0' (in 3-component vector of float) 0:244 hyp. tangent (global 3-component vector of float) -0:244 'inF0' (temp 3-component vector of float) +0:244 'inF0' (in 3-component vector of float) 0:246 trunc (global 3-component vector of float) -0:246 'inF0' (temp 3-component vector of float) +0:246 'inF0' (in 3-component vector of float) 0:249 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -563,44 +563,44 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:393 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:253 Function Parameters: -0:253 'inF0' (temp 4-component vector of float) -0:253 'inF1' (temp 4-component vector of float) -0:253 'inF2' (temp 4-component vector of float) -0:253 'inU0' (temp 4-component vector of uint) -0:253 'inU1' (temp 4-component vector of uint) +0:253 'inF0' (in 4-component vector of float) +0:253 'inF1' (in 4-component vector of float) +0:253 'inF2' (in 4-component vector of float) +0:253 'inU0' (in 4-component vector of uint) +0:253 'inU1' (in 4-component vector of uint) 0:? Sequence 0:256 all (global bool) -0:256 'inF0' (temp 4-component vector of float) +0:256 'inF0' (in 4-component vector of float) 0:257 Absolute value (global 4-component vector of float) -0:257 'inF0' (temp 4-component vector of float) +0:257 'inF0' (in 4-component vector of float) 0:258 arc cosine (global 4-component vector of float) -0:258 'inF0' (temp 4-component vector of float) +0:258 'inF0' (in 4-component vector of float) 0:259 any (global bool) -0:259 'inF0' (temp 4-component vector of float) +0:259 'inF0' (in 4-component vector of float) 0:260 arc sine (global 4-component vector of float) -0:260 'inF0' (temp 4-component vector of float) +0:260 'inF0' (in 4-component vector of float) 0:261 floatBitsToInt (global 4-component vector of int) -0:261 'inF0' (temp 4-component vector of float) +0:261 'inF0' (in 4-component vector of float) 0:262 floatBitsToUint (global 4-component vector of uint) -0:262 'inF0' (temp 4-component vector of float) +0:262 'inF0' (in 4-component vector of float) 0:263 intBitsToFloat (global 4-component vector of float) -0:263 'inU0' (temp 4-component vector of uint) +0:263 'inU0' (in 4-component vector of uint) 0:265 arc tangent (global 4-component vector of float) -0:265 'inF0' (temp 4-component vector of float) +0:265 'inF0' (in 4-component vector of float) 0:266 arc tangent (global 4-component vector of float) -0:266 'inF0' (temp 4-component vector of float) -0:266 'inF1' (temp 4-component vector of float) +0:266 'inF0' (in 4-component vector of float) +0:266 'inF1' (in 4-component vector of float) 0:267 Ceiling (global 4-component vector of float) -0:267 'inF0' (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) 0:268 clamp (global 4-component vector of float) -0:268 'inF0' (temp 4-component vector of float) -0:268 'inF1' (temp 4-component vector of float) -0:268 'inF2' (temp 4-component vector of float) +0:268 'inF0' (in 4-component vector of float) +0:268 'inF1' (in 4-component vector of float) +0:268 'inF2' (in 4-component vector of float) 0:269 Test condition and select (temp void) 0:269 Condition 0:269 any (temp bool) 0:269 Compare Less Than (temp 4-component vector of bool) -0:269 'inF0' (temp 4-component vector of float) +0:269 'inF0' (in 4-component vector of float) 0:269 Constant: 0:269 0.000000 0:269 0.000000 @@ -609,9 +609,9 @@ gl_FragCoord origin is upper left 0:269 true case 0:269 Branch: Kill 0:270 cosine (global 4-component vector of float) -0:270 'inF0' (temp 4-component vector of float) +0:270 'inF0' (in 4-component vector of float) 0:271 hyp. cosine (global 4-component vector of float) -0:271 'inF0' (temp 4-component vector of float) +0:271 'inF0' (in 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) @@ -619,53 +619,53 @@ gl_FragCoord origin is upper left 0:? 5 (const uint) 0:? 2 (const uint) 0:273 dPdx (global 4-component vector of float) -0:273 'inF0' (temp 4-component vector of float) +0:273 'inF0' (in 4-component vector of float) 0:274 dPdxCoarse (global 4-component vector of float) -0:274 'inF0' (temp 4-component vector of float) +0:274 'inF0' (in 4-component vector of float) 0:275 dPdxFine (global 4-component vector of float) -0:275 'inF0' (temp 4-component vector of float) +0:275 'inF0' (in 4-component vector of float) 0:276 dPdy (global 4-component vector of float) -0:276 'inF0' (temp 4-component vector of float) +0:276 'inF0' (in 4-component vector of float) 0:277 dPdyCoarse (global 4-component vector of float) -0:277 'inF0' (temp 4-component vector of float) +0:277 'inF0' (in 4-component vector of float) 0:278 dPdyFine (global 4-component vector of float) -0:278 'inF0' (temp 4-component vector of float) +0:278 'inF0' (in 4-component vector of float) 0:279 degrees (global 4-component vector of float) -0:279 'inF0' (temp 4-component vector of float) +0:279 'inF0' (in 4-component vector of float) 0:280 distance (global float) -0:280 'inF0' (temp 4-component vector of float) -0:280 'inF1' (temp 4-component vector of float) +0:280 'inF0' (in 4-component vector of float) +0:280 'inF1' (in 4-component vector of float) 0:281 dot-product (global float) -0:281 'inF0' (temp 4-component vector of float) -0:281 'inF1' (temp 4-component vector of float) +0:281 'inF0' (in 4-component vector of float) +0:281 'inF1' (in 4-component vector of float) 0:282 Construct vec4 (temp float) 0:282 Constant: 0:282 1.000000 0:282 component-wise multiply (temp float) 0:282 direct index (temp float) -0:282 'inF0' (temp 4-component vector of float) +0:282 'inF0' (in 4-component vector of float) 0:282 Constant: 0:282 1 (const int) 0:282 direct index (temp float) -0:282 'inF1' (temp 4-component vector of float) +0:282 'inF1' (in 4-component vector of float) 0:282 Constant: 0:282 1 (const int) 0:282 direct index (temp float) -0:282 'inF0' (temp 4-component vector of float) +0:282 'inF0' (in 4-component vector of float) 0:282 Constant: 0:282 2 (const int) 0:282 direct index (temp float) -0:282 'inF1' (temp 4-component vector of float) +0:282 'inF1' (in 4-component vector of float) 0:282 Constant: 0:282 3 (const int) 0:286 exp (global 4-component vector of float) -0:286 'inF0' (temp 4-component vector of float) +0:286 'inF0' (in 4-component vector of float) 0:287 exp2 (global 4-component vector of float) -0:287 'inF0' (temp 4-component vector of float) +0:287 'inF0' (in 4-component vector of float) 0:288 face-forward (global 4-component vector of float) -0:288 'inF0' (temp 4-component vector of float) -0:288 'inF1' (temp 4-component vector of float) -0:288 'inF2' (temp 4-component vector of float) +0:288 'inF0' (in 4-component vector of float) +0:288 'inF1' (in 4-component vector of float) +0:288 'inF2' (in 4-component vector of float) 0:289 findMSB (global int) 0:289 Constant: 0:289 7 (const int) @@ -673,58 +673,58 @@ gl_FragCoord origin is upper left 0:290 Constant: 0:290 7 (const int) 0:291 Floor (global 4-component vector of float) -0:291 'inF0' (temp 4-component vector of float) +0:291 'inF0' (in 4-component vector of float) 0:293 mod (global 4-component vector of float) -0:293 'inF0' (temp 4-component vector of float) -0:293 'inF1' (temp 4-component vector of float) +0:293 'inF0' (in 4-component vector of float) +0:293 'inF1' (in 4-component vector of float) 0:294 Fraction (global 4-component vector of float) -0:294 'inF0' (temp 4-component vector of float) +0:294 'inF0' (in 4-component vector of float) 0:295 frexp (global 4-component vector of float) -0:295 'inF0' (temp 4-component vector of float) -0:295 'inF1' (temp 4-component vector of float) +0:295 'inF0' (in 4-component vector of float) +0:295 'inF1' (in 4-component vector of float) 0:296 fwidth (global 4-component vector of float) -0:296 'inF0' (temp 4-component vector of float) +0:296 'inF0' (in 4-component vector of float) 0:297 isinf (global 4-component vector of bool) -0:297 'inF0' (temp 4-component vector of float) +0:297 'inF0' (in 4-component vector of float) 0:298 isnan (global 4-component vector of bool) -0:298 'inF0' (temp 4-component vector of float) +0:298 'inF0' (in 4-component vector of float) 0:299 ldexp (global 4-component vector of float) -0:299 'inF0' (temp 4-component vector of float) -0:299 'inF1' (temp 4-component vector of float) +0:299 'inF0' (in 4-component vector of float) +0:299 'inF1' (in 4-component vector of float) 0:300 length (global float) -0:300 'inF0' (temp 4-component vector of float) +0:300 'inF0' (in 4-component vector of float) 0:301 log (global 4-component vector of float) -0:301 'inF0' (temp 4-component vector of float) +0:301 'inF0' (in 4-component vector of float) 0:302 vector-scale (temp 4-component vector of float) 0:302 log2 (temp 4-component vector of float) -0:302 'inF0' (temp 4-component vector of float) +0:302 'inF0' (in 4-component vector of float) 0:302 Constant: 0:302 0.301030 0:303 log2 (global 4-component vector of float) -0:303 'inF0' (temp 4-component vector of float) +0:303 'inF0' (in 4-component vector of float) 0:304 max (global 4-component vector of float) -0:304 'inF0' (temp 4-component vector of float) -0:304 'inF1' (temp 4-component vector of float) +0:304 'inF0' (in 4-component vector of float) +0:304 'inF1' (in 4-component vector of float) 0:305 min (global 4-component vector of float) -0:305 'inF0' (temp 4-component vector of float) -0:305 'inF1' (temp 4-component vector of float) +0:305 'inF0' (in 4-component vector of float) +0:305 'inF1' (in 4-component vector of float) 0:306 normalize (global 4-component vector of float) -0:306 'inF0' (temp 4-component vector of float) +0:306 'inF0' (in 4-component vector of float) 0:307 pow (global 4-component vector of float) -0:307 'inF0' (temp 4-component vector of float) -0:307 'inF1' (temp 4-component vector of float) +0:307 'inF0' (in 4-component vector of float) +0:307 'inF1' (in 4-component vector of float) 0:308 radians (global 4-component vector of float) -0:308 'inF0' (temp 4-component vector of float) +0:308 'inF0' (in 4-component vector of float) 0:309 divide (temp 4-component vector of float) 0:309 Constant: 0:309 1.000000 -0:309 'inF0' (temp 4-component vector of float) +0:309 'inF0' (in 4-component vector of float) 0:310 reflect (global 4-component vector of float) -0:310 'inF0' (temp 4-component vector of float) -0:310 'inF1' (temp 4-component vector of float) +0:310 'inF0' (in 4-component vector of float) +0:310 'inF1' (in 4-component vector of float) 0:311 refract (global 4-component vector of float) -0:311 'inF0' (temp 4-component vector of float) -0:311 'inF1' (temp 4-component vector of float) +0:311 'inF0' (in 4-component vector of float) +0:311 'inF1' (in 4-component vector of float) 0:311 Constant: 0:311 2.000000 0:? bitFieldReverse (global 4-component vector of uint) @@ -734,45 +734,45 @@ gl_FragCoord origin is upper left 0:? 3 (const uint) 0:? 4 (const uint) 0:313 roundEven (global 4-component vector of float) -0:313 'inF0' (temp 4-component vector of float) +0:313 'inF0' (in 4-component vector of float) 0:314 inverse sqrt (global 4-component vector of float) -0:314 'inF0' (temp 4-component vector of float) +0:314 'inF0' (in 4-component vector of float) 0:315 clamp (temp 4-component vector of float) -0:315 'inF0' (temp 4-component vector of float) +0:315 'inF0' (in 4-component vector of float) 0:315 Constant: 0:315 0.000000 0:315 Constant: 0:315 1.000000 0:316 Sign (global 4-component vector of float) -0:316 'inF0' (temp 4-component vector of float) +0:316 'inF0' (in 4-component vector of float) 0:317 sine (global 4-component vector of float) -0:317 'inF0' (temp 4-component vector of float) +0:317 'inF0' (in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) -0:318 'inF1' (temp 4-component vector of float) +0:318 'inF1' (in 4-component vector of float) 0:318 sine (temp 4-component vector of float) -0:318 'inF0' (temp 4-component vector of float) +0:318 'inF0' (in 4-component vector of float) 0:318 move second child to first child (temp 4-component vector of float) -0:318 'inF2' (temp 4-component vector of float) +0:318 'inF2' (in 4-component vector of float) 0:318 cosine (temp 4-component vector of float) -0:318 'inF0' (temp 4-component vector of float) +0:318 'inF0' (in 4-component vector of float) 0:319 hyp. sine (global 4-component vector of float) -0:319 'inF0' (temp 4-component vector of float) +0:319 'inF0' (in 4-component vector of float) 0:320 smoothstep (global 4-component vector of float) -0:320 'inF0' (temp 4-component vector of float) -0:320 'inF1' (temp 4-component vector of float) -0:320 'inF2' (temp 4-component vector of float) +0:320 'inF0' (in 4-component vector of float) +0:320 'inF1' (in 4-component vector of float) +0:320 'inF2' (in 4-component vector of float) 0:321 sqrt (global 4-component vector of float) -0:321 'inF0' (temp 4-component vector of float) +0:321 'inF0' (in 4-component vector of float) 0:322 step (global 4-component vector of float) -0:322 'inF0' (temp 4-component vector of float) -0:322 'inF1' (temp 4-component vector of float) +0:322 'inF0' (in 4-component vector of float) +0:322 'inF1' (in 4-component vector of float) 0:323 tangent (global 4-component vector of float) -0:323 'inF0' (temp 4-component vector of float) +0:323 'inF0' (in 4-component vector of float) 0:324 hyp. tangent (global 4-component vector of float) -0:324 'inF0' (temp 4-component vector of float) +0:324 'inF0' (in 4-component vector of float) 0:326 trunc (global 4-component vector of float) -0:326 'inF0' (temp 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) 0:329 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -781,32 +781,32 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:402 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:394 Function Parameters: -0:394 'inF0' (temp 2X2 matrix of float) -0:394 'inF1' (temp 2X2 matrix of float) -0:394 'inF2' (temp 2X2 matrix of float) +0:394 'inF0' (in 2X2 matrix of float) +0:394 'inF1' (in 2X2 matrix of float) +0:394 'inF2' (in 2X2 matrix of float) 0:? Sequence 0:396 all (global bool) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Absolute value (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 arc cosine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 any (global bool) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 arc sine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 arc tangent (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 arc tangent (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 Ceiling (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Test condition and select (temp void) 0:396 Condition 0:396 any (temp bool) 0:396 Compare Less Than (temp 2X2 matrix of bool) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Constant: 0:396 0.000000 0:396 0.000000 @@ -815,33 +815,33 @@ gl_FragCoord origin is upper left 0:396 true case 0:396 Branch: Kill 0:396 clamp (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) -0:396 'inF2' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) +0:396 'inF2' (in 2X2 matrix of float) 0:396 cosine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 hyp. cosine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdx (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdxCoarse (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdxFine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdy (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdyCoarse (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdyFine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 degrees (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 determinant (global float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 exp (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 exp2 (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 findMSB (global int) 0:396 Constant: 0:396 7 (const int) @@ -849,82 +849,82 @@ gl_FragCoord origin is upper left 0:396 Constant: 0:396 7 (const int) 0:396 Floor (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 mod (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 Fraction (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 frexp (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 fwidth (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 ldexp (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 log (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 matrix-scale (temp 2X2 matrix of float) 0:396 log2 (temp 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Constant: 0:396 0.301030 0:396 log2 (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 max (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 min (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 pow (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 radians (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 roundEven (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 inverse sqrt (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 clamp (temp 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Constant: 0:396 0.000000 0:396 Constant: 0:396 1.000000 0:396 Sign (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 sine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Sequence 0:396 move second child to first child (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 sine (temp 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 move second child to first child (temp 2X2 matrix of float) -0:396 'inF2' (temp 2X2 matrix of float) +0:396 'inF2' (in 2X2 matrix of float) 0:396 cosine (temp 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 hyp. sine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 smoothstep (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) -0:396 'inF2' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) +0:396 'inF2' (in 2X2 matrix of float) 0:396 sqrt (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 step (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 tangent (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 hyp. tangent (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 transpose (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 trunc (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:399 Branch: Return with expression 0:? Constant: 0:? 2.000000 @@ -933,32 +933,32 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:411 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:403 Function Parameters: -0:403 'inF0' (temp 3X3 matrix of float) -0:403 'inF1' (temp 3X3 matrix of float) -0:403 'inF2' (temp 3X3 matrix of float) +0:403 'inF0' (in 3X3 matrix of float) +0:403 'inF1' (in 3X3 matrix of float) +0:403 'inF2' (in 3X3 matrix of float) 0:? Sequence 0:405 all (global bool) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Absolute value (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 arc cosine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 any (global bool) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 arc sine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 arc tangent (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 arc tangent (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 Ceiling (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Test condition and select (temp void) 0:405 Condition 0:405 any (temp bool) 0:405 Compare Less Than (temp 3X3 matrix of bool) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Constant: 0:405 0.000000 0:405 0.000000 @@ -972,33 +972,33 @@ gl_FragCoord origin is upper left 0:405 true case 0:405 Branch: Kill 0:405 clamp (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) -0:405 'inF2' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) +0:405 'inF2' (in 3X3 matrix of float) 0:405 cosine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 hyp. cosine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdx (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdxCoarse (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdxFine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdy (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdyCoarse (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdyFine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 degrees (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 determinant (global float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 exp (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 exp2 (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 findMSB (global int) 0:405 Constant: 0:405 7 (const int) @@ -1006,82 +1006,82 @@ gl_FragCoord origin is upper left 0:405 Constant: 0:405 7 (const int) 0:405 Floor (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 mod (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 Fraction (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 frexp (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 fwidth (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 ldexp (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 log (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 matrix-scale (temp 3X3 matrix of float) 0:405 log2 (temp 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Constant: 0:405 0.301030 0:405 log2 (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 max (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 min (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 pow (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 radians (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 roundEven (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 inverse sqrt (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 clamp (temp 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Constant: 0:405 0.000000 0:405 Constant: 0:405 1.000000 0:405 Sign (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 sine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Sequence 0:405 move second child to first child (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 sine (temp 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 move second child to first child (temp 3X3 matrix of float) -0:405 'inF2' (temp 3X3 matrix of float) +0:405 'inF2' (in 3X3 matrix of float) 0:405 cosine (temp 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 hyp. sine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 smoothstep (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) -0:405 'inF2' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) +0:405 'inF2' (in 3X3 matrix of float) 0:405 sqrt (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 step (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 tangent (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 hyp. tangent (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 transpose (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 trunc (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:408 Branch: Return with expression 0:? Constant: 0:? 3.000000 @@ -1095,32 +1095,32 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:432 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:412 Function Parameters: -0:412 'inF0' (temp 4X4 matrix of float) -0:412 'inF1' (temp 4X4 matrix of float) -0:412 'inF2' (temp 4X4 matrix of float) +0:412 'inF0' (in 4X4 matrix of float) +0:412 'inF1' (in 4X4 matrix of float) +0:412 'inF2' (in 4X4 matrix of float) 0:? Sequence 0:414 all (global bool) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Absolute value (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 arc cosine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 any (global bool) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 arc sine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 arc tangent (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 arc tangent (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 Ceiling (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Test condition and select (temp void) 0:414 Condition 0:414 any (temp bool) 0:414 Compare Less Than (temp 4X4 matrix of bool) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Constant: 0:414 0.000000 0:414 0.000000 @@ -1141,33 +1141,33 @@ gl_FragCoord origin is upper left 0:414 true case 0:414 Branch: Kill 0:414 clamp (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) -0:414 'inF2' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) +0:414 'inF2' (in 4X4 matrix of float) 0:414 cosine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 hyp. cosine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdx (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdxCoarse (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdxFine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdy (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdyCoarse (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdyFine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 degrees (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 determinant (global float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 exp (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 exp2 (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 findMSB (global int) 0:414 Constant: 0:414 7 (const int) @@ -1175,82 +1175,82 @@ gl_FragCoord origin is upper left 0:414 Constant: 0:414 7 (const int) 0:414 Floor (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 mod (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 Fraction (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 frexp (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 fwidth (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 ldexp (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 log (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 matrix-scale (temp 4X4 matrix of float) 0:414 log2 (temp 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Constant: 0:414 0.301030 0:414 log2 (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 max (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 min (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 pow (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 radians (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 roundEven (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 inverse sqrt (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 clamp (temp 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Constant: 0:414 0.000000 0:414 Constant: 0:414 1.000000 0:414 Sign (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 sine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Sequence 0:414 move second child to first child (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 sine (temp 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 move second child to first child (temp 4X4 matrix of float) -0:414 'inF2' (temp 4X4 matrix of float) +0:414 'inF2' (in 4X4 matrix of float) 0:414 cosine (temp 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 hyp. sine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 smoothstep (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) -0:414 'inF2' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) +0:414 'inF2' (in 4X4 matrix of float) 0:414 sqrt (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 step (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 tangent (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 hyp. tangent (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 transpose (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 trunc (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:417 Branch: Return with expression 0:? Constant: 0:? 4.000000 @@ -1271,166 +1271,166 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:439 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:435 Function Parameters: -0:435 'inF0' (temp float) -0:435 'inF1' (temp float) -0:435 'inFV0' (temp 2-component vector of float) -0:435 'inFV1' (temp 2-component vector of float) -0:435 'inFM0' (temp 2X2 matrix of float) -0:435 'inFM1' (temp 2X2 matrix of float) +0:435 'inF0' (in float) +0:435 'inF1' (in float) +0:435 'inFV0' (in 2-component vector of float) +0:435 'inFV1' (in 2-component vector of float) +0:435 'inFM0' (in 2X2 matrix of float) +0:435 'inFM1' (in 2X2 matrix of float) 0:? Sequence 0:436 move second child to first child (temp float) 0:436 'r0' (temp float) 0:436 component-wise multiply (temp float) -0:436 'inF0' (temp float) -0:436 'inF1' (temp float) +0:436 'inF0' (in float) +0:436 'inF1' (in float) 0:436 move second child to first child (temp 2-component vector of float) 0:436 'r1' (temp 2-component vector of float) 0:436 vector-scale (temp 2-component vector of float) -0:436 'inFV0' (temp 2-component vector of float) -0:436 'inF0' (temp float) +0:436 'inFV0' (in 2-component vector of float) +0:436 'inF0' (in float) 0:436 move second child to first child (temp 2-component vector of float) 0:436 'r2' (temp 2-component vector of float) 0:436 vector-scale (temp 2-component vector of float) -0:436 'inF0' (temp float) -0:436 'inFV0' (temp 2-component vector of float) +0:436 'inF0' (in float) +0:436 'inFV0' (in 2-component vector of float) 0:436 move second child to first child (temp float) 0:436 'r3' (temp float) 0:436 dot-product (global float) -0:436 'inFV0' (temp 2-component vector of float) -0:436 'inFV1' (temp 2-component vector of float) +0:436 'inFV0' (in 2-component vector of float) +0:436 'inFV1' (in 2-component vector of float) 0:436 move second child to first child (temp 2-component vector of float) 0:436 'r4' (temp 2-component vector of float) 0:436 matrix-times-vector (temp 2-component vector of float) -0:436 'inFM0' (temp 2X2 matrix of float) -0:436 'inFV0' (temp 2-component vector of float) +0:436 'inFM0' (in 2X2 matrix of float) +0:436 'inFV0' (in 2-component vector of float) 0:436 move second child to first child (temp 2-component vector of float) 0:436 'r5' (temp 2-component vector of float) 0:436 vector-times-matrix (temp 2-component vector of float) -0:436 'inFV0' (temp 2-component vector of float) -0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inFV0' (in 2-component vector of float) +0:436 'inFM0' (in 2X2 matrix of float) 0:436 move second child to first child (temp 2X2 matrix of float) 0:436 'r6' (temp 2X2 matrix of float) 0:436 matrix-scale (temp 2X2 matrix of float) -0:436 'inFM0' (temp 2X2 matrix of float) -0:436 'inF0' (temp float) +0:436 'inFM0' (in 2X2 matrix of float) +0:436 'inF0' (in float) 0:436 move second child to first child (temp 2X2 matrix of float) 0:436 'r7' (temp 2X2 matrix of float) 0:436 matrix-scale (temp 2X2 matrix of float) -0:436 'inF0' (temp float) -0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inF0' (in float) +0:436 'inFM0' (in 2X2 matrix of float) 0:436 move second child to first child (temp 2X2 matrix of float) 0:436 'r8' (temp 2X2 matrix of float) 0:436 matrix-multiply (temp 2X2 matrix of float) -0:436 'inFM0' (temp 2X2 matrix of float) -0:436 'inFM1' (temp 2X2 matrix of float) +0:436 'inFM0' (in 2X2 matrix of float) +0:436 'inFM1' (in 2X2 matrix of float) 0:446 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:442 Function Parameters: -0:442 'inF0' (temp float) -0:442 'inF1' (temp float) -0:442 'inFV0' (temp 3-component vector of float) -0:442 'inFV1' (temp 3-component vector of float) -0:442 'inFM0' (temp 3X3 matrix of float) -0:442 'inFM1' (temp 3X3 matrix of float) +0:442 'inF0' (in float) +0:442 'inF1' (in float) +0:442 'inFV0' (in 3-component vector of float) +0:442 'inFV1' (in 3-component vector of float) +0:442 'inFM0' (in 3X3 matrix of float) +0:442 'inFM1' (in 3X3 matrix of float) 0:? Sequence 0:443 move second child to first child (temp float) 0:443 'r0' (temp float) 0:443 component-wise multiply (temp float) -0:443 'inF0' (temp float) -0:443 'inF1' (temp float) +0:443 'inF0' (in float) +0:443 'inF1' (in float) 0:443 move second child to first child (temp 3-component vector of float) 0:443 'r1' (temp 3-component vector of float) 0:443 vector-scale (temp 3-component vector of float) -0:443 'inFV0' (temp 3-component vector of float) -0:443 'inF0' (temp float) +0:443 'inFV0' (in 3-component vector of float) +0:443 'inF0' (in float) 0:443 move second child to first child (temp 3-component vector of float) 0:443 'r2' (temp 3-component vector of float) 0:443 vector-scale (temp 3-component vector of float) -0:443 'inF0' (temp float) -0:443 'inFV0' (temp 3-component vector of float) +0:443 'inF0' (in float) +0:443 'inFV0' (in 3-component vector of float) 0:443 move second child to first child (temp float) 0:443 'r3' (temp float) 0:443 dot-product (global float) -0:443 'inFV0' (temp 3-component vector of float) -0:443 'inFV1' (temp 3-component vector of float) +0:443 'inFV0' (in 3-component vector of float) +0:443 'inFV1' (in 3-component vector of float) 0:443 move second child to first child (temp 3-component vector of float) 0:443 'r4' (temp 3-component vector of float) 0:443 matrix-times-vector (temp 3-component vector of float) -0:443 'inFM0' (temp 3X3 matrix of float) -0:443 'inFV0' (temp 3-component vector of float) +0:443 'inFM0' (in 3X3 matrix of float) +0:443 'inFV0' (in 3-component vector of float) 0:443 move second child to first child (temp 3-component vector of float) 0:443 'r5' (temp 3-component vector of float) 0:443 vector-times-matrix (temp 3-component vector of float) -0:443 'inFV0' (temp 3-component vector of float) -0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inFV0' (in 3-component vector of float) +0:443 'inFM0' (in 3X3 matrix of float) 0:443 move second child to first child (temp 3X3 matrix of float) 0:443 'r6' (temp 3X3 matrix of float) 0:443 matrix-scale (temp 3X3 matrix of float) -0:443 'inFM0' (temp 3X3 matrix of float) -0:443 'inF0' (temp float) +0:443 'inFM0' (in 3X3 matrix of float) +0:443 'inF0' (in float) 0:443 move second child to first child (temp 3X3 matrix of float) 0:443 'r7' (temp 3X3 matrix of float) 0:443 matrix-scale (temp 3X3 matrix of float) -0:443 'inF0' (temp float) -0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inF0' (in float) +0:443 'inFM0' (in 3X3 matrix of float) 0:443 move second child to first child (temp 3X3 matrix of float) 0:443 'r8' (temp 3X3 matrix of float) 0:443 matrix-multiply (temp 3X3 matrix of float) -0:443 'inFM0' (temp 3X3 matrix of float) -0:443 'inFM1' (temp 3X3 matrix of float) +0:443 'inFM0' (in 3X3 matrix of float) +0:443 'inFM1' (in 3X3 matrix of float) 0:452 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:449 Function Parameters: -0:449 'inF0' (temp float) -0:449 'inF1' (temp float) -0:449 'inFV0' (temp 4-component vector of float) -0:449 'inFV1' (temp 4-component vector of float) -0:449 'inFM0' (temp 4X4 matrix of float) -0:449 'inFM1' (temp 4X4 matrix of float) +0:449 'inF0' (in float) +0:449 'inF1' (in float) +0:449 'inFV0' (in 4-component vector of float) +0:449 'inFV1' (in 4-component vector of float) +0:449 'inFM0' (in 4X4 matrix of float) +0:449 'inFM1' (in 4X4 matrix of float) 0:? Sequence 0:450 move second child to first child (temp float) 0:450 'r0' (temp float) 0:450 component-wise multiply (temp float) -0:450 'inF0' (temp float) -0:450 'inF1' (temp float) +0:450 'inF0' (in float) +0:450 'inF1' (in float) 0:450 move second child to first child (temp 4-component vector of float) 0:450 'r1' (temp 4-component vector of float) 0:450 vector-scale (temp 4-component vector of float) -0:450 'inFV0' (temp 4-component vector of float) -0:450 'inF0' (temp float) +0:450 'inFV0' (in 4-component vector of float) +0:450 'inF0' (in float) 0:450 move second child to first child (temp 4-component vector of float) 0:450 'r2' (temp 4-component vector of float) 0:450 vector-scale (temp 4-component vector of float) -0:450 'inF0' (temp float) -0:450 'inFV0' (temp 4-component vector of float) +0:450 'inF0' (in float) +0:450 'inFV0' (in 4-component vector of float) 0:450 move second child to first child (temp float) 0:450 'r3' (temp float) 0:450 dot-product (global float) -0:450 'inFV0' (temp 4-component vector of float) -0:450 'inFV1' (temp 4-component vector of float) +0:450 'inFV0' (in 4-component vector of float) +0:450 'inFV1' (in 4-component vector of float) 0:450 move second child to first child (temp 4-component vector of float) 0:450 'r4' (temp 4-component vector of float) 0:450 matrix-times-vector (temp 4-component vector of float) -0:450 'inFM0' (temp 4X4 matrix of float) -0:450 'inFV0' (temp 4-component vector of float) +0:450 'inFM0' (in 4X4 matrix of float) +0:450 'inFV0' (in 4-component vector of float) 0:450 move second child to first child (temp 4-component vector of float) 0:450 'r5' (temp 4-component vector of float) 0:450 vector-times-matrix (temp 4-component vector of float) -0:450 'inFV0' (temp 4-component vector of float) -0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inFV0' (in 4-component vector of float) +0:450 'inFM0' (in 4X4 matrix of float) 0:450 move second child to first child (temp 4X4 matrix of float) 0:450 'r6' (temp 4X4 matrix of float) 0:450 matrix-scale (temp 4X4 matrix of float) -0:450 'inFM0' (temp 4X4 matrix of float) -0:450 'inF0' (temp float) +0:450 'inFM0' (in 4X4 matrix of float) +0:450 'inF0' (in float) 0:450 move second child to first child (temp 4X4 matrix of float) 0:450 'r7' (temp 4X4 matrix of float) 0:450 matrix-scale (temp 4X4 matrix of float) -0:450 'inF0' (temp float) -0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inF0' (in float) +0:450 'inFM0' (in 4X4 matrix of float) 0:450 move second child to first child (temp 4X4 matrix of float) 0:450 'r8' (temp 4X4 matrix of float) 0:450 matrix-multiply (temp 4X4 matrix of float) -0:450 'inFM0' (temp 4X4 matrix of float) -0:450 'inFM1' (temp 4X4 matrix of float) +0:450 'inFM0' (in 4X4 matrix of float) +0:450 'inFM1' (in 4X4 matrix of float) 0:? Linker Objects 0:? 'gs_ua' (temp uint) 0:? 'gs_ub' (temp uint) @@ -1454,72 +1454,72 @@ gl_FragCoord origin is upper left 0:? Sequence 0:87 Function Definition: PixelShaderFunction(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: -0:17 'inF0' (temp float) -0:17 'inF1' (temp float) -0:17 'inF2' (temp float) -0:17 'inU0' (temp uint) -0:17 'inU1' (temp uint) +0:17 'inF0' (in float) +0:17 'inF1' (in float) +0:17 'inF2' (in float) +0:17 'inU0' (in uint) +0:17 'inU1' (in uint) 0:? Sequence 0:20 all (global bool) -0:20 'inF0' (temp float) +0:20 'inF0' (in float) 0:21 Absolute value (global float) -0:21 'inF0' (temp float) +0:21 'inF0' (in float) 0:22 arc cosine (global float) -0:22 'inF0' (temp float) +0:22 'inF0' (in float) 0:23 any (global bool) -0:23 'inF0' (temp float) +0:23 'inF0' (in float) 0:24 arc sine (global float) -0:24 'inF0' (temp float) +0:24 'inF0' (in float) 0:25 floatBitsToInt (global int) -0:25 'inF0' (temp float) +0:25 'inF0' (in float) 0:26 floatBitsToUint (global uint) -0:26 'inF0' (temp float) +0:26 'inF0' (in float) 0:27 intBitsToFloat (global float) -0:27 'inU0' (temp uint) +0:27 'inU0' (in uint) 0:29 arc tangent (global float) -0:29 'inF0' (temp float) +0:29 'inF0' (in float) 0:30 arc tangent (global float) -0:30 'inF0' (temp float) -0:30 'inF1' (temp float) +0:30 'inF0' (in float) +0:30 'inF1' (in float) 0:31 Ceiling (global float) -0:31 'inF0' (temp float) +0:31 'inF0' (in float) 0:32 clamp (global float) -0:32 'inF0' (temp float) -0:32 'inF1' (temp float) -0:32 'inF2' (temp float) +0:32 'inF0' (in float) +0:32 'inF1' (in float) +0:32 'inF2' (in float) 0:33 Test condition and select (temp void) 0:33 Condition 0:33 Compare Less Than (temp bool) -0:33 'inF0' (temp float) +0:33 'inF0' (in float) 0:33 Constant: 0:33 0.000000 0:33 true case 0:33 Branch: Kill 0:34 cosine (global float) -0:34 'inF0' (temp float) +0:34 'inF0' (in float) 0:35 hyp. cosine (global float) -0:35 'inF0' (temp float) +0:35 'inF0' (in float) 0:36 bitCount (global uint) 0:36 Constant: 0:36 7 (const uint) 0:37 dPdx (global float) -0:37 'inF0' (temp float) +0:37 'inF0' (in float) 0:38 dPdxCoarse (global float) -0:38 'inF0' (temp float) +0:38 'inF0' (in float) 0:39 dPdxFine (global float) -0:39 'inF0' (temp float) +0:39 'inF0' (in float) 0:40 dPdy (global float) -0:40 'inF0' (temp float) +0:40 'inF0' (in float) 0:41 dPdyCoarse (global float) -0:41 'inF0' (temp float) +0:41 'inF0' (in float) 0:42 dPdyFine (global float) -0:42 'inF0' (temp float) +0:42 'inF0' (in float) 0:43 degrees (global float) -0:43 'inF0' (temp float) +0:43 'inF0' (in float) 0:47 exp (global float) -0:47 'inF0' (temp float) +0:47 'inF0' (in float) 0:48 exp2 (global float) -0:48 'inF0' (temp float) +0:48 'inF0' (in float) 0:49 findMSB (global int) 0:49 Constant: 0:49 7 (const int) @@ -1527,184 +1527,184 @@ gl_FragCoord origin is upper left 0:50 Constant: 0:50 7 (const int) 0:51 Floor (global float) -0:51 'inF0' (temp float) +0:51 'inF0' (in float) 0:53 mod (global float) -0:53 'inF0' (temp float) -0:53 'inF1' (temp float) +0:53 'inF0' (in float) +0:53 'inF1' (in float) 0:54 Fraction (global float) -0:54 'inF0' (temp float) +0:54 'inF0' (in float) 0:55 frexp (global float) -0:55 'inF0' (temp float) -0:55 'inF1' (temp float) +0:55 'inF0' (in float) +0:55 'inF1' (in float) 0:56 fwidth (global float) -0:56 'inF0' (temp float) +0:56 'inF0' (in float) 0:57 isinf (global bool) -0:57 'inF0' (temp float) +0:57 'inF0' (in float) 0:58 isnan (global bool) -0:58 'inF0' (temp float) +0:58 'inF0' (in float) 0:59 ldexp (global float) -0:59 'inF0' (temp float) -0:59 'inF1' (temp float) +0:59 'inF0' (in float) +0:59 'inF1' (in float) 0:60 log (global float) -0:60 'inF0' (temp float) +0:60 'inF0' (in float) 0:61 component-wise multiply (temp float) 0:61 log2 (temp float) -0:61 'inF0' (temp float) +0:61 'inF0' (in float) 0:61 Constant: 0:61 0.301030 0:62 log2 (global float) -0:62 'inF0' (temp float) +0:62 'inF0' (in float) 0:63 max (global float) -0:63 'inF0' (temp float) -0:63 'inF1' (temp float) +0:63 'inF0' (in float) +0:63 'inF1' (in float) 0:64 min (global float) -0:64 'inF0' (temp float) -0:64 'inF1' (temp float) +0:64 'inF0' (in float) +0:64 'inF1' (in float) 0:65 pow (global float) -0:65 'inF0' (temp float) -0:65 'inF1' (temp float) +0:65 'inF0' (in float) +0:65 'inF1' (in float) 0:66 radians (global float) -0:66 'inF0' (temp float) +0:66 'inF0' (in float) 0:67 divide (temp float) 0:67 Constant: 0:67 1.000000 -0:67 'inF0' (temp float) +0:67 'inF0' (in float) 0:68 bitFieldReverse (global uint) 0:68 Constant: 0:68 2 (const uint) 0:69 roundEven (global float) -0:69 'inF0' (temp float) +0:69 'inF0' (in float) 0:70 inverse sqrt (global float) -0:70 'inF0' (temp float) +0:70 'inF0' (in float) 0:71 clamp (temp float) -0:71 'inF0' (temp float) +0:71 'inF0' (in float) 0:71 Constant: 0:71 0.000000 0:71 Constant: 0:71 1.000000 0:72 Sign (global float) -0:72 'inF0' (temp float) +0:72 'inF0' (in float) 0:73 sine (global float) -0:73 'inF0' (temp float) +0:73 'inF0' (in float) 0:74 Sequence 0:74 move second child to first child (temp float) -0:74 'inF1' (temp float) +0:74 'inF1' (in float) 0:74 sine (temp float) -0:74 'inF0' (temp float) +0:74 'inF0' (in float) 0:74 move second child to first child (temp float) -0:74 'inF2' (temp float) +0:74 'inF2' (in float) 0:74 cosine (temp float) -0:74 'inF0' (temp float) +0:74 'inF0' (in float) 0:75 hyp. sine (global float) -0:75 'inF0' (temp float) +0:75 'inF0' (in float) 0:76 smoothstep (global float) -0:76 'inF0' (temp float) -0:76 'inF1' (temp float) -0:76 'inF2' (temp float) +0:76 'inF0' (in float) +0:76 'inF1' (in float) +0:76 'inF2' (in float) 0:77 sqrt (global float) -0:77 'inF0' (temp float) +0:77 'inF0' (in float) 0:78 step (global float) -0:78 'inF0' (temp float) -0:78 'inF1' (temp float) +0:78 'inF0' (in float) +0:78 'inF1' (in float) 0:79 tangent (global float) -0:79 'inF0' (temp float) +0:79 'inF0' (in float) 0:80 hyp. tangent (global float) -0:80 'inF0' (temp float) +0:80 'inF0' (in float) 0:82 trunc (global float) -0:82 'inF0' (temp float) +0:82 'inF0' (in float) 0:84 Branch: Return with expression 0:84 Constant: 0:84 0.000000 0:93 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) 0:88 Function Parameters: -0:88 'inF0' (temp 1-component vector of float) -0:88 'inF1' (temp 1-component vector of float) -0:88 'inF2' (temp 1-component vector of float) +0:88 'inF0' (in 1-component vector of float) +0:88 'inF1' (in 1-component vector of float) +0:88 'inF2' (in 1-component vector of float) 0:? Sequence 0:90 Branch: Return with expression 0:90 Constant: 0:90 0.000000 0:172 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:94 Function Parameters: -0:94 'inF0' (temp 2-component vector of float) -0:94 'inF1' (temp 2-component vector of float) -0:94 'inF2' (temp 2-component vector of float) -0:94 'inU0' (temp 2-component vector of uint) -0:94 'inU1' (temp 2-component vector of uint) +0:94 'inF0' (in 2-component vector of float) +0:94 'inF1' (in 2-component vector of float) +0:94 'inF2' (in 2-component vector of float) +0:94 'inU0' (in 2-component vector of uint) +0:94 'inU1' (in 2-component vector of uint) 0:? Sequence 0:97 all (global bool) -0:97 'inF0' (temp 2-component vector of float) +0:97 'inF0' (in 2-component vector of float) 0:98 Absolute value (global 2-component vector of float) -0:98 'inF0' (temp 2-component vector of float) +0:98 'inF0' (in 2-component vector of float) 0:99 arc cosine (global 2-component vector of float) -0:99 'inF0' (temp 2-component vector of float) +0:99 'inF0' (in 2-component vector of float) 0:100 any (global bool) -0:100 'inF0' (temp 2-component vector of float) +0:100 'inF0' (in 2-component vector of float) 0:101 arc sine (global 2-component vector of float) -0:101 'inF0' (temp 2-component vector of float) +0:101 'inF0' (in 2-component vector of float) 0:102 floatBitsToInt (global 2-component vector of int) -0:102 'inF0' (temp 2-component vector of float) +0:102 'inF0' (in 2-component vector of float) 0:103 floatBitsToUint (global 2-component vector of uint) -0:103 'inF0' (temp 2-component vector of float) +0:103 'inF0' (in 2-component vector of float) 0:104 intBitsToFloat (global 2-component vector of float) -0:104 'inU0' (temp 2-component vector of uint) +0:104 'inU0' (in 2-component vector of uint) 0:106 arc tangent (global 2-component vector of float) -0:106 'inF0' (temp 2-component vector of float) +0:106 'inF0' (in 2-component vector of float) 0:107 arc tangent (global 2-component vector of float) -0:107 'inF0' (temp 2-component vector of float) -0:107 'inF1' (temp 2-component vector of float) +0:107 'inF0' (in 2-component vector of float) +0:107 'inF1' (in 2-component vector of float) 0:108 Ceiling (global 2-component vector of float) -0:108 'inF0' (temp 2-component vector of float) +0:108 'inF0' (in 2-component vector of float) 0:109 clamp (global 2-component vector of float) -0:109 'inF0' (temp 2-component vector of float) -0:109 'inF1' (temp 2-component vector of float) -0:109 'inF2' (temp 2-component vector of float) +0:109 'inF0' (in 2-component vector of float) +0:109 'inF1' (in 2-component vector of float) +0:109 'inF2' (in 2-component vector of float) 0:110 Test condition and select (temp void) 0:110 Condition 0:110 any (temp bool) 0:110 Compare Less Than (temp 2-component vector of bool) -0:110 'inF0' (temp 2-component vector of float) +0:110 'inF0' (in 2-component vector of float) 0:110 Constant: 0:110 0.000000 0:110 0.000000 0:110 true case 0:110 Branch: Kill 0:111 cosine (global 2-component vector of float) -0:111 'inF0' (temp 2-component vector of float) +0:111 'inF0' (in 2-component vector of float) 0:112 hyp. cosine (global 2-component vector of float) -0:112 'inF0' (temp 2-component vector of float) +0:112 'inF0' (in 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:114 dPdx (global 2-component vector of float) -0:114 'inF0' (temp 2-component vector of float) +0:114 'inF0' (in 2-component vector of float) 0:115 dPdxCoarse (global 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) +0:115 'inF0' (in 2-component vector of float) 0:116 dPdxFine (global 2-component vector of float) -0:116 'inF0' (temp 2-component vector of float) +0:116 'inF0' (in 2-component vector of float) 0:117 dPdy (global 2-component vector of float) -0:117 'inF0' (temp 2-component vector of float) +0:117 'inF0' (in 2-component vector of float) 0:118 dPdyCoarse (global 2-component vector of float) -0:118 'inF0' (temp 2-component vector of float) +0:118 'inF0' (in 2-component vector of float) 0:119 dPdyFine (global 2-component vector of float) -0:119 'inF0' (temp 2-component vector of float) +0:119 'inF0' (in 2-component vector of float) 0:120 degrees (global 2-component vector of float) -0:120 'inF0' (temp 2-component vector of float) +0:120 'inF0' (in 2-component vector of float) 0:121 distance (global float) -0:121 'inF0' (temp 2-component vector of float) -0:121 'inF1' (temp 2-component vector of float) +0:121 'inF0' (in 2-component vector of float) +0:121 'inF1' (in 2-component vector of float) 0:122 dot-product (global float) -0:122 'inF0' (temp 2-component vector of float) -0:122 'inF1' (temp 2-component vector of float) +0:122 'inF0' (in 2-component vector of float) +0:122 'inF1' (in 2-component vector of float) 0:126 exp (global 2-component vector of float) -0:126 'inF0' (temp 2-component vector of float) +0:126 'inF0' (in 2-component vector of float) 0:127 exp2 (global 2-component vector of float) -0:127 'inF0' (temp 2-component vector of float) +0:127 'inF0' (in 2-component vector of float) 0:128 face-forward (global 2-component vector of float) -0:128 'inF0' (temp 2-component vector of float) -0:128 'inF1' (temp 2-component vector of float) -0:128 'inF2' (temp 2-component vector of float) +0:128 'inF0' (in 2-component vector of float) +0:128 'inF1' (in 2-component vector of float) +0:128 'inF2' (in 2-component vector of float) 0:129 findMSB (global int) 0:129 Constant: 0:129 7 (const int) @@ -1712,58 +1712,58 @@ gl_FragCoord origin is upper left 0:130 Constant: 0:130 7 (const int) 0:131 Floor (global 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) +0:131 'inF0' (in 2-component vector of float) 0:133 mod (global 2-component vector of float) -0:133 'inF0' (temp 2-component vector of float) -0:133 'inF1' (temp 2-component vector of float) +0:133 'inF0' (in 2-component vector of float) +0:133 'inF1' (in 2-component vector of float) 0:134 Fraction (global 2-component vector of float) -0:134 'inF0' (temp 2-component vector of float) +0:134 'inF0' (in 2-component vector of float) 0:135 frexp (global 2-component vector of float) -0:135 'inF0' (temp 2-component vector of float) -0:135 'inF1' (temp 2-component vector of float) +0:135 'inF0' (in 2-component vector of float) +0:135 'inF1' (in 2-component vector of float) 0:136 fwidth (global 2-component vector of float) -0:136 'inF0' (temp 2-component vector of float) +0:136 'inF0' (in 2-component vector of float) 0:137 isinf (global 2-component vector of bool) -0:137 'inF0' (temp 2-component vector of float) +0:137 'inF0' (in 2-component vector of float) 0:138 isnan (global 2-component vector of bool) -0:138 'inF0' (temp 2-component vector of float) +0:138 'inF0' (in 2-component vector of float) 0:139 ldexp (global 2-component vector of float) -0:139 'inF0' (temp 2-component vector of float) -0:139 'inF1' (temp 2-component vector of float) +0:139 'inF0' (in 2-component vector of float) +0:139 'inF1' (in 2-component vector of float) 0:140 length (global float) -0:140 'inF0' (temp 2-component vector of float) +0:140 'inF0' (in 2-component vector of float) 0:141 log (global 2-component vector of float) -0:141 'inF0' (temp 2-component vector of float) +0:141 'inF0' (in 2-component vector of float) 0:142 vector-scale (temp 2-component vector of float) 0:142 log2 (temp 2-component vector of float) -0:142 'inF0' (temp 2-component vector of float) +0:142 'inF0' (in 2-component vector of float) 0:142 Constant: 0:142 0.301030 0:143 log2 (global 2-component vector of float) -0:143 'inF0' (temp 2-component vector of float) +0:143 'inF0' (in 2-component vector of float) 0:144 max (global 2-component vector of float) -0:144 'inF0' (temp 2-component vector of float) -0:144 'inF1' (temp 2-component vector of float) +0:144 'inF0' (in 2-component vector of float) +0:144 'inF1' (in 2-component vector of float) 0:145 min (global 2-component vector of float) -0:145 'inF0' (temp 2-component vector of float) -0:145 'inF1' (temp 2-component vector of float) +0:145 'inF0' (in 2-component vector of float) +0:145 'inF1' (in 2-component vector of float) 0:146 normalize (global 2-component vector of float) -0:146 'inF0' (temp 2-component vector of float) +0:146 'inF0' (in 2-component vector of float) 0:147 pow (global 2-component vector of float) -0:147 'inF0' (temp 2-component vector of float) -0:147 'inF1' (temp 2-component vector of float) +0:147 'inF0' (in 2-component vector of float) +0:147 'inF1' (in 2-component vector of float) 0:148 radians (global 2-component vector of float) -0:148 'inF0' (temp 2-component vector of float) +0:148 'inF0' (in 2-component vector of float) 0:149 divide (temp 2-component vector of float) 0:149 Constant: 0:149 1.000000 -0:149 'inF0' (temp 2-component vector of float) +0:149 'inF0' (in 2-component vector of float) 0:150 reflect (global 2-component vector of float) -0:150 'inF0' (temp 2-component vector of float) -0:150 'inF1' (temp 2-component vector of float) +0:150 'inF0' (in 2-component vector of float) +0:150 'inF1' (in 2-component vector of float) 0:151 refract (global 2-component vector of float) -0:151 'inF0' (temp 2-component vector of float) -0:151 'inF1' (temp 2-component vector of float) +0:151 'inF0' (in 2-component vector of float) +0:151 'inF1' (in 2-component vector of float) 0:151 Constant: 0:151 2.000000 0:? bitFieldReverse (global 2-component vector of uint) @@ -1771,89 +1771,89 @@ gl_FragCoord origin is upper left 0:? 1 (const uint) 0:? 2 (const uint) 0:153 roundEven (global 2-component vector of float) -0:153 'inF0' (temp 2-component vector of float) +0:153 'inF0' (in 2-component vector of float) 0:154 inverse sqrt (global 2-component vector of float) -0:154 'inF0' (temp 2-component vector of float) +0:154 'inF0' (in 2-component vector of float) 0:155 clamp (temp 2-component vector of float) -0:155 'inF0' (temp 2-component vector of float) +0:155 'inF0' (in 2-component vector of float) 0:155 Constant: 0:155 0.000000 0:155 Constant: 0:155 1.000000 0:156 Sign (global 2-component vector of float) -0:156 'inF0' (temp 2-component vector of float) +0:156 'inF0' (in 2-component vector of float) 0:157 sine (global 2-component vector of float) -0:157 'inF0' (temp 2-component vector of float) +0:157 'inF0' (in 2-component vector of float) 0:158 Sequence 0:158 move second child to first child (temp 2-component vector of float) -0:158 'inF1' (temp 2-component vector of float) +0:158 'inF1' (in 2-component vector of float) 0:158 sine (temp 2-component vector of float) -0:158 'inF0' (temp 2-component vector of float) +0:158 'inF0' (in 2-component vector of float) 0:158 move second child to first child (temp 2-component vector of float) -0:158 'inF2' (temp 2-component vector of float) +0:158 'inF2' (in 2-component vector of float) 0:158 cosine (temp 2-component vector of float) -0:158 'inF0' (temp 2-component vector of float) +0:158 'inF0' (in 2-component vector of float) 0:159 hyp. sine (global 2-component vector of float) -0:159 'inF0' (temp 2-component vector of float) +0:159 'inF0' (in 2-component vector of float) 0:160 smoothstep (global 2-component vector of float) -0:160 'inF0' (temp 2-component vector of float) -0:160 'inF1' (temp 2-component vector of float) -0:160 'inF2' (temp 2-component vector of float) +0:160 'inF0' (in 2-component vector of float) +0:160 'inF1' (in 2-component vector of float) +0:160 'inF2' (in 2-component vector of float) 0:161 sqrt (global 2-component vector of float) -0:161 'inF0' (temp 2-component vector of float) +0:161 'inF0' (in 2-component vector of float) 0:162 step (global 2-component vector of float) -0:162 'inF0' (temp 2-component vector of float) -0:162 'inF1' (temp 2-component vector of float) +0:162 'inF0' (in 2-component vector of float) +0:162 'inF1' (in 2-component vector of float) 0:163 tangent (global 2-component vector of float) -0:163 'inF0' (temp 2-component vector of float) +0:163 'inF0' (in 2-component vector of float) 0:164 hyp. tangent (global 2-component vector of float) -0:164 'inF0' (temp 2-component vector of float) +0:164 'inF0' (in 2-component vector of float) 0:166 trunc (global 2-component vector of float) -0:166 'inF0' (temp 2-component vector of float) +0:166 'inF0' (in 2-component vector of float) 0:169 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:252 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:173 Function Parameters: -0:173 'inF0' (temp 3-component vector of float) -0:173 'inF1' (temp 3-component vector of float) -0:173 'inF2' (temp 3-component vector of float) -0:173 'inU0' (temp 3-component vector of uint) -0:173 'inU1' (temp 3-component vector of uint) +0:173 'inF0' (in 3-component vector of float) +0:173 'inF1' (in 3-component vector of float) +0:173 'inF2' (in 3-component vector of float) +0:173 'inU0' (in 3-component vector of uint) +0:173 'inU1' (in 3-component vector of uint) 0:? Sequence 0:176 all (global bool) -0:176 'inF0' (temp 3-component vector of float) +0:176 'inF0' (in 3-component vector of float) 0:177 Absolute value (global 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) +0:177 'inF0' (in 3-component vector of float) 0:178 arc cosine (global 3-component vector of float) -0:178 'inF0' (temp 3-component vector of float) +0:178 'inF0' (in 3-component vector of float) 0:179 any (global bool) -0:179 'inF0' (temp 3-component vector of float) +0:179 'inF0' (in 3-component vector of float) 0:180 arc sine (global 3-component vector of float) -0:180 'inF0' (temp 3-component vector of float) +0:180 'inF0' (in 3-component vector of float) 0:181 floatBitsToInt (global 3-component vector of int) -0:181 'inF0' (temp 3-component vector of float) +0:181 'inF0' (in 3-component vector of float) 0:182 floatBitsToUint (global 3-component vector of uint) -0:182 'inF0' (temp 3-component vector of float) +0:182 'inF0' (in 3-component vector of float) 0:183 intBitsToFloat (global 3-component vector of float) -0:183 'inU0' (temp 3-component vector of uint) +0:183 'inU0' (in 3-component vector of uint) 0:185 arc tangent (global 3-component vector of float) -0:185 'inF0' (temp 3-component vector of float) +0:185 'inF0' (in 3-component vector of float) 0:186 arc tangent (global 3-component vector of float) -0:186 'inF0' (temp 3-component vector of float) -0:186 'inF1' (temp 3-component vector of float) +0:186 'inF0' (in 3-component vector of float) +0:186 'inF1' (in 3-component vector of float) 0:187 Ceiling (global 3-component vector of float) -0:187 'inF0' (temp 3-component vector of float) +0:187 'inF0' (in 3-component vector of float) 0:188 clamp (global 3-component vector of float) -0:188 'inF0' (temp 3-component vector of float) -0:188 'inF1' (temp 3-component vector of float) -0:188 'inF2' (temp 3-component vector of float) +0:188 'inF0' (in 3-component vector of float) +0:188 'inF1' (in 3-component vector of float) +0:188 'inF2' (in 3-component vector of float) 0:189 Test condition and select (temp void) 0:189 Condition 0:189 any (temp bool) 0:189 Compare Less Than (temp 3-component vector of bool) -0:189 'inF0' (temp 3-component vector of float) +0:189 'inF0' (in 3-component vector of float) 0:189 Constant: 0:189 0.000000 0:189 0.000000 @@ -1861,45 +1861,45 @@ gl_FragCoord origin is upper left 0:189 true case 0:189 Branch: Kill 0:190 cosine (global 3-component vector of float) -0:190 'inF0' (temp 3-component vector of float) +0:190 'inF0' (in 3-component vector of float) 0:191 hyp. cosine (global 3-component vector of float) -0:191 'inF0' (temp 3-component vector of float) +0:191 'inF0' (in 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:193 cross-product (global 3-component vector of float) -0:193 'inF0' (temp 3-component vector of float) -0:193 'inF1' (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) +0:193 'inF1' (in 3-component vector of float) 0:194 dPdx (global 3-component vector of float) -0:194 'inF0' (temp 3-component vector of float) +0:194 'inF0' (in 3-component vector of float) 0:195 dPdxCoarse (global 3-component vector of float) -0:195 'inF0' (temp 3-component vector of float) +0:195 'inF0' (in 3-component vector of float) 0:196 dPdxFine (global 3-component vector of float) -0:196 'inF0' (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) 0:197 dPdy (global 3-component vector of float) -0:197 'inF0' (temp 3-component vector of float) +0:197 'inF0' (in 3-component vector of float) 0:198 dPdyCoarse (global 3-component vector of float) -0:198 'inF0' (temp 3-component vector of float) +0:198 'inF0' (in 3-component vector of float) 0:199 dPdyFine (global 3-component vector of float) -0:199 'inF0' (temp 3-component vector of float) +0:199 'inF0' (in 3-component vector of float) 0:200 degrees (global 3-component vector of float) -0:200 'inF0' (temp 3-component vector of float) +0:200 'inF0' (in 3-component vector of float) 0:201 distance (global float) -0:201 'inF0' (temp 3-component vector of float) -0:201 'inF1' (temp 3-component vector of float) +0:201 'inF0' (in 3-component vector of float) +0:201 'inF1' (in 3-component vector of float) 0:202 dot-product (global float) -0:202 'inF0' (temp 3-component vector of float) -0:202 'inF1' (temp 3-component vector of float) +0:202 'inF0' (in 3-component vector of float) +0:202 'inF1' (in 3-component vector of float) 0:206 exp (global 3-component vector of float) -0:206 'inF0' (temp 3-component vector of float) +0:206 'inF0' (in 3-component vector of float) 0:207 exp2 (global 3-component vector of float) -0:207 'inF0' (temp 3-component vector of float) +0:207 'inF0' (in 3-component vector of float) 0:208 face-forward (global 3-component vector of float) -0:208 'inF0' (temp 3-component vector of float) -0:208 'inF1' (temp 3-component vector of float) -0:208 'inF2' (temp 3-component vector of float) +0:208 'inF0' (in 3-component vector of float) +0:208 'inF1' (in 3-component vector of float) +0:208 'inF2' (in 3-component vector of float) 0:209 findMSB (global int) 0:209 Constant: 0:209 7 (const int) @@ -1907,58 +1907,58 @@ gl_FragCoord origin is upper left 0:210 Constant: 0:210 7 (const int) 0:211 Floor (global 3-component vector of float) -0:211 'inF0' (temp 3-component vector of float) +0:211 'inF0' (in 3-component vector of float) 0:213 mod (global 3-component vector of float) -0:213 'inF0' (temp 3-component vector of float) -0:213 'inF1' (temp 3-component vector of float) +0:213 'inF0' (in 3-component vector of float) +0:213 'inF1' (in 3-component vector of float) 0:214 Fraction (global 3-component vector of float) -0:214 'inF0' (temp 3-component vector of float) +0:214 'inF0' (in 3-component vector of float) 0:215 frexp (global 3-component vector of float) -0:215 'inF0' (temp 3-component vector of float) -0:215 'inF1' (temp 3-component vector of float) +0:215 'inF0' (in 3-component vector of float) +0:215 'inF1' (in 3-component vector of float) 0:216 fwidth (global 3-component vector of float) -0:216 'inF0' (temp 3-component vector of float) +0:216 'inF0' (in 3-component vector of float) 0:217 isinf (global 3-component vector of bool) -0:217 'inF0' (temp 3-component vector of float) +0:217 'inF0' (in 3-component vector of float) 0:218 isnan (global 3-component vector of bool) -0:218 'inF0' (temp 3-component vector of float) +0:218 'inF0' (in 3-component vector of float) 0:219 ldexp (global 3-component vector of float) -0:219 'inF0' (temp 3-component vector of float) -0:219 'inF1' (temp 3-component vector of float) +0:219 'inF0' (in 3-component vector of float) +0:219 'inF1' (in 3-component vector of float) 0:220 length (global float) -0:220 'inF0' (temp 3-component vector of float) +0:220 'inF0' (in 3-component vector of float) 0:221 log (global 3-component vector of float) -0:221 'inF0' (temp 3-component vector of float) +0:221 'inF0' (in 3-component vector of float) 0:222 vector-scale (temp 3-component vector of float) 0:222 log2 (temp 3-component vector of float) -0:222 'inF0' (temp 3-component vector of float) +0:222 'inF0' (in 3-component vector of float) 0:222 Constant: 0:222 0.301030 0:223 log2 (global 3-component vector of float) -0:223 'inF0' (temp 3-component vector of float) +0:223 'inF0' (in 3-component vector of float) 0:224 max (global 3-component vector of float) -0:224 'inF0' (temp 3-component vector of float) -0:224 'inF1' (temp 3-component vector of float) +0:224 'inF0' (in 3-component vector of float) +0:224 'inF1' (in 3-component vector of float) 0:225 min (global 3-component vector of float) -0:225 'inF0' (temp 3-component vector of float) -0:225 'inF1' (temp 3-component vector of float) +0:225 'inF0' (in 3-component vector of float) +0:225 'inF1' (in 3-component vector of float) 0:226 normalize (global 3-component vector of float) -0:226 'inF0' (temp 3-component vector of float) +0:226 'inF0' (in 3-component vector of float) 0:227 pow (global 3-component vector of float) -0:227 'inF0' (temp 3-component vector of float) -0:227 'inF1' (temp 3-component vector of float) +0:227 'inF0' (in 3-component vector of float) +0:227 'inF1' (in 3-component vector of float) 0:228 radians (global 3-component vector of float) -0:228 'inF0' (temp 3-component vector of float) +0:228 'inF0' (in 3-component vector of float) 0:229 divide (temp 3-component vector of float) 0:229 Constant: 0:229 1.000000 -0:229 'inF0' (temp 3-component vector of float) +0:229 'inF0' (in 3-component vector of float) 0:230 reflect (global 3-component vector of float) -0:230 'inF0' (temp 3-component vector of float) -0:230 'inF1' (temp 3-component vector of float) +0:230 'inF0' (in 3-component vector of float) +0:230 'inF1' (in 3-component vector of float) 0:231 refract (global 3-component vector of float) -0:231 'inF0' (temp 3-component vector of float) -0:231 'inF1' (temp 3-component vector of float) +0:231 'inF0' (in 3-component vector of float) +0:231 'inF1' (in 3-component vector of float) 0:231 Constant: 0:231 2.000000 0:? bitFieldReverse (global 3-component vector of uint) @@ -1967,45 +1967,45 @@ gl_FragCoord origin is upper left 0:? 2 (const uint) 0:? 3 (const uint) 0:233 roundEven (global 3-component vector of float) -0:233 'inF0' (temp 3-component vector of float) +0:233 'inF0' (in 3-component vector of float) 0:234 inverse sqrt (global 3-component vector of float) -0:234 'inF0' (temp 3-component vector of float) +0:234 'inF0' (in 3-component vector of float) 0:235 clamp (temp 3-component vector of float) -0:235 'inF0' (temp 3-component vector of float) +0:235 'inF0' (in 3-component vector of float) 0:235 Constant: 0:235 0.000000 0:235 Constant: 0:235 1.000000 0:236 Sign (global 3-component vector of float) -0:236 'inF0' (temp 3-component vector of float) +0:236 'inF0' (in 3-component vector of float) 0:237 sine (global 3-component vector of float) -0:237 'inF0' (temp 3-component vector of float) +0:237 'inF0' (in 3-component vector of float) 0:238 Sequence 0:238 move second child to first child (temp 3-component vector of float) -0:238 'inF1' (temp 3-component vector of float) +0:238 'inF1' (in 3-component vector of float) 0:238 sine (temp 3-component vector of float) -0:238 'inF0' (temp 3-component vector of float) +0:238 'inF0' (in 3-component vector of float) 0:238 move second child to first child (temp 3-component vector of float) -0:238 'inF2' (temp 3-component vector of float) +0:238 'inF2' (in 3-component vector of float) 0:238 cosine (temp 3-component vector of float) -0:238 'inF0' (temp 3-component vector of float) +0:238 'inF0' (in 3-component vector of float) 0:239 hyp. sine (global 3-component vector of float) -0:239 'inF0' (temp 3-component vector of float) +0:239 'inF0' (in 3-component vector of float) 0:240 smoothstep (global 3-component vector of float) -0:240 'inF0' (temp 3-component vector of float) -0:240 'inF1' (temp 3-component vector of float) -0:240 'inF2' (temp 3-component vector of float) +0:240 'inF0' (in 3-component vector of float) +0:240 'inF1' (in 3-component vector of float) +0:240 'inF2' (in 3-component vector of float) 0:241 sqrt (global 3-component vector of float) -0:241 'inF0' (temp 3-component vector of float) +0:241 'inF0' (in 3-component vector of float) 0:242 step (global 3-component vector of float) -0:242 'inF0' (temp 3-component vector of float) -0:242 'inF1' (temp 3-component vector of float) +0:242 'inF0' (in 3-component vector of float) +0:242 'inF1' (in 3-component vector of float) 0:243 tangent (global 3-component vector of float) -0:243 'inF0' (temp 3-component vector of float) +0:243 'inF0' (in 3-component vector of float) 0:244 hyp. tangent (global 3-component vector of float) -0:244 'inF0' (temp 3-component vector of float) +0:244 'inF0' (in 3-component vector of float) 0:246 trunc (global 3-component vector of float) -0:246 'inF0' (temp 3-component vector of float) +0:246 'inF0' (in 3-component vector of float) 0:249 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -2013,44 +2013,44 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:393 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:253 Function Parameters: -0:253 'inF0' (temp 4-component vector of float) -0:253 'inF1' (temp 4-component vector of float) -0:253 'inF2' (temp 4-component vector of float) -0:253 'inU0' (temp 4-component vector of uint) -0:253 'inU1' (temp 4-component vector of uint) +0:253 'inF0' (in 4-component vector of float) +0:253 'inF1' (in 4-component vector of float) +0:253 'inF2' (in 4-component vector of float) +0:253 'inU0' (in 4-component vector of uint) +0:253 'inU1' (in 4-component vector of uint) 0:? Sequence 0:256 all (global bool) -0:256 'inF0' (temp 4-component vector of float) +0:256 'inF0' (in 4-component vector of float) 0:257 Absolute value (global 4-component vector of float) -0:257 'inF0' (temp 4-component vector of float) +0:257 'inF0' (in 4-component vector of float) 0:258 arc cosine (global 4-component vector of float) -0:258 'inF0' (temp 4-component vector of float) +0:258 'inF0' (in 4-component vector of float) 0:259 any (global bool) -0:259 'inF0' (temp 4-component vector of float) +0:259 'inF0' (in 4-component vector of float) 0:260 arc sine (global 4-component vector of float) -0:260 'inF0' (temp 4-component vector of float) +0:260 'inF0' (in 4-component vector of float) 0:261 floatBitsToInt (global 4-component vector of int) -0:261 'inF0' (temp 4-component vector of float) +0:261 'inF0' (in 4-component vector of float) 0:262 floatBitsToUint (global 4-component vector of uint) -0:262 'inF0' (temp 4-component vector of float) +0:262 'inF0' (in 4-component vector of float) 0:263 intBitsToFloat (global 4-component vector of float) -0:263 'inU0' (temp 4-component vector of uint) +0:263 'inU0' (in 4-component vector of uint) 0:265 arc tangent (global 4-component vector of float) -0:265 'inF0' (temp 4-component vector of float) +0:265 'inF0' (in 4-component vector of float) 0:266 arc tangent (global 4-component vector of float) -0:266 'inF0' (temp 4-component vector of float) -0:266 'inF1' (temp 4-component vector of float) +0:266 'inF0' (in 4-component vector of float) +0:266 'inF1' (in 4-component vector of float) 0:267 Ceiling (global 4-component vector of float) -0:267 'inF0' (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) 0:268 clamp (global 4-component vector of float) -0:268 'inF0' (temp 4-component vector of float) -0:268 'inF1' (temp 4-component vector of float) -0:268 'inF2' (temp 4-component vector of float) +0:268 'inF0' (in 4-component vector of float) +0:268 'inF1' (in 4-component vector of float) +0:268 'inF2' (in 4-component vector of float) 0:269 Test condition and select (temp void) 0:269 Condition 0:269 any (temp bool) 0:269 Compare Less Than (temp 4-component vector of bool) -0:269 'inF0' (temp 4-component vector of float) +0:269 'inF0' (in 4-component vector of float) 0:269 Constant: 0:269 0.000000 0:269 0.000000 @@ -2059,9 +2059,9 @@ gl_FragCoord origin is upper left 0:269 true case 0:269 Branch: Kill 0:270 cosine (global 4-component vector of float) -0:270 'inF0' (temp 4-component vector of float) +0:270 'inF0' (in 4-component vector of float) 0:271 hyp. cosine (global 4-component vector of float) -0:271 'inF0' (temp 4-component vector of float) +0:271 'inF0' (in 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) @@ -2069,53 +2069,53 @@ gl_FragCoord origin is upper left 0:? 5 (const uint) 0:? 2 (const uint) 0:273 dPdx (global 4-component vector of float) -0:273 'inF0' (temp 4-component vector of float) +0:273 'inF0' (in 4-component vector of float) 0:274 dPdxCoarse (global 4-component vector of float) -0:274 'inF0' (temp 4-component vector of float) +0:274 'inF0' (in 4-component vector of float) 0:275 dPdxFine (global 4-component vector of float) -0:275 'inF0' (temp 4-component vector of float) +0:275 'inF0' (in 4-component vector of float) 0:276 dPdy (global 4-component vector of float) -0:276 'inF0' (temp 4-component vector of float) +0:276 'inF0' (in 4-component vector of float) 0:277 dPdyCoarse (global 4-component vector of float) -0:277 'inF0' (temp 4-component vector of float) +0:277 'inF0' (in 4-component vector of float) 0:278 dPdyFine (global 4-component vector of float) -0:278 'inF0' (temp 4-component vector of float) +0:278 'inF0' (in 4-component vector of float) 0:279 degrees (global 4-component vector of float) -0:279 'inF0' (temp 4-component vector of float) +0:279 'inF0' (in 4-component vector of float) 0:280 distance (global float) -0:280 'inF0' (temp 4-component vector of float) -0:280 'inF1' (temp 4-component vector of float) +0:280 'inF0' (in 4-component vector of float) +0:280 'inF1' (in 4-component vector of float) 0:281 dot-product (global float) -0:281 'inF0' (temp 4-component vector of float) -0:281 'inF1' (temp 4-component vector of float) +0:281 'inF0' (in 4-component vector of float) +0:281 'inF1' (in 4-component vector of float) 0:282 Construct vec4 (temp float) 0:282 Constant: 0:282 1.000000 0:282 component-wise multiply (temp float) 0:282 direct index (temp float) -0:282 'inF0' (temp 4-component vector of float) +0:282 'inF0' (in 4-component vector of float) 0:282 Constant: 0:282 1 (const int) 0:282 direct index (temp float) -0:282 'inF1' (temp 4-component vector of float) +0:282 'inF1' (in 4-component vector of float) 0:282 Constant: 0:282 1 (const int) 0:282 direct index (temp float) -0:282 'inF0' (temp 4-component vector of float) +0:282 'inF0' (in 4-component vector of float) 0:282 Constant: 0:282 2 (const int) 0:282 direct index (temp float) -0:282 'inF1' (temp 4-component vector of float) +0:282 'inF1' (in 4-component vector of float) 0:282 Constant: 0:282 3 (const int) 0:286 exp (global 4-component vector of float) -0:286 'inF0' (temp 4-component vector of float) +0:286 'inF0' (in 4-component vector of float) 0:287 exp2 (global 4-component vector of float) -0:287 'inF0' (temp 4-component vector of float) +0:287 'inF0' (in 4-component vector of float) 0:288 face-forward (global 4-component vector of float) -0:288 'inF0' (temp 4-component vector of float) -0:288 'inF1' (temp 4-component vector of float) -0:288 'inF2' (temp 4-component vector of float) +0:288 'inF0' (in 4-component vector of float) +0:288 'inF1' (in 4-component vector of float) +0:288 'inF2' (in 4-component vector of float) 0:289 findMSB (global int) 0:289 Constant: 0:289 7 (const int) @@ -2123,58 +2123,58 @@ gl_FragCoord origin is upper left 0:290 Constant: 0:290 7 (const int) 0:291 Floor (global 4-component vector of float) -0:291 'inF0' (temp 4-component vector of float) +0:291 'inF0' (in 4-component vector of float) 0:293 mod (global 4-component vector of float) -0:293 'inF0' (temp 4-component vector of float) -0:293 'inF1' (temp 4-component vector of float) +0:293 'inF0' (in 4-component vector of float) +0:293 'inF1' (in 4-component vector of float) 0:294 Fraction (global 4-component vector of float) -0:294 'inF0' (temp 4-component vector of float) +0:294 'inF0' (in 4-component vector of float) 0:295 frexp (global 4-component vector of float) -0:295 'inF0' (temp 4-component vector of float) -0:295 'inF1' (temp 4-component vector of float) +0:295 'inF0' (in 4-component vector of float) +0:295 'inF1' (in 4-component vector of float) 0:296 fwidth (global 4-component vector of float) -0:296 'inF0' (temp 4-component vector of float) +0:296 'inF0' (in 4-component vector of float) 0:297 isinf (global 4-component vector of bool) -0:297 'inF0' (temp 4-component vector of float) +0:297 'inF0' (in 4-component vector of float) 0:298 isnan (global 4-component vector of bool) -0:298 'inF0' (temp 4-component vector of float) +0:298 'inF0' (in 4-component vector of float) 0:299 ldexp (global 4-component vector of float) -0:299 'inF0' (temp 4-component vector of float) -0:299 'inF1' (temp 4-component vector of float) +0:299 'inF0' (in 4-component vector of float) +0:299 'inF1' (in 4-component vector of float) 0:300 length (global float) -0:300 'inF0' (temp 4-component vector of float) +0:300 'inF0' (in 4-component vector of float) 0:301 log (global 4-component vector of float) -0:301 'inF0' (temp 4-component vector of float) +0:301 'inF0' (in 4-component vector of float) 0:302 vector-scale (temp 4-component vector of float) 0:302 log2 (temp 4-component vector of float) -0:302 'inF0' (temp 4-component vector of float) +0:302 'inF0' (in 4-component vector of float) 0:302 Constant: 0:302 0.301030 0:303 log2 (global 4-component vector of float) -0:303 'inF0' (temp 4-component vector of float) +0:303 'inF0' (in 4-component vector of float) 0:304 max (global 4-component vector of float) -0:304 'inF0' (temp 4-component vector of float) -0:304 'inF1' (temp 4-component vector of float) +0:304 'inF0' (in 4-component vector of float) +0:304 'inF1' (in 4-component vector of float) 0:305 min (global 4-component vector of float) -0:305 'inF0' (temp 4-component vector of float) -0:305 'inF1' (temp 4-component vector of float) +0:305 'inF0' (in 4-component vector of float) +0:305 'inF1' (in 4-component vector of float) 0:306 normalize (global 4-component vector of float) -0:306 'inF0' (temp 4-component vector of float) +0:306 'inF0' (in 4-component vector of float) 0:307 pow (global 4-component vector of float) -0:307 'inF0' (temp 4-component vector of float) -0:307 'inF1' (temp 4-component vector of float) +0:307 'inF0' (in 4-component vector of float) +0:307 'inF1' (in 4-component vector of float) 0:308 radians (global 4-component vector of float) -0:308 'inF0' (temp 4-component vector of float) +0:308 'inF0' (in 4-component vector of float) 0:309 divide (temp 4-component vector of float) 0:309 Constant: 0:309 1.000000 -0:309 'inF0' (temp 4-component vector of float) +0:309 'inF0' (in 4-component vector of float) 0:310 reflect (global 4-component vector of float) -0:310 'inF0' (temp 4-component vector of float) -0:310 'inF1' (temp 4-component vector of float) +0:310 'inF0' (in 4-component vector of float) +0:310 'inF1' (in 4-component vector of float) 0:311 refract (global 4-component vector of float) -0:311 'inF0' (temp 4-component vector of float) -0:311 'inF1' (temp 4-component vector of float) +0:311 'inF0' (in 4-component vector of float) +0:311 'inF1' (in 4-component vector of float) 0:311 Constant: 0:311 2.000000 0:? bitFieldReverse (global 4-component vector of uint) @@ -2184,45 +2184,45 @@ gl_FragCoord origin is upper left 0:? 3 (const uint) 0:? 4 (const uint) 0:313 roundEven (global 4-component vector of float) -0:313 'inF0' (temp 4-component vector of float) +0:313 'inF0' (in 4-component vector of float) 0:314 inverse sqrt (global 4-component vector of float) -0:314 'inF0' (temp 4-component vector of float) +0:314 'inF0' (in 4-component vector of float) 0:315 clamp (temp 4-component vector of float) -0:315 'inF0' (temp 4-component vector of float) +0:315 'inF0' (in 4-component vector of float) 0:315 Constant: 0:315 0.000000 0:315 Constant: 0:315 1.000000 0:316 Sign (global 4-component vector of float) -0:316 'inF0' (temp 4-component vector of float) +0:316 'inF0' (in 4-component vector of float) 0:317 sine (global 4-component vector of float) -0:317 'inF0' (temp 4-component vector of float) +0:317 'inF0' (in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) -0:318 'inF1' (temp 4-component vector of float) +0:318 'inF1' (in 4-component vector of float) 0:318 sine (temp 4-component vector of float) -0:318 'inF0' (temp 4-component vector of float) +0:318 'inF0' (in 4-component vector of float) 0:318 move second child to first child (temp 4-component vector of float) -0:318 'inF2' (temp 4-component vector of float) +0:318 'inF2' (in 4-component vector of float) 0:318 cosine (temp 4-component vector of float) -0:318 'inF0' (temp 4-component vector of float) +0:318 'inF0' (in 4-component vector of float) 0:319 hyp. sine (global 4-component vector of float) -0:319 'inF0' (temp 4-component vector of float) +0:319 'inF0' (in 4-component vector of float) 0:320 smoothstep (global 4-component vector of float) -0:320 'inF0' (temp 4-component vector of float) -0:320 'inF1' (temp 4-component vector of float) -0:320 'inF2' (temp 4-component vector of float) +0:320 'inF0' (in 4-component vector of float) +0:320 'inF1' (in 4-component vector of float) +0:320 'inF2' (in 4-component vector of float) 0:321 sqrt (global 4-component vector of float) -0:321 'inF0' (temp 4-component vector of float) +0:321 'inF0' (in 4-component vector of float) 0:322 step (global 4-component vector of float) -0:322 'inF0' (temp 4-component vector of float) -0:322 'inF1' (temp 4-component vector of float) +0:322 'inF0' (in 4-component vector of float) +0:322 'inF1' (in 4-component vector of float) 0:323 tangent (global 4-component vector of float) -0:323 'inF0' (temp 4-component vector of float) +0:323 'inF0' (in 4-component vector of float) 0:324 hyp. tangent (global 4-component vector of float) -0:324 'inF0' (temp 4-component vector of float) +0:324 'inF0' (in 4-component vector of float) 0:326 trunc (global 4-component vector of float) -0:326 'inF0' (temp 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) 0:329 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -2231,32 +2231,32 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:402 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:394 Function Parameters: -0:394 'inF0' (temp 2X2 matrix of float) -0:394 'inF1' (temp 2X2 matrix of float) -0:394 'inF2' (temp 2X2 matrix of float) +0:394 'inF0' (in 2X2 matrix of float) +0:394 'inF1' (in 2X2 matrix of float) +0:394 'inF2' (in 2X2 matrix of float) 0:? Sequence 0:396 all (global bool) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Absolute value (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 arc cosine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 any (global bool) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 arc sine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 arc tangent (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 arc tangent (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 Ceiling (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Test condition and select (temp void) 0:396 Condition 0:396 any (temp bool) 0:396 Compare Less Than (temp 2X2 matrix of bool) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Constant: 0:396 0.000000 0:396 0.000000 @@ -2265,33 +2265,33 @@ gl_FragCoord origin is upper left 0:396 true case 0:396 Branch: Kill 0:396 clamp (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) -0:396 'inF2' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) +0:396 'inF2' (in 2X2 matrix of float) 0:396 cosine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 hyp. cosine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdx (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdxCoarse (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdxFine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdy (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdyCoarse (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 dPdyFine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 degrees (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 determinant (global float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 exp (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 exp2 (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 findMSB (global int) 0:396 Constant: 0:396 7 (const int) @@ -2299,82 +2299,82 @@ gl_FragCoord origin is upper left 0:396 Constant: 0:396 7 (const int) 0:396 Floor (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 mod (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 Fraction (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 frexp (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 fwidth (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 ldexp (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 log (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 matrix-scale (temp 2X2 matrix of float) 0:396 log2 (temp 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Constant: 0:396 0.301030 0:396 log2 (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 max (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 min (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 pow (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 radians (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 roundEven (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 inverse sqrt (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 clamp (temp 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Constant: 0:396 0.000000 0:396 Constant: 0:396 1.000000 0:396 Sign (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 sine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 Sequence 0:396 move second child to first child (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 sine (temp 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 move second child to first child (temp 2X2 matrix of float) -0:396 'inF2' (temp 2X2 matrix of float) +0:396 'inF2' (in 2X2 matrix of float) 0:396 cosine (temp 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 hyp. sine (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 smoothstep (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) -0:396 'inF2' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) +0:396 'inF2' (in 2X2 matrix of float) 0:396 sqrt (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 step (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) -0:396 'inF1' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) +0:396 'inF1' (in 2X2 matrix of float) 0:396 tangent (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 hyp. tangent (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 transpose (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:396 trunc (global 2X2 matrix of float) -0:396 'inF0' (temp 2X2 matrix of float) +0:396 'inF0' (in 2X2 matrix of float) 0:399 Branch: Return with expression 0:? Constant: 0:? 2.000000 @@ -2383,32 +2383,32 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:411 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:403 Function Parameters: -0:403 'inF0' (temp 3X3 matrix of float) -0:403 'inF1' (temp 3X3 matrix of float) -0:403 'inF2' (temp 3X3 matrix of float) +0:403 'inF0' (in 3X3 matrix of float) +0:403 'inF1' (in 3X3 matrix of float) +0:403 'inF2' (in 3X3 matrix of float) 0:? Sequence 0:405 all (global bool) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Absolute value (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 arc cosine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 any (global bool) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 arc sine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 arc tangent (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 arc tangent (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 Ceiling (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Test condition and select (temp void) 0:405 Condition 0:405 any (temp bool) 0:405 Compare Less Than (temp 3X3 matrix of bool) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Constant: 0:405 0.000000 0:405 0.000000 @@ -2422,33 +2422,33 @@ gl_FragCoord origin is upper left 0:405 true case 0:405 Branch: Kill 0:405 clamp (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) -0:405 'inF2' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) +0:405 'inF2' (in 3X3 matrix of float) 0:405 cosine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 hyp. cosine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdx (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdxCoarse (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdxFine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdy (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdyCoarse (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 dPdyFine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 degrees (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 determinant (global float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 exp (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 exp2 (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 findMSB (global int) 0:405 Constant: 0:405 7 (const int) @@ -2456,82 +2456,82 @@ gl_FragCoord origin is upper left 0:405 Constant: 0:405 7 (const int) 0:405 Floor (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 mod (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 Fraction (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 frexp (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 fwidth (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 ldexp (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 log (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 matrix-scale (temp 3X3 matrix of float) 0:405 log2 (temp 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Constant: 0:405 0.301030 0:405 log2 (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 max (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 min (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 pow (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 radians (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 roundEven (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 inverse sqrt (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 clamp (temp 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Constant: 0:405 0.000000 0:405 Constant: 0:405 1.000000 0:405 Sign (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 sine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 Sequence 0:405 move second child to first child (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 sine (temp 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 move second child to first child (temp 3X3 matrix of float) -0:405 'inF2' (temp 3X3 matrix of float) +0:405 'inF2' (in 3X3 matrix of float) 0:405 cosine (temp 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 hyp. sine (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 smoothstep (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) -0:405 'inF2' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) +0:405 'inF2' (in 3X3 matrix of float) 0:405 sqrt (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 step (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) -0:405 'inF1' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) +0:405 'inF1' (in 3X3 matrix of float) 0:405 tangent (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 hyp. tangent (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 transpose (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:405 trunc (global 3X3 matrix of float) -0:405 'inF0' (temp 3X3 matrix of float) +0:405 'inF0' (in 3X3 matrix of float) 0:408 Branch: Return with expression 0:? Constant: 0:? 3.000000 @@ -2545,32 +2545,32 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:432 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:412 Function Parameters: -0:412 'inF0' (temp 4X4 matrix of float) -0:412 'inF1' (temp 4X4 matrix of float) -0:412 'inF2' (temp 4X4 matrix of float) +0:412 'inF0' (in 4X4 matrix of float) +0:412 'inF1' (in 4X4 matrix of float) +0:412 'inF2' (in 4X4 matrix of float) 0:? Sequence 0:414 all (global bool) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Absolute value (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 arc cosine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 any (global bool) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 arc sine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 arc tangent (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 arc tangent (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 Ceiling (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Test condition and select (temp void) 0:414 Condition 0:414 any (temp bool) 0:414 Compare Less Than (temp 4X4 matrix of bool) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Constant: 0:414 0.000000 0:414 0.000000 @@ -2591,33 +2591,33 @@ gl_FragCoord origin is upper left 0:414 true case 0:414 Branch: Kill 0:414 clamp (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) -0:414 'inF2' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) +0:414 'inF2' (in 4X4 matrix of float) 0:414 cosine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 hyp. cosine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdx (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdxCoarse (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdxFine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdy (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdyCoarse (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 dPdyFine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 degrees (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 determinant (global float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 exp (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 exp2 (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 findMSB (global int) 0:414 Constant: 0:414 7 (const int) @@ -2625,82 +2625,82 @@ gl_FragCoord origin is upper left 0:414 Constant: 0:414 7 (const int) 0:414 Floor (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 mod (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 Fraction (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 frexp (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 fwidth (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 ldexp (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 log (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 matrix-scale (temp 4X4 matrix of float) 0:414 log2 (temp 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Constant: 0:414 0.301030 0:414 log2 (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 max (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 min (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 pow (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 radians (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 roundEven (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 inverse sqrt (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 clamp (temp 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Constant: 0:414 0.000000 0:414 Constant: 0:414 1.000000 0:414 Sign (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 sine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 Sequence 0:414 move second child to first child (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 sine (temp 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 move second child to first child (temp 4X4 matrix of float) -0:414 'inF2' (temp 4X4 matrix of float) +0:414 'inF2' (in 4X4 matrix of float) 0:414 cosine (temp 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 hyp. sine (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 smoothstep (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) -0:414 'inF2' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) +0:414 'inF2' (in 4X4 matrix of float) 0:414 sqrt (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 step (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) -0:414 'inF1' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) +0:414 'inF1' (in 4X4 matrix of float) 0:414 tangent (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 hyp. tangent (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 transpose (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:414 trunc (global 4X4 matrix of float) -0:414 'inF0' (temp 4X4 matrix of float) +0:414 'inF0' (in 4X4 matrix of float) 0:417 Branch: Return with expression 0:? Constant: 0:? 4.000000 @@ -2721,166 +2721,166 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:439 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:435 Function Parameters: -0:435 'inF0' (temp float) -0:435 'inF1' (temp float) -0:435 'inFV0' (temp 2-component vector of float) -0:435 'inFV1' (temp 2-component vector of float) -0:435 'inFM0' (temp 2X2 matrix of float) -0:435 'inFM1' (temp 2X2 matrix of float) +0:435 'inF0' (in float) +0:435 'inF1' (in float) +0:435 'inFV0' (in 2-component vector of float) +0:435 'inFV1' (in 2-component vector of float) +0:435 'inFM0' (in 2X2 matrix of float) +0:435 'inFM1' (in 2X2 matrix of float) 0:? Sequence 0:436 move second child to first child (temp float) 0:436 'r0' (temp float) 0:436 component-wise multiply (temp float) -0:436 'inF0' (temp float) -0:436 'inF1' (temp float) +0:436 'inF0' (in float) +0:436 'inF1' (in float) 0:436 move second child to first child (temp 2-component vector of float) 0:436 'r1' (temp 2-component vector of float) 0:436 vector-scale (temp 2-component vector of float) -0:436 'inFV0' (temp 2-component vector of float) -0:436 'inF0' (temp float) +0:436 'inFV0' (in 2-component vector of float) +0:436 'inF0' (in float) 0:436 move second child to first child (temp 2-component vector of float) 0:436 'r2' (temp 2-component vector of float) 0:436 vector-scale (temp 2-component vector of float) -0:436 'inF0' (temp float) -0:436 'inFV0' (temp 2-component vector of float) +0:436 'inF0' (in float) +0:436 'inFV0' (in 2-component vector of float) 0:436 move second child to first child (temp float) 0:436 'r3' (temp float) 0:436 dot-product (global float) -0:436 'inFV0' (temp 2-component vector of float) -0:436 'inFV1' (temp 2-component vector of float) +0:436 'inFV0' (in 2-component vector of float) +0:436 'inFV1' (in 2-component vector of float) 0:436 move second child to first child (temp 2-component vector of float) 0:436 'r4' (temp 2-component vector of float) 0:436 matrix-times-vector (temp 2-component vector of float) -0:436 'inFM0' (temp 2X2 matrix of float) -0:436 'inFV0' (temp 2-component vector of float) +0:436 'inFM0' (in 2X2 matrix of float) +0:436 'inFV0' (in 2-component vector of float) 0:436 move second child to first child (temp 2-component vector of float) 0:436 'r5' (temp 2-component vector of float) 0:436 vector-times-matrix (temp 2-component vector of float) -0:436 'inFV0' (temp 2-component vector of float) -0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inFV0' (in 2-component vector of float) +0:436 'inFM0' (in 2X2 matrix of float) 0:436 move second child to first child (temp 2X2 matrix of float) 0:436 'r6' (temp 2X2 matrix of float) 0:436 matrix-scale (temp 2X2 matrix of float) -0:436 'inFM0' (temp 2X2 matrix of float) -0:436 'inF0' (temp float) +0:436 'inFM0' (in 2X2 matrix of float) +0:436 'inF0' (in float) 0:436 move second child to first child (temp 2X2 matrix of float) 0:436 'r7' (temp 2X2 matrix of float) 0:436 matrix-scale (temp 2X2 matrix of float) -0:436 'inF0' (temp float) -0:436 'inFM0' (temp 2X2 matrix of float) +0:436 'inF0' (in float) +0:436 'inFM0' (in 2X2 matrix of float) 0:436 move second child to first child (temp 2X2 matrix of float) 0:436 'r8' (temp 2X2 matrix of float) 0:436 matrix-multiply (temp 2X2 matrix of float) -0:436 'inFM0' (temp 2X2 matrix of float) -0:436 'inFM1' (temp 2X2 matrix of float) +0:436 'inFM0' (in 2X2 matrix of float) +0:436 'inFM1' (in 2X2 matrix of float) 0:446 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:442 Function Parameters: -0:442 'inF0' (temp float) -0:442 'inF1' (temp float) -0:442 'inFV0' (temp 3-component vector of float) -0:442 'inFV1' (temp 3-component vector of float) -0:442 'inFM0' (temp 3X3 matrix of float) -0:442 'inFM1' (temp 3X3 matrix of float) +0:442 'inF0' (in float) +0:442 'inF1' (in float) +0:442 'inFV0' (in 3-component vector of float) +0:442 'inFV1' (in 3-component vector of float) +0:442 'inFM0' (in 3X3 matrix of float) +0:442 'inFM1' (in 3X3 matrix of float) 0:? Sequence 0:443 move second child to first child (temp float) 0:443 'r0' (temp float) 0:443 component-wise multiply (temp float) -0:443 'inF0' (temp float) -0:443 'inF1' (temp float) +0:443 'inF0' (in float) +0:443 'inF1' (in float) 0:443 move second child to first child (temp 3-component vector of float) 0:443 'r1' (temp 3-component vector of float) 0:443 vector-scale (temp 3-component vector of float) -0:443 'inFV0' (temp 3-component vector of float) -0:443 'inF0' (temp float) +0:443 'inFV0' (in 3-component vector of float) +0:443 'inF0' (in float) 0:443 move second child to first child (temp 3-component vector of float) 0:443 'r2' (temp 3-component vector of float) 0:443 vector-scale (temp 3-component vector of float) -0:443 'inF0' (temp float) -0:443 'inFV0' (temp 3-component vector of float) +0:443 'inF0' (in float) +0:443 'inFV0' (in 3-component vector of float) 0:443 move second child to first child (temp float) 0:443 'r3' (temp float) 0:443 dot-product (global float) -0:443 'inFV0' (temp 3-component vector of float) -0:443 'inFV1' (temp 3-component vector of float) +0:443 'inFV0' (in 3-component vector of float) +0:443 'inFV1' (in 3-component vector of float) 0:443 move second child to first child (temp 3-component vector of float) 0:443 'r4' (temp 3-component vector of float) 0:443 matrix-times-vector (temp 3-component vector of float) -0:443 'inFM0' (temp 3X3 matrix of float) -0:443 'inFV0' (temp 3-component vector of float) +0:443 'inFM0' (in 3X3 matrix of float) +0:443 'inFV0' (in 3-component vector of float) 0:443 move second child to first child (temp 3-component vector of float) 0:443 'r5' (temp 3-component vector of float) 0:443 vector-times-matrix (temp 3-component vector of float) -0:443 'inFV0' (temp 3-component vector of float) -0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inFV0' (in 3-component vector of float) +0:443 'inFM0' (in 3X3 matrix of float) 0:443 move second child to first child (temp 3X3 matrix of float) 0:443 'r6' (temp 3X3 matrix of float) 0:443 matrix-scale (temp 3X3 matrix of float) -0:443 'inFM0' (temp 3X3 matrix of float) -0:443 'inF0' (temp float) +0:443 'inFM0' (in 3X3 matrix of float) +0:443 'inF0' (in float) 0:443 move second child to first child (temp 3X3 matrix of float) 0:443 'r7' (temp 3X3 matrix of float) 0:443 matrix-scale (temp 3X3 matrix of float) -0:443 'inF0' (temp float) -0:443 'inFM0' (temp 3X3 matrix of float) +0:443 'inF0' (in float) +0:443 'inFM0' (in 3X3 matrix of float) 0:443 move second child to first child (temp 3X3 matrix of float) 0:443 'r8' (temp 3X3 matrix of float) 0:443 matrix-multiply (temp 3X3 matrix of float) -0:443 'inFM0' (temp 3X3 matrix of float) -0:443 'inFM1' (temp 3X3 matrix of float) +0:443 'inFM0' (in 3X3 matrix of float) +0:443 'inFM1' (in 3X3 matrix of float) 0:452 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:449 Function Parameters: -0:449 'inF0' (temp float) -0:449 'inF1' (temp float) -0:449 'inFV0' (temp 4-component vector of float) -0:449 'inFV1' (temp 4-component vector of float) -0:449 'inFM0' (temp 4X4 matrix of float) -0:449 'inFM1' (temp 4X4 matrix of float) +0:449 'inF0' (in float) +0:449 'inF1' (in float) +0:449 'inFV0' (in 4-component vector of float) +0:449 'inFV1' (in 4-component vector of float) +0:449 'inFM0' (in 4X4 matrix of float) +0:449 'inFM1' (in 4X4 matrix of float) 0:? Sequence 0:450 move second child to first child (temp float) 0:450 'r0' (temp float) 0:450 component-wise multiply (temp float) -0:450 'inF0' (temp float) -0:450 'inF1' (temp float) +0:450 'inF0' (in float) +0:450 'inF1' (in float) 0:450 move second child to first child (temp 4-component vector of float) 0:450 'r1' (temp 4-component vector of float) 0:450 vector-scale (temp 4-component vector of float) -0:450 'inFV0' (temp 4-component vector of float) -0:450 'inF0' (temp float) +0:450 'inFV0' (in 4-component vector of float) +0:450 'inF0' (in float) 0:450 move second child to first child (temp 4-component vector of float) 0:450 'r2' (temp 4-component vector of float) 0:450 vector-scale (temp 4-component vector of float) -0:450 'inF0' (temp float) -0:450 'inFV0' (temp 4-component vector of float) +0:450 'inF0' (in float) +0:450 'inFV0' (in 4-component vector of float) 0:450 move second child to first child (temp float) 0:450 'r3' (temp float) 0:450 dot-product (global float) -0:450 'inFV0' (temp 4-component vector of float) -0:450 'inFV1' (temp 4-component vector of float) +0:450 'inFV0' (in 4-component vector of float) +0:450 'inFV1' (in 4-component vector of float) 0:450 move second child to first child (temp 4-component vector of float) 0:450 'r4' (temp 4-component vector of float) 0:450 matrix-times-vector (temp 4-component vector of float) -0:450 'inFM0' (temp 4X4 matrix of float) -0:450 'inFV0' (temp 4-component vector of float) +0:450 'inFM0' (in 4X4 matrix of float) +0:450 'inFV0' (in 4-component vector of float) 0:450 move second child to first child (temp 4-component vector of float) 0:450 'r5' (temp 4-component vector of float) 0:450 vector-times-matrix (temp 4-component vector of float) -0:450 'inFV0' (temp 4-component vector of float) -0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inFV0' (in 4-component vector of float) +0:450 'inFM0' (in 4X4 matrix of float) 0:450 move second child to first child (temp 4X4 matrix of float) 0:450 'r6' (temp 4X4 matrix of float) 0:450 matrix-scale (temp 4X4 matrix of float) -0:450 'inFM0' (temp 4X4 matrix of float) -0:450 'inF0' (temp float) +0:450 'inFM0' (in 4X4 matrix of float) +0:450 'inF0' (in float) 0:450 move second child to first child (temp 4X4 matrix of float) 0:450 'r7' (temp 4X4 matrix of float) 0:450 matrix-scale (temp 4X4 matrix of float) -0:450 'inF0' (temp float) -0:450 'inFM0' (temp 4X4 matrix of float) +0:450 'inF0' (in float) +0:450 'inFM0' (in 4X4 matrix of float) 0:450 move second child to first child (temp 4X4 matrix of float) 0:450 'r8' (temp 4X4 matrix of float) 0:450 matrix-multiply (temp 4X4 matrix of float) -0:450 'inFM0' (temp 4X4 matrix of float) -0:450 'inFM1' (temp 4X4 matrix of float) +0:450 'inFM0' (in 4X4 matrix of float) +0:450 'inFM1' (in 4X4 matrix of float) 0:? Linker Objects 0:? 'gs_ua' (temp uint) 0:? 'gs_ub' (temp uint) @@ -2897,13 +2897,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1253 +// Id's are bound by 1264 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 48 67 73 80 195 213 219 226 366 384 390 397 539 557 563 570 718 732 747 856 870 885 997 1011 1026 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -2928,77 +2928,77 @@ gl_FragCoord origin is upper left Name 42 "inFV1" Name 43 "inFM0" Name 44 "inFM1" - Name 47 "inF0" - Name 66 "inU0" - Name 72 "inF1" - Name 79 "inF2" - Name 123 "ResType" - Name 193 "inF0" - Name 211 "inU0" - Name 217 "inF1" - Name 224 "inF2" - Name 280 "ResType" - Name 363 "inF0" - Name 381 "inU0" - Name 387 "inF1" - Name 394 "inF2" - Name 453 "ResType" - Name 535 "inF0" - Name 553 "inU0" - Name 559 "inF1" - Name 566 "inF2" - Name 630 "ResType" - Name 713 "inF0" - Name 727 "inF1" - Name 742 "inF2" - Name 785 "ResType" - Name 850 "inF0" - Name 864 "inF1" - Name 879 "inF2" - Name 925 "ResType" - Name 990 "inF0" - Name 1004 "inF1" - Name 1019 "inF2" - Name 1068 "ResType" - Name 1133 "r0" - Name 1137 "r1" - Name 1141 "r2" - Name 1145 "r3" - Name 1149 "r4" - Name 1153 "r5" - Name 1157 "r6" - Name 1161 "r7" - Name 1165 "r8" - Name 1169 "r0" - Name 1173 "r1" - Name 1177 "r2" - Name 1181 "r3" - Name 1185 "r4" - Name 1189 "r5" - Name 1193 "r6" - Name 1197 "r7" - Name 1201 "r8" - Name 1205 "r0" - Name 1209 "r1" - Name 1213 "r2" - Name 1217 "r3" - Name 1221 "r4" - Name 1225 "r5" - Name 1229 "r6" - Name 1233 "r7" - Name 1237 "r8" - Name 1241 "gs_ua" - Name 1242 "gs_ub" - Name 1243 "gs_uc" - Name 1244 "gs_ua2" - Name 1245 "gs_ub2" - Name 1246 "gs_uc2" - Name 1247 "gs_ua3" - Name 1248 "gs_ub3" - Name 1249 "gs_uc3" - Name 1250 "gs_ua4" - Name 1251 "gs_ub4" - Name 1252 "gs_uc4" + Name 48 "inF0" + Name 67 "inU0" + Name 73 "inF1" + Name 80 "inF2" + Name 124 "ResType" + Name 195 "inF0" + Name 213 "inU0" + Name 219 "inF1" + Name 226 "inF2" + Name 282 "ResType" + Name 366 "inF0" + Name 384 "inU0" + Name 390 "inF1" + Name 397 "inF2" + Name 456 "ResType" + Name 539 "inF0" + Name 557 "inU0" + Name 563 "inF1" + Name 570 "inF2" + Name 634 "ResType" + Name 718 "inF0" + Name 732 "inF1" + Name 747 "inF2" + Name 790 "ResType" + Name 856 "inF0" + Name 870 "inF1" + Name 885 "inF2" + Name 931 "ResType" + Name 997 "inF0" + Name 1011 "inF1" + Name 1026 "inF2" + Name 1075 "ResType" + Name 1140 "r0" + Name 1144 "r1" + Name 1148 "r2" + Name 1152 "r3" + Name 1156 "r4" + Name 1160 "r5" + Name 1164 "r6" + Name 1168 "r7" + Name 1172 "r8" + Name 1176 "r0" + Name 1180 "r1" + Name 1184 "r2" + Name 1188 "r3" + Name 1192 "r4" + Name 1196 "r5" + Name 1200 "r6" + Name 1204 "r7" + Name 1208 "r8" + Name 1212 "r0" + Name 1216 "r1" + Name 1220 "r2" + Name 1224 "r3" + Name 1228 "r4" + Name 1232 "r5" + Name 1236 "r6" + Name 1240 "r7" + Name 1244 "r8" + Name 1249 "gs_ua" + Name 1250 "gs_ub" + Name 1251 "gs_uc" + Name 1253 "gs_ua2" + Name 1254 "gs_ub2" + Name 1255 "gs_uc2" + Name 1257 "gs_ua3" + Name 1258 "gs_ub3" + Name 1259 "gs_uc3" + Name 1261 "gs_ua4" + Name 1262 "gs_ub4" + Name 1263 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -3018,228 +3018,239 @@ gl_FragCoord origin is upper left 36: TypeMatrix 34(fvec4) 4 37: TypePointer Function 36 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr) - 49: TypeBool - 60: TypeInt 32 1 - 63: TypeInt 32 0 - 65: TypePointer Function 63(int) - 83: 6(float) Constant 0 - 92: 63(int) Constant 7 - 112: 60(int) Constant 7 - 123(ResType): TypeStruct 6(float) 60(int) - 140: 6(float) Constant 1050288283 - 155: 6(float) Constant 1065353216 - 158: 63(int) Constant 2 - 205: TypeVector 60(int) 2 - 208: TypeVector 63(int) 2 - 210: TypePointer Function 208(ivec2) - 228: 8(fvec2) ConstantComposite 83 83 - 229: TypeVector 49(bool) 2 - 239: 63(int) Constant 3 - 240: 208(ivec2) ConstantComposite 92 239 - 280(ResType): TypeStruct 8(fvec2) 205(ivec2) - 323: 6(float) Constant 1073741824 - 325: 63(int) Constant 1 - 326: 208(ivec2) ConstantComposite 325 158 - 361: 8(fvec2) ConstantComposite 155 323 - 375: TypeVector 60(int) 3 - 378: TypeVector 63(int) 3 - 380: TypePointer Function 378(ivec3) - 398: 21(fvec3) ConstantComposite 83 83 83 - 399: TypeVector 49(bool) 3 - 409: 63(int) Constant 5 - 410: 378(ivec3) ConstantComposite 92 239 409 - 453(ResType): TypeStruct 21(fvec3) 375(ivec3) - 497: 378(ivec3) ConstantComposite 325 158 239 - 532: 6(float) Constant 1077936128 - 533: 21(fvec3) ConstantComposite 155 323 532 - 547: TypeVector 60(int) 4 - 550: TypeVector 63(int) 4 - 552: TypePointer Function 550(ivec4) - 570: 34(fvec4) ConstantComposite 83 83 83 83 - 571: TypeVector 49(bool) 4 - 581: 550(ivec4) ConstantComposite 92 239 409 158 - 630(ResType): TypeStruct 34(fvec4) 547(ivec4) - 674: 63(int) Constant 4 - 675: 550(ivec4) ConstantComposite 325 158 239 674 - 710: 6(float) Constant 1082130432 - 711: 34(fvec4) ConstantComposite 155 323 532 710 - 733: 10 ConstantComposite 228 228 - 734: TypeMatrix 229(bvec2) 2 - 785(ResType): TypeStruct 10 205(ivec2) - 847: 8(fvec2) ConstantComposite 323 323 - 848: 10 ConstantComposite 847 847 - 870: 23 ConstantComposite 398 398 398 - 871: TypeMatrix 399(bvec3) 3 - 925(ResType): TypeStruct 23 375(ivec3) - 987: 21(fvec3) ConstantComposite 532 532 532 - 988: 23 ConstantComposite 987 987 987 - 1010: 36 ConstantComposite 570 570 570 570 - 1011: TypeMatrix 571(bvec4) 4 - 1068(ResType): TypeStruct 36 547(ivec4) - 1130: 34(fvec4) ConstantComposite 710 710 710 710 - 1131: 36 ConstantComposite 1130 1130 1130 1130 + 47: TypePointer Input 6(float) + 48(inF0): 47(ptr) Variable Input + 50: TypeBool + 61: TypeInt 32 1 + 64: TypeInt 32 0 + 66: TypePointer Input 64(int) + 67(inU0): 66(ptr) Variable Input + 73(inF1): 47(ptr) Variable Input + 80(inF2): 47(ptr) Variable Input + 84: 6(float) Constant 0 + 93: 64(int) Constant 7 + 113: 61(int) Constant 7 + 124(ResType): TypeStruct 6(float) 61(int) + 141: 6(float) Constant 1050288283 + 156: 6(float) Constant 1065353216 + 159: 64(int) Constant 2 + 194: TypePointer Input 8(fvec2) + 195(inF0): 194(ptr) Variable Input + 207: TypeVector 61(int) 2 + 210: TypeVector 64(int) 2 + 212: TypePointer Input 210(ivec2) + 213(inU0): 212(ptr) Variable Input + 219(inF1): 194(ptr) Variable Input + 226(inF2): 194(ptr) Variable Input + 230: 8(fvec2) ConstantComposite 84 84 + 231: TypeVector 50(bool) 2 + 241: 64(int) Constant 3 + 242: 210(ivec2) ConstantComposite 93 241 + 282(ResType): TypeStruct 8(fvec2) 207(ivec2) + 325: 6(float) Constant 1073741824 + 327: 64(int) Constant 1 + 328: 210(ivec2) ConstantComposite 327 159 + 363: 8(fvec2) ConstantComposite 156 325 + 365: TypePointer Input 21(fvec3) + 366(inF0): 365(ptr) Variable Input + 378: TypeVector 61(int) 3 + 381: TypeVector 64(int) 3 + 383: TypePointer Input 381(ivec3) + 384(inU0): 383(ptr) Variable Input + 390(inF1): 365(ptr) Variable Input + 397(inF2): 365(ptr) Variable Input + 401: 21(fvec3) ConstantComposite 84 84 84 + 402: TypeVector 50(bool) 3 + 412: 64(int) Constant 5 + 413: 381(ivec3) ConstantComposite 93 241 412 + 456(ResType): TypeStruct 21(fvec3) 378(ivec3) + 500: 381(ivec3) ConstantComposite 327 159 241 + 535: 6(float) Constant 1077936128 + 536: 21(fvec3) ConstantComposite 156 325 535 + 538: TypePointer Input 34(fvec4) + 539(inF0): 538(ptr) Variable Input + 551: TypeVector 61(int) 4 + 554: TypeVector 64(int) 4 + 556: TypePointer Input 554(ivec4) + 557(inU0): 556(ptr) Variable Input + 563(inF1): 538(ptr) Variable Input + 570(inF2): 538(ptr) Variable Input + 574: 34(fvec4) ConstantComposite 84 84 84 84 + 575: TypeVector 50(bool) 4 + 585: 554(ivec4) ConstantComposite 93 241 412 159 + 634(ResType): TypeStruct 34(fvec4) 551(ivec4) + 678: 64(int) Constant 4 + 679: 554(ivec4) ConstantComposite 327 159 241 678 + 714: 6(float) Constant 1082130432 + 715: 34(fvec4) ConstantComposite 156 325 535 714 + 717: TypePointer Input 10 + 718(inF0): 717(ptr) Variable Input + 732(inF1): 717(ptr) Variable Input + 738: 10 ConstantComposite 230 230 + 739: TypeMatrix 231(bvec2) 2 + 747(inF2): 717(ptr) Variable Input + 790(ResType): TypeStruct 10 207(ivec2) + 852: 8(fvec2) ConstantComposite 325 325 + 853: 10 ConstantComposite 852 852 + 855: TypePointer Input 23 + 856(inF0): 855(ptr) Variable Input + 870(inF1): 855(ptr) Variable Input + 876: 23 ConstantComposite 401 401 401 + 877: TypeMatrix 402(bvec3) 3 + 885(inF2): 855(ptr) Variable Input + 931(ResType): TypeStruct 23 378(ivec3) + 993: 21(fvec3) ConstantComposite 535 535 535 + 994: 23 ConstantComposite 993 993 993 + 996: TypePointer Input 36 + 997(inF0): 996(ptr) Variable Input + 1011(inF1): 996(ptr) Variable Input + 1017: 36 ConstantComposite 574 574 574 574 + 1018: TypeMatrix 575(bvec4) 4 + 1026(inF2): 996(ptr) Variable Input + 1075(ResType): TypeStruct 36 551(ivec4) + 1137: 34(fvec4) ConstantComposite 714 714 714 714 + 1138: 36 ConstantComposite 1137 1137 1137 1137 + 1248: TypePointer Function 64(int) + 1252: TypePointer Function 210(ivec2) + 1256: TypePointer Function 381(ivec3) + 1260: TypePointer Function 554(ivec4) 4(PixelShaderFunction): 2 Function None 3 5: Label - 47(inF0): 7(ptr) Variable Function - 66(inU0): 65(ptr) Variable Function - 72(inF1): 7(ptr) Variable Function - 79(inF2): 7(ptr) Variable Function - 193(inF0): 9(ptr) Variable Function - 211(inU0): 210(ptr) Variable Function - 217(inF1): 9(ptr) Variable Function - 224(inF2): 9(ptr) Variable Function - 363(inF0): 22(ptr) Variable Function - 381(inU0): 380(ptr) Variable Function - 387(inF1): 22(ptr) Variable Function - 394(inF2): 22(ptr) Variable Function - 535(inF0): 35(ptr) Variable Function - 553(inU0): 552(ptr) Variable Function - 559(inF1): 35(ptr) Variable Function - 566(inF2): 35(ptr) Variable Function - 713(inF0): 11(ptr) Variable Function - 727(inF1): 11(ptr) Variable Function - 742(inF2): 11(ptr) Variable Function - 850(inF0): 24(ptr) Variable Function - 864(inF1): 24(ptr) Variable Function - 879(inF2): 24(ptr) Variable Function - 990(inF0): 37(ptr) Variable Function - 1004(inF1): 37(ptr) Variable Function - 1019(inF2): 37(ptr) Variable Function - 48: 6(float) Load 47(inF0) - 50: 49(bool) All 48 - 51: 6(float) Load 47(inF0) - 52: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 51 - 53: 6(float) Load 47(inF0) - 54: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 53 - 55: 6(float) Load 47(inF0) - 56: 49(bool) Any 55 - 57: 6(float) Load 47(inF0) - 58: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 57 - 59: 6(float) Load 47(inF0) - 61: 60(int) Bitcast 59 - 62: 6(float) Load 47(inF0) - 64: 63(int) Bitcast 62 - 67: 63(int) Load 66(inU0) - 68: 6(float) Bitcast 67 - 69: 6(float) Load 47(inF0) - 70: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 69 - 71: 6(float) Load 47(inF0) - 73: 6(float) Load 72(inF1) - 74: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 71 73 - 75: 6(float) Load 47(inF0) - 76: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 75 - 77: 6(float) Load 47(inF0) - 78: 6(float) Load 72(inF1) - 80: 6(float) Load 79(inF2) - 81: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 77 78 80 - 82: 6(float) Load 47(inF0) - 84: 49(bool) FOrdLessThan 82 83 - SelectionMerge 86 None - BranchConditional 84 85 86 - 85: Label + 49: 6(float) Load 48(inF0) + 51: 50(bool) All 49 + 52: 6(float) Load 48(inF0) + 53: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 52 + 54: 6(float) Load 48(inF0) + 55: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 54 + 56: 6(float) Load 48(inF0) + 57: 50(bool) Any 56 + 58: 6(float) Load 48(inF0) + 59: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 58 + 60: 6(float) Load 48(inF0) + 62: 61(int) Bitcast 60 + 63: 6(float) Load 48(inF0) + 65: 64(int) Bitcast 63 + 68: 64(int) Load 67(inU0) + 69: 6(float) Bitcast 68 + 70: 6(float) Load 48(inF0) + 71: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 70 + 72: 6(float) Load 48(inF0) + 74: 6(float) Load 73(inF1) + 75: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 72 74 + 76: 6(float) Load 48(inF0) + 77: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 76 + 78: 6(float) Load 48(inF0) + 79: 6(float) Load 73(inF1) + 81: 6(float) Load 80(inF2) + 82: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 78 79 81 + 83: 6(float) Load 48(inF0) + 85: 50(bool) FOrdLessThan 83 84 + SelectionMerge 87 None + BranchConditional 85 86 87 + 86: Label Kill - 86: Label - 88: 6(float) Load 47(inF0) - 89: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 88 - 90: 6(float) Load 47(inF0) - 91: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 90 - 93: 63(int) BitCount 92 - 94: 6(float) Load 47(inF0) - 95: 6(float) DPdx 94 - 96: 6(float) Load 47(inF0) - 97: 6(float) DPdxCoarse 96 - 98: 6(float) Load 47(inF0) - 99: 6(float) DPdxFine 98 - 100: 6(float) Load 47(inF0) - 101: 6(float) DPdy 100 - 102: 6(float) Load 47(inF0) - 103: 6(float) DPdyCoarse 102 - 104: 6(float) Load 47(inF0) - 105: 6(float) DPdyFine 104 - 106: 6(float) Load 47(inF0) - 107: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 106 - 108: 6(float) Load 47(inF0) - 109: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 108 - 110: 6(float) Load 47(inF0) - 111: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 110 - 113: 60(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 112 - 114: 60(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 112 - 115: 6(float) Load 47(inF0) - 116: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 115 - 117: 6(float) Load 47(inF0) - 118: 6(float) Load 72(inF1) - 119: 6(float) FMod 117 118 - 120: 6(float) Load 47(inF0) - 121: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 120 - 122: 6(float) Load 47(inF0) - 124:123(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122 - 125: 60(int) CompositeExtract 124 1 - Store 72(inF1) 125 - 126: 6(float) CompositeExtract 124 0 - 127: 6(float) Load 47(inF0) - 128: 6(float) Fwidth 127 - 129: 6(float) Load 47(inF0) - 130: 49(bool) IsInf 129 - 131: 6(float) Load 47(inF0) - 132: 49(bool) IsNan 131 - 133: 6(float) Load 47(inF0) - 134: 6(float) Load 72(inF1) - 135: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 133 134 - 136: 6(float) Load 47(inF0) - 137: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 136 - 138: 6(float) Load 47(inF0) - 139: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 138 - 141: 6(float) FMul 139 140 - 142: 6(float) Load 47(inF0) - 143: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 142 - 144: 6(float) Load 47(inF0) - 145: 6(float) Load 72(inF1) - 146: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 144 145 - 147: 6(float) Load 47(inF0) - 148: 6(float) Load 72(inF1) - 149: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 147 148 - 150: 6(float) Load 47(inF0) - 151: 6(float) Load 72(inF1) - 152: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 150 151 - 153: 6(float) Load 47(inF0) - 154: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 153 - 156: 6(float) Load 47(inF0) - 157: 6(float) FDiv 155 156 - 159: 63(int) BitReverse 158 - 160: 6(float) Load 47(inF0) - 161: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 160 - 162: 6(float) Load 47(inF0) - 163: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 162 - 164: 6(float) Load 47(inF0) - 165: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 164 83 155 - 166: 6(float) Load 47(inF0) - 167: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 166 - 168: 6(float) Load 47(inF0) - 169: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 168 - 170: 6(float) Load 47(inF0) - 171: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 170 - Store 72(inF1) 171 - 172: 6(float) Load 47(inF0) - 173: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 172 - Store 79(inF2) 173 - 174: 6(float) Load 47(inF0) - 175: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 174 - 176: 6(float) Load 47(inF0) - 177: 6(float) Load 72(inF1) - 178: 6(float) Load 79(inF2) - 179: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 176 177 178 - 180: 6(float) Load 47(inF0) - 181: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 180 - 182: 6(float) Load 47(inF0) - 183: 6(float) Load 72(inF1) - 184: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 182 183 - 185: 6(float) Load 47(inF0) - 186: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 185 - 187: 6(float) Load 47(inF0) - 188: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 187 - 189: 6(float) Load 47(inF0) - 190: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 189 - ReturnValue 83 + 87: Label + 89: 6(float) Load 48(inF0) + 90: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 89 + 91: 6(float) Load 48(inF0) + 92: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 91 + 94: 64(int) BitCount 93 + 95: 6(float) Load 48(inF0) + 96: 6(float) DPdx 95 + 97: 6(float) Load 48(inF0) + 98: 6(float) DPdxCoarse 97 + 99: 6(float) Load 48(inF0) + 100: 6(float) DPdxFine 99 + 101: 6(float) Load 48(inF0) + 102: 6(float) DPdy 101 + 103: 6(float) Load 48(inF0) + 104: 6(float) DPdyCoarse 103 + 105: 6(float) Load 48(inF0) + 106: 6(float) DPdyFine 105 + 107: 6(float) Load 48(inF0) + 108: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 107 + 109: 6(float) Load 48(inF0) + 110: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 109 + 111: 6(float) Load 48(inF0) + 112: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 111 + 114: 61(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 113 + 115: 61(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 113 + 116: 6(float) Load 48(inF0) + 117: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 116 + 118: 6(float) Load 48(inF0) + 119: 6(float) Load 73(inF1) + 120: 6(float) FMod 118 119 + 121: 6(float) Load 48(inF0) + 122: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 121 + 123: 6(float) Load 48(inF0) + 125:124(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 123 + 126: 61(int) CompositeExtract 125 1 + Store 73(inF1) 126 + 127: 6(float) CompositeExtract 125 0 + 128: 6(float) Load 48(inF0) + 129: 6(float) Fwidth 128 + 130: 6(float) Load 48(inF0) + 131: 50(bool) IsInf 130 + 132: 6(float) Load 48(inF0) + 133: 50(bool) IsNan 132 + 134: 6(float) Load 48(inF0) + 135: 6(float) Load 73(inF1) + 136: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 134 135 + 137: 6(float) Load 48(inF0) + 138: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 137 + 139: 6(float) Load 48(inF0) + 140: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 139 + 142: 6(float) FMul 140 141 + 143: 6(float) Load 48(inF0) + 144: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 143 + 145: 6(float) Load 48(inF0) + 146: 6(float) Load 73(inF1) + 147: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 145 146 + 148: 6(float) Load 48(inF0) + 149: 6(float) Load 73(inF1) + 150: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 148 149 + 151: 6(float) Load 48(inF0) + 152: 6(float) Load 73(inF1) + 153: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 151 152 + 154: 6(float) Load 48(inF0) + 155: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 154 + 157: 6(float) Load 48(inF0) + 158: 6(float) FDiv 156 157 + 160: 64(int) BitReverse 159 + 161: 6(float) Load 48(inF0) + 162: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 161 + 163: 6(float) Load 48(inF0) + 164: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 163 + 165: 6(float) Load 48(inF0) + 166: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 165 84 156 + 167: 6(float) Load 48(inF0) + 168: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 167 + 169: 6(float) Load 48(inF0) + 170: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 169 + 171: 6(float) Load 48(inF0) + 172: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 171 + Store 73(inF1) 172 + 173: 6(float) Load 48(inF0) + 174: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 173 + Store 80(inF2) 174 + 175: 6(float) Load 48(inF0) + 176: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 175 + 177: 6(float) Load 48(inF0) + 178: 6(float) Load 73(inF1) + 179: 6(float) Load 80(inF2) + 180: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 177 178 179 + 181: 6(float) Load 48(inF0) + 182: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 181 + 183: 6(float) Load 48(inF0) + 184: 6(float) Load 73(inF1) + 185: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 183 184 + 186: 6(float) Load 48(inF0) + 187: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 186 + 188: 6(float) Load 48(inF0) + 189: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 188 + 190: 6(float) Load 48(inF0) + 191: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 190 + ReturnValue 84 FunctionEnd 19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12 13(inF0): 7(ptr) FunctionParameter @@ -3249,51 +3260,51 @@ gl_FragCoord origin is upper left 17(inFM0): 11(ptr) FunctionParameter 18(inFM1): 11(ptr) FunctionParameter 20: Label - 1133(r0): 7(ptr) Variable Function - 1137(r1): 9(ptr) Variable Function - 1141(r2): 9(ptr) Variable Function - 1145(r3): 7(ptr) Variable Function - 1149(r4): 9(ptr) Variable Function - 1153(r5): 9(ptr) Variable Function - 1157(r6): 11(ptr) Variable Function - 1161(r7): 11(ptr) Variable Function - 1165(r8): 11(ptr) Variable Function - 1134: 6(float) Load 13(inF0) - 1135: 6(float) Load 14(inF1) - 1136: 6(float) FMul 1134 1135 - Store 1133(r0) 1136 - 1138: 8(fvec2) Load 15(inFV0) - 1139: 6(float) Load 13(inF0) - 1140: 8(fvec2) VectorTimesScalar 1138 1139 - Store 1137(r1) 1140 - 1142: 6(float) Load 13(inF0) - 1143: 8(fvec2) Load 15(inFV0) - 1144: 8(fvec2) VectorTimesScalar 1143 1142 - Store 1141(r2) 1144 - 1146: 8(fvec2) Load 15(inFV0) - 1147: 8(fvec2) Load 16(inFV1) - 1148: 6(float) Dot 1146 1147 - Store 1145(r3) 1148 - 1150: 10 Load 17(inFM0) - 1151: 8(fvec2) Load 15(inFV0) - 1152: 8(fvec2) MatrixTimesVector 1150 1151 - Store 1149(r4) 1152 - 1154: 8(fvec2) Load 15(inFV0) - 1155: 10 Load 17(inFM0) - 1156: 8(fvec2) VectorTimesMatrix 1154 1155 - Store 1153(r5) 1156 - 1158: 10 Load 17(inFM0) - 1159: 6(float) Load 13(inF0) - 1160: 10 MatrixTimesScalar 1158 1159 - Store 1157(r6) 1160 - 1162: 6(float) Load 13(inF0) - 1163: 10 Load 17(inFM0) - 1164: 10 MatrixTimesScalar 1163 1162 - Store 1161(r7) 1164 - 1166: 10 Load 17(inFM0) - 1167: 10 Load 18(inFM1) - 1168: 10 MatrixTimesMatrix 1166 1167 - Store 1165(r8) 1168 + 1140(r0): 7(ptr) Variable Function + 1144(r1): 9(ptr) Variable Function + 1148(r2): 9(ptr) Variable Function + 1152(r3): 7(ptr) Variable Function + 1156(r4): 9(ptr) Variable Function + 1160(r5): 9(ptr) Variable Function + 1164(r6): 11(ptr) Variable Function + 1168(r7): 11(ptr) Variable Function + 1172(r8): 11(ptr) Variable Function + 1141: 6(float) Load 13(inF0) + 1142: 6(float) Load 14(inF1) + 1143: 6(float) FMul 1141 1142 + Store 1140(r0) 1143 + 1145: 8(fvec2) Load 15(inFV0) + 1146: 6(float) Load 13(inF0) + 1147: 8(fvec2) VectorTimesScalar 1145 1146 + Store 1144(r1) 1147 + 1149: 6(float) Load 13(inF0) + 1150: 8(fvec2) Load 15(inFV0) + 1151: 8(fvec2) VectorTimesScalar 1150 1149 + Store 1148(r2) 1151 + 1153: 8(fvec2) Load 15(inFV0) + 1154: 8(fvec2) Load 16(inFV1) + 1155: 6(float) Dot 1153 1154 + Store 1152(r3) 1155 + 1157: 10 Load 17(inFM0) + 1158: 8(fvec2) Load 15(inFV0) + 1159: 8(fvec2) MatrixTimesVector 1157 1158 + Store 1156(r4) 1159 + 1161: 8(fvec2) Load 15(inFV0) + 1162: 10 Load 17(inFM0) + 1163: 8(fvec2) VectorTimesMatrix 1161 1162 + Store 1160(r5) 1163 + 1165: 10 Load 17(inFM0) + 1166: 6(float) Load 13(inF0) + 1167: 10 MatrixTimesScalar 1165 1166 + Store 1164(r6) 1167 + 1169: 6(float) Load 13(inF0) + 1170: 10 Load 17(inFM0) + 1171: 10 MatrixTimesScalar 1170 1169 + Store 1168(r7) 1171 + 1173: 10 Load 17(inFM0) + 1174: 10 Load 18(inFM1) + 1175: 10 MatrixTimesMatrix 1173 1174 + Store 1172(r8) 1175 Return FunctionEnd 32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 @@ -3304,51 +3315,51 @@ gl_FragCoord origin is upper left 30(inFM0): 24(ptr) FunctionParameter 31(inFM1): 24(ptr) FunctionParameter 33: Label - 1169(r0): 7(ptr) Variable Function - 1173(r1): 22(ptr) Variable Function - 1177(r2): 22(ptr) Variable Function - 1181(r3): 7(ptr) Variable Function - 1185(r4): 22(ptr) Variable Function - 1189(r5): 22(ptr) Variable Function - 1193(r6): 24(ptr) Variable Function - 1197(r7): 24(ptr) Variable Function - 1201(r8): 24(ptr) Variable Function - 1170: 6(float) Load 26(inF0) - 1171: 6(float) Load 27(inF1) - 1172: 6(float) FMul 1170 1171 - Store 1169(r0) 1172 - 1174: 21(fvec3) Load 28(inFV0) - 1175: 6(float) Load 26(inF0) - 1176: 21(fvec3) VectorTimesScalar 1174 1175 - Store 1173(r1) 1176 - 1178: 6(float) Load 26(inF0) - 1179: 21(fvec3) Load 28(inFV0) - 1180: 21(fvec3) VectorTimesScalar 1179 1178 - Store 1177(r2) 1180 - 1182: 21(fvec3) Load 28(inFV0) - 1183: 21(fvec3) Load 29(inFV1) - 1184: 6(float) Dot 1182 1183 - Store 1181(r3) 1184 - 1186: 23 Load 30(inFM0) - 1187: 21(fvec3) Load 28(inFV0) - 1188: 21(fvec3) MatrixTimesVector 1186 1187 - Store 1185(r4) 1188 - 1190: 21(fvec3) Load 28(inFV0) - 1191: 23 Load 30(inFM0) - 1192: 21(fvec3) VectorTimesMatrix 1190 1191 - Store 1189(r5) 1192 - 1194: 23 Load 30(inFM0) - 1195: 6(float) Load 26(inF0) - 1196: 23 MatrixTimesScalar 1194 1195 - Store 1193(r6) 1196 - 1198: 6(float) Load 26(inF0) - 1199: 23 Load 30(inFM0) - 1200: 23 MatrixTimesScalar 1199 1198 - Store 1197(r7) 1200 - 1202: 23 Load 30(inFM0) - 1203: 23 Load 31(inFM1) - 1204: 23 MatrixTimesMatrix 1202 1203 - Store 1201(r8) 1204 + 1176(r0): 7(ptr) Variable Function + 1180(r1): 22(ptr) Variable Function + 1184(r2): 22(ptr) Variable Function + 1188(r3): 7(ptr) Variable Function + 1192(r4): 22(ptr) Variable Function + 1196(r5): 22(ptr) Variable Function + 1200(r6): 24(ptr) Variable Function + 1204(r7): 24(ptr) Variable Function + 1208(r8): 24(ptr) Variable Function + 1177: 6(float) Load 26(inF0) + 1178: 6(float) Load 27(inF1) + 1179: 6(float) FMul 1177 1178 + Store 1176(r0) 1179 + 1181: 21(fvec3) Load 28(inFV0) + 1182: 6(float) Load 26(inF0) + 1183: 21(fvec3) VectorTimesScalar 1181 1182 + Store 1180(r1) 1183 + 1185: 6(float) Load 26(inF0) + 1186: 21(fvec3) Load 28(inFV0) + 1187: 21(fvec3) VectorTimesScalar 1186 1185 + Store 1184(r2) 1187 + 1189: 21(fvec3) Load 28(inFV0) + 1190: 21(fvec3) Load 29(inFV1) + 1191: 6(float) Dot 1189 1190 + Store 1188(r3) 1191 + 1193: 23 Load 30(inFM0) + 1194: 21(fvec3) Load 28(inFV0) + 1195: 21(fvec3) MatrixTimesVector 1193 1194 + Store 1192(r4) 1195 + 1197: 21(fvec3) Load 28(inFV0) + 1198: 23 Load 30(inFM0) + 1199: 21(fvec3) VectorTimesMatrix 1197 1198 + Store 1196(r5) 1199 + 1201: 23 Load 30(inFM0) + 1202: 6(float) Load 26(inF0) + 1203: 23 MatrixTimesScalar 1201 1202 + Store 1200(r6) 1203 + 1205: 6(float) Load 26(inF0) + 1206: 23 Load 30(inFM0) + 1207: 23 MatrixTimesScalar 1206 1205 + Store 1204(r7) 1207 + 1209: 23 Load 30(inFM0) + 1210: 23 Load 31(inFM1) + 1211: 23 MatrixTimesMatrix 1209 1210 + Store 1208(r8) 1211 Return FunctionEnd 45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 @@ -3359,62 +3370,62 @@ gl_FragCoord origin is upper left 43(inFM0): 37(ptr) FunctionParameter 44(inFM1): 37(ptr) FunctionParameter 46: Label - 1205(r0): 7(ptr) Variable Function - 1209(r1): 35(ptr) Variable Function - 1213(r2): 35(ptr) Variable Function - 1217(r3): 7(ptr) Variable Function - 1221(r4): 35(ptr) Variable Function - 1225(r5): 35(ptr) Variable Function - 1229(r6): 37(ptr) Variable Function - 1233(r7): 37(ptr) Variable Function - 1237(r8): 37(ptr) Variable Function - 1241(gs_ua): 65(ptr) Variable Function - 1242(gs_ub): 65(ptr) Variable Function - 1243(gs_uc): 65(ptr) Variable Function - 1244(gs_ua2): 210(ptr) Variable Function - 1245(gs_ub2): 210(ptr) Variable Function - 1246(gs_uc2): 210(ptr) Variable Function - 1247(gs_ua3): 380(ptr) Variable Function - 1248(gs_ub3): 380(ptr) Variable Function - 1249(gs_uc3): 380(ptr) Variable Function - 1250(gs_ua4): 552(ptr) Variable Function - 1251(gs_ub4): 552(ptr) Variable Function - 1252(gs_uc4): 552(ptr) Variable Function - 1206: 6(float) Load 39(inF0) - 1207: 6(float) Load 40(inF1) - 1208: 6(float) FMul 1206 1207 - Store 1205(r0) 1208 - 1210: 34(fvec4) Load 41(inFV0) - 1211: 6(float) Load 39(inF0) - 1212: 34(fvec4) VectorTimesScalar 1210 1211 - Store 1209(r1) 1212 - 1214: 6(float) Load 39(inF0) - 1215: 34(fvec4) Load 41(inFV0) - 1216: 34(fvec4) VectorTimesScalar 1215 1214 - Store 1213(r2) 1216 - 1218: 34(fvec4) Load 41(inFV0) - 1219: 34(fvec4) Load 42(inFV1) - 1220: 6(float) Dot 1218 1219 - Store 1217(r3) 1220 - 1222: 36 Load 43(inFM0) - 1223: 34(fvec4) Load 41(inFV0) - 1224: 34(fvec4) MatrixTimesVector 1222 1223 - Store 1221(r4) 1224 - 1226: 34(fvec4) Load 41(inFV0) - 1227: 36 Load 43(inFM0) - 1228: 34(fvec4) VectorTimesMatrix 1226 1227 - Store 1225(r5) 1228 - 1230: 36 Load 43(inFM0) - 1231: 6(float) Load 39(inF0) - 1232: 36 MatrixTimesScalar 1230 1231 - Store 1229(r6) 1232 - 1234: 6(float) Load 39(inF0) - 1235: 36 Load 43(inFM0) - 1236: 36 MatrixTimesScalar 1235 1234 - Store 1233(r7) 1236 - 1238: 36 Load 43(inFM0) - 1239: 36 Load 44(inFM1) - 1240: 36 MatrixTimesMatrix 1238 1239 - Store 1237(r8) 1240 + 1212(r0): 7(ptr) Variable Function + 1216(r1): 35(ptr) Variable Function + 1220(r2): 35(ptr) Variable Function + 1224(r3): 7(ptr) Variable Function + 1228(r4): 35(ptr) Variable Function + 1232(r5): 35(ptr) Variable Function + 1236(r6): 37(ptr) Variable Function + 1240(r7): 37(ptr) Variable Function + 1244(r8): 37(ptr) Variable Function + 1249(gs_ua): 1248(ptr) Variable Function + 1250(gs_ub): 1248(ptr) Variable Function + 1251(gs_uc): 1248(ptr) Variable Function + 1253(gs_ua2): 1252(ptr) Variable Function + 1254(gs_ub2): 1252(ptr) Variable Function + 1255(gs_uc2): 1252(ptr) Variable Function + 1257(gs_ua3): 1256(ptr) Variable Function + 1258(gs_ub3): 1256(ptr) Variable Function + 1259(gs_uc3): 1256(ptr) Variable Function + 1261(gs_ua4): 1260(ptr) Variable Function + 1262(gs_ub4): 1260(ptr) Variable Function + 1263(gs_uc4): 1260(ptr) Variable Function + 1213: 6(float) Load 39(inF0) + 1214: 6(float) Load 40(inF1) + 1215: 6(float) FMul 1213 1214 + Store 1212(r0) 1215 + 1217: 34(fvec4) Load 41(inFV0) + 1218: 6(float) Load 39(inF0) + 1219: 34(fvec4) VectorTimesScalar 1217 1218 + Store 1216(r1) 1219 + 1221: 6(float) Load 39(inF0) + 1222: 34(fvec4) Load 41(inFV0) + 1223: 34(fvec4) VectorTimesScalar 1222 1221 + Store 1220(r2) 1223 + 1225: 34(fvec4) Load 41(inFV0) + 1226: 34(fvec4) Load 42(inFV1) + 1227: 6(float) Dot 1225 1226 + Store 1224(r3) 1227 + 1229: 36 Load 43(inFM0) + 1230: 34(fvec4) Load 41(inFV0) + 1231: 34(fvec4) MatrixTimesVector 1229 1230 + Store 1228(r4) 1231 + 1233: 34(fvec4) Load 41(inFV0) + 1234: 36 Load 43(inFM0) + 1235: 34(fvec4) VectorTimesMatrix 1233 1234 + Store 1232(r5) 1235 + 1237: 36 Load 43(inFM0) + 1238: 6(float) Load 39(inF0) + 1239: 36 MatrixTimesScalar 1237 1238 + Store 1236(r6) 1239 + 1241: 6(float) Load 39(inF0) + 1242: 36 Load 43(inFM0) + 1243: 36 MatrixTimesScalar 1242 1241 + Store 1240(r7) 1243 + 1245: 36 Load 43(inFM0) + 1246: 36 Load 44(inFM1) + 1247: 36 MatrixTimesMatrix 1245 1246 + Store 1244(r8) 1247 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 0bb1dc32..336f70d4 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -158,10 +158,10 @@ local_size = (1, 1, 1) ERROR: node is still EOpNull! 0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) -0:2 'inI0' (temp int) +0:2 'inF0' (in float) +0:2 'inF1' (in float) +0:2 'inF2' (in float) +0:2 'inI0' (in int) 0:? Sequence 0:7 Constant: 0:7 0.000000 @@ -254,10 +254,10 @@ ERROR: node is still EOpNull! 0:53 0.000000 0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:57 Function Parameters: -0:57 'inF0' (temp 1-component vector of float) -0:57 'inF1' (temp 1-component vector of float) -0:57 'inF2' (temp 1-component vector of float) -0:57 'inI0' (temp 1-component vector of int) +0:57 'inF0' (in 1-component vector of float) +0:57 'inF1' (in 1-component vector of float) +0:57 'inF2' (in 1-component vector of float) +0:57 'inI0' (in 1-component vector of int) 0:? Sequence 0:60 Constant: 0:60 0.000000 @@ -266,10 +266,10 @@ ERROR: node is still EOpNull! 0:62 0.000000 0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:66 Function Parameters: -0:66 'inF0' (temp 2-component vector of float) -0:66 'inF1' (temp 2-component vector of float) -0:66 'inF2' (temp 2-component vector of float) -0:66 'inI0' (temp 2-component vector of int) +0:66 'inF0' (in 2-component vector of float) +0:66 'inF1' (in 2-component vector of float) +0:66 'inF2' (in 2-component vector of float) +0:66 'inI0' (in 2-component vector of int) 0:? Sequence 0:69 Constant: 0:69 0.000000 @@ -351,10 +351,10 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:113 Function Parameters: -0:113 'inF0' (temp 3-component vector of float) -0:113 'inF1' (temp 3-component vector of float) -0:113 'inF2' (temp 3-component vector of float) -0:113 'inI0' (temp 3-component vector of int) +0:113 'inF0' (in 3-component vector of float) +0:113 'inF1' (in 3-component vector of float) +0:113 'inF2' (in 3-component vector of float) +0:113 'inI0' (in 3-component vector of int) 0:? Sequence 0:116 Constant: 0:116 0.000000 @@ -433,10 +433,10 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:158 Function Parameters: -0:158 'inF0' (temp 4-component vector of float) -0:158 'inF1' (temp 4-component vector of float) -0:158 'inF2' (temp 4-component vector of float) -0:158 'inI0' (temp 4-component vector of int) +0:158 'inF0' (in 4-component vector of float) +0:158 'inF1' (in 4-component vector of float) +0:158 'inF2' (in 4-component vector of float) +0:158 'inI0' (in 4-component vector of int) 0:? Sequence 0:161 Constant: 0:161 0.000000 @@ -525,10 +525,10 @@ local_size = (1, 1, 1) ERROR: node is still EOpNull! 0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) -0:2 'inI0' (temp int) +0:2 'inF0' (in float) +0:2 'inF1' (in float) +0:2 'inF2' (in float) +0:2 'inI0' (in int) 0:? Sequence 0:7 Constant: 0:7 0.000000 @@ -621,10 +621,10 @@ ERROR: node is still EOpNull! 0:53 0.000000 0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:57 Function Parameters: -0:57 'inF0' (temp 1-component vector of float) -0:57 'inF1' (temp 1-component vector of float) -0:57 'inF2' (temp 1-component vector of float) -0:57 'inI0' (temp 1-component vector of int) +0:57 'inF0' (in 1-component vector of float) +0:57 'inF1' (in 1-component vector of float) +0:57 'inF2' (in 1-component vector of float) +0:57 'inI0' (in 1-component vector of int) 0:? Sequence 0:60 Constant: 0:60 0.000000 @@ -633,10 +633,10 @@ ERROR: node is still EOpNull! 0:62 0.000000 0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:66 Function Parameters: -0:66 'inF0' (temp 2-component vector of float) -0:66 'inF1' (temp 2-component vector of float) -0:66 'inF2' (temp 2-component vector of float) -0:66 'inI0' (temp 2-component vector of int) +0:66 'inF0' (in 2-component vector of float) +0:66 'inF1' (in 2-component vector of float) +0:66 'inF2' (in 2-component vector of float) +0:66 'inI0' (in 2-component vector of int) 0:? Sequence 0:69 Constant: 0:69 0.000000 @@ -718,10 +718,10 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:113 Function Parameters: -0:113 'inF0' (temp 3-component vector of float) -0:113 'inF1' (temp 3-component vector of float) -0:113 'inF2' (temp 3-component vector of float) -0:113 'inI0' (temp 3-component vector of int) +0:113 'inF0' (in 3-component vector of float) +0:113 'inF1' (in 3-component vector of float) +0:113 'inF2' (in 3-component vector of float) +0:113 'inI0' (in 3-component vector of int) 0:? Sequence 0:116 Constant: 0:116 0.000000 @@ -800,10 +800,10 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:158 Function Parameters: -0:158 'inF0' (temp 4-component vector of float) -0:158 'inF1' (temp 4-component vector of float) -0:158 'inF2' (temp 4-component vector of float) -0:158 'inI0' (temp 4-component vector of int) +0:158 'inF0' (in 4-component vector of float) +0:158 'inF1' (in 4-component vector of float) +0:158 'inF2' (in 4-component vector of float) +0:158 'inI0' (in 4-component vector of int) 0:? Sequence 0:161 Constant: 0:161 0.000000 diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index d1f9b429..ebb651ee 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -100,10 +100,10 @@ gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) -0:2 'inI0' (temp int) +0:2 'inF0' (in float) +0:2 'inF1' (in float) +0:2 'inF2' (in float) +0:2 'inI0' (in int) 0:? Sequence 0:5 Constant: 0:5 0.000000 @@ -146,10 +146,10 @@ ERROR: node is still EOpNull! 0:32 0.000000 0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:36 Function Parameters: -0:36 'inF0' (temp 1-component vector of float) -0:36 'inF1' (temp 1-component vector of float) -0:36 'inF2' (temp 1-component vector of float) -0:36 'inI0' (temp 1-component vector of int) +0:36 'inF0' (in 1-component vector of float) +0:36 'inF1' (in 1-component vector of float) +0:36 'inF2' (in 1-component vector of float) +0:36 'inI0' (in 1-component vector of int) 0:? Sequence 0:39 Constant: 0:39 0.000000 @@ -158,10 +158,10 @@ ERROR: node is still EOpNull! 0:41 0.000000 0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:45 Function Parameters: -0:45 'inF0' (temp 2-component vector of float) -0:45 'inF1' (temp 2-component vector of float) -0:45 'inF2' (temp 2-component vector of float) -0:45 'inI0' (temp 2-component vector of int) +0:45 'inF0' (in 2-component vector of float) +0:45 'inF1' (in 2-component vector of float) +0:45 'inF2' (in 2-component vector of float) +0:45 'inI0' (in 2-component vector of int) 0:? Sequence 0:46 Constant: 0:46 0.000000 @@ -193,10 +193,10 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:63 Function Parameters: -0:63 'inF0' (temp 3-component vector of float) -0:63 'inF1' (temp 3-component vector of float) -0:63 'inF2' (temp 3-component vector of float) -0:63 'inI0' (temp 3-component vector of int) +0:63 'inF0' (in 3-component vector of float) +0:63 'inF1' (in 3-component vector of float) +0:63 'inF2' (in 3-component vector of float) +0:63 'inI0' (in 3-component vector of int) 0:? Sequence 0:64 Constant: 0:64 0.000000 @@ -225,10 +225,10 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:80 Function Parameters: -0:80 'inF0' (temp 4-component vector of float) -0:80 'inF1' (temp 4-component vector of float) -0:80 'inF2' (temp 4-component vector of float) -0:80 'inI0' (temp 4-component vector of int) +0:80 'inF0' (in 4-component vector of float) +0:80 'inF1' (in 4-component vector of float) +0:80 'inF2' (in 4-component vector of float) +0:80 'inI0' (in 4-component vector of int) 0:? Sequence 0:81 Constant: 0:81 0.000000 @@ -258,9 +258,9 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:116 Function Parameters: -0:116 'inF0' (temp 2X2 matrix of float) -0:116 'inF1' (temp 2X2 matrix of float) -0:116 'inF2' (temp 2X2 matrix of float) +0:116 'inF0' (in 2X2 matrix of float) +0:116 'inF1' (in 2X2 matrix of float) +0:116 'inF2' (in 2X2 matrix of float) 0:? Sequence 0:118 Constant: 0:118 0.000000 @@ -298,9 +298,9 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:124 Function Parameters: -0:124 'inF0' (temp 3X3 matrix of float) -0:124 'inF1' (temp 3X3 matrix of float) -0:124 'inF2' (temp 3X3 matrix of float) +0:124 'inF0' (in 3X3 matrix of float) +0:124 'inF1' (in 3X3 matrix of float) +0:124 'inF2' (in 3X3 matrix of float) 0:? Sequence 0:126 Constant: 0:126 0.000000 @@ -343,9 +343,9 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:132 Function Parameters: -0:132 'inF0' (temp 4X4 matrix of float) -0:132 'inF1' (temp 4X4 matrix of float) -0:132 'inF2' (temp 4X4 matrix of float) +0:132 'inF0' (in 4X4 matrix of float) +0:132 'inF1' (in 4X4 matrix of float) +0:132 'inF2' (in 4X4 matrix of float) 0:? Sequence 0:134 Constant: 0:134 0.000000 @@ -404,10 +404,10 @@ gl_FragCoord origin is upper left ERROR: node is still EOpNull! 0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) -0:2 'inI0' (temp int) +0:2 'inF0' (in float) +0:2 'inF1' (in float) +0:2 'inF2' (in float) +0:2 'inI0' (in int) 0:? Sequence 0:5 Constant: 0:5 0.000000 @@ -450,10 +450,10 @@ ERROR: node is still EOpNull! 0:32 0.000000 0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:36 Function Parameters: -0:36 'inF0' (temp 1-component vector of float) -0:36 'inF1' (temp 1-component vector of float) -0:36 'inF2' (temp 1-component vector of float) -0:36 'inI0' (temp 1-component vector of int) +0:36 'inF0' (in 1-component vector of float) +0:36 'inF1' (in 1-component vector of float) +0:36 'inF2' (in 1-component vector of float) +0:36 'inI0' (in 1-component vector of int) 0:? Sequence 0:39 Constant: 0:39 0.000000 @@ -462,10 +462,10 @@ ERROR: node is still EOpNull! 0:41 0.000000 0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:45 Function Parameters: -0:45 'inF0' (temp 2-component vector of float) -0:45 'inF1' (temp 2-component vector of float) -0:45 'inF2' (temp 2-component vector of float) -0:45 'inI0' (temp 2-component vector of int) +0:45 'inF0' (in 2-component vector of float) +0:45 'inF1' (in 2-component vector of float) +0:45 'inF2' (in 2-component vector of float) +0:45 'inI0' (in 2-component vector of int) 0:? Sequence 0:46 Constant: 0:46 0.000000 @@ -497,10 +497,10 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:63 Function Parameters: -0:63 'inF0' (temp 3-component vector of float) -0:63 'inF1' (temp 3-component vector of float) -0:63 'inF2' (temp 3-component vector of float) -0:63 'inI0' (temp 3-component vector of int) +0:63 'inF0' (in 3-component vector of float) +0:63 'inF1' (in 3-component vector of float) +0:63 'inF2' (in 3-component vector of float) +0:63 'inI0' (in 3-component vector of int) 0:? Sequence 0:64 Constant: 0:64 0.000000 @@ -529,10 +529,10 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:80 Function Parameters: -0:80 'inF0' (temp 4-component vector of float) -0:80 'inF1' (temp 4-component vector of float) -0:80 'inF2' (temp 4-component vector of float) -0:80 'inI0' (temp 4-component vector of int) +0:80 'inF0' (in 4-component vector of float) +0:80 'inF1' (in 4-component vector of float) +0:80 'inF2' (in 4-component vector of float) +0:80 'inI0' (in 4-component vector of int) 0:? Sequence 0:81 Constant: 0:81 0.000000 @@ -562,9 +562,9 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:116 Function Parameters: -0:116 'inF0' (temp 2X2 matrix of float) -0:116 'inF1' (temp 2X2 matrix of float) -0:116 'inF2' (temp 2X2 matrix of float) +0:116 'inF0' (in 2X2 matrix of float) +0:116 'inF1' (in 2X2 matrix of float) +0:116 'inF2' (in 2X2 matrix of float) 0:? Sequence 0:118 Constant: 0:118 0.000000 @@ -602,9 +602,9 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:124 Function Parameters: -0:124 'inF0' (temp 3X3 matrix of float) -0:124 'inF1' (temp 3X3 matrix of float) -0:124 'inF2' (temp 3X3 matrix of float) +0:124 'inF0' (in 3X3 matrix of float) +0:124 'inF1' (in 3X3 matrix of float) +0:124 'inF2' (in 3X3 matrix of float) 0:? Sequence 0:126 Constant: 0:126 0.000000 @@ -647,9 +647,9 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:132 Function Parameters: -0:132 'inF0' (temp 4X4 matrix of float) -0:132 'inF1' (temp 4X4 matrix of float) -0:132 'inF2' (temp 4X4 matrix of float) +0:132 'inF0' (in 4X4 matrix of float) +0:132 'inF1' (in 4X4 matrix of float) +0:132 'inF2' (in 4X4 matrix of float) 0:? Sequence 0:134 Constant: 0:134 0.000000 diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index 2bbec5ab..23e4b245 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -233,10 +233,10 @@ Shader version: 450 ERROR: node is still EOpNull! 0:74 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) 0:15 Function Parameters: -0:15 'inF0' (temp float) -0:15 'inF1' (temp float) -0:15 'inF2' (temp float) -0:15 'inI0' (temp int) +0:15 'inF0' (in float) +0:15 'inF1' (in float) +0:15 'inF2' (in float) +0:15 'inI0' (in int) 0:? Sequence 0:20 Constant: 0:20 0.000000 @@ -331,10 +331,10 @@ ERROR: node is still EOpNull! 0:71 0.000000 0:83 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:75 Function Parameters: -0:75 'inF0' (temp 1-component vector of float) -0:75 'inF1' (temp 1-component vector of float) -0:75 'inF2' (temp 1-component vector of float) -0:75 'inI0' (temp 1-component vector of int) +0:75 'inF0' (in 1-component vector of float) +0:75 'inF1' (in 1-component vector of float) +0:75 'inF2' (in 1-component vector of float) +0:75 'inI0' (in 1-component vector of int) 0:? Sequence 0:78 Constant: 0:78 0.000000 @@ -343,10 +343,10 @@ ERROR: node is still EOpNull! 0:80 0.000000 0:130 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:84 Function Parameters: -0:84 'inF0' (temp 2-component vector of float) -0:84 'inF1' (temp 2-component vector of float) -0:84 'inF2' (temp 2-component vector of float) -0:84 'inI0' (temp 2-component vector of int) +0:84 'inF0' (in 2-component vector of float) +0:84 'inF1' (in 2-component vector of float) +0:84 'inF2' (in 2-component vector of float) +0:84 'inI0' (in 2-component vector of int) 0:? Sequence 0:87 Constant: 0:87 0.000000 @@ -428,10 +428,10 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:175 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:131 Function Parameters: -0:131 'inF0' (temp 3-component vector of float) -0:131 'inF1' (temp 3-component vector of float) -0:131 'inF2' (temp 3-component vector of float) -0:131 'inI0' (temp 3-component vector of int) +0:131 'inF0' (in 3-component vector of float) +0:131 'inF1' (in 3-component vector of float) +0:131 'inF2' (in 3-component vector of float) +0:131 'inI0' (in 3-component vector of int) 0:? Sequence 0:134 Constant: 0:134 0.000000 @@ -510,10 +510,10 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:251 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:176 Function Parameters: -0:176 'inF0' (temp 4-component vector of float) -0:176 'inF1' (temp 4-component vector of float) -0:176 'inF2' (temp 4-component vector of float) -0:176 'inI0' (temp 4-component vector of int) +0:176 'inF0' (in 4-component vector of float) +0:176 'inF1' (in 4-component vector of float) +0:176 'inF2' (in 4-component vector of float) +0:176 'inI0' (in 4-component vector of int) 0:? Sequence 0:179 Constant: 0:179 0.000000 @@ -593,9 +593,9 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:259 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:252 Function Parameters: -0:252 'inF0' (temp 2X2 matrix of float) -0:252 'inF1' (temp 2X2 matrix of float) -0:252 'inF2' (temp 2X2 matrix of float) +0:252 'inF0' (in 2X2 matrix of float) +0:252 'inF1' (in 2X2 matrix of float) +0:252 'inF2' (in 2X2 matrix of float) 0:? Sequence 0:254 Constant: 0:254 0.000000 @@ -655,9 +655,9 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:267 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:260 Function Parameters: -0:260 'inF0' (temp 3X3 matrix of float) -0:260 'inF1' (temp 3X3 matrix of float) -0:260 'inF2' (temp 3X3 matrix of float) +0:260 'inF0' (in 3X3 matrix of float) +0:260 'inF1' (in 3X3 matrix of float) +0:260 'inF2' (in 3X3 matrix of float) 0:? Sequence 0:262 Constant: 0:262 0.000000 @@ -722,9 +722,9 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:274 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:268 Function Parameters: -0:268 'inF0' (temp 4X4 matrix of float) -0:268 'inF1' (temp 4X4 matrix of float) -0:268 'inF2' (temp 4X4 matrix of float) +0:268 'inF0' (in 4X4 matrix of float) +0:268 'inF1' (in 4X4 matrix of float) +0:268 'inF2' (in 4X4 matrix of float) 0:? Sequence 0:270 Constant: 0:270 0.000000 @@ -816,10 +816,10 @@ Shader version: 450 ERROR: node is still EOpNull! 0:74 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) 0:15 Function Parameters: -0:15 'inF0' (temp float) -0:15 'inF1' (temp float) -0:15 'inF2' (temp float) -0:15 'inI0' (temp int) +0:15 'inF0' (in float) +0:15 'inF1' (in float) +0:15 'inF2' (in float) +0:15 'inI0' (in int) 0:? Sequence 0:20 Constant: 0:20 0.000000 @@ -914,10 +914,10 @@ ERROR: node is still EOpNull! 0:71 0.000000 0:83 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:75 Function Parameters: -0:75 'inF0' (temp 1-component vector of float) -0:75 'inF1' (temp 1-component vector of float) -0:75 'inF2' (temp 1-component vector of float) -0:75 'inI0' (temp 1-component vector of int) +0:75 'inF0' (in 1-component vector of float) +0:75 'inF1' (in 1-component vector of float) +0:75 'inF2' (in 1-component vector of float) +0:75 'inI0' (in 1-component vector of int) 0:? Sequence 0:78 Constant: 0:78 0.000000 @@ -926,10 +926,10 @@ ERROR: node is still EOpNull! 0:80 0.000000 0:130 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:84 Function Parameters: -0:84 'inF0' (temp 2-component vector of float) -0:84 'inF1' (temp 2-component vector of float) -0:84 'inF2' (temp 2-component vector of float) -0:84 'inI0' (temp 2-component vector of int) +0:84 'inF0' (in 2-component vector of float) +0:84 'inF1' (in 2-component vector of float) +0:84 'inF2' (in 2-component vector of float) +0:84 'inI0' (in 2-component vector of int) 0:? Sequence 0:87 Constant: 0:87 0.000000 @@ -1011,10 +1011,10 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:175 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:131 Function Parameters: -0:131 'inF0' (temp 3-component vector of float) -0:131 'inF1' (temp 3-component vector of float) -0:131 'inF2' (temp 3-component vector of float) -0:131 'inI0' (temp 3-component vector of int) +0:131 'inF0' (in 3-component vector of float) +0:131 'inF1' (in 3-component vector of float) +0:131 'inF2' (in 3-component vector of float) +0:131 'inI0' (in 3-component vector of int) 0:? Sequence 0:134 Constant: 0:134 0.000000 @@ -1093,10 +1093,10 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:251 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:176 Function Parameters: -0:176 'inF0' (temp 4-component vector of float) -0:176 'inF1' (temp 4-component vector of float) -0:176 'inF2' (temp 4-component vector of float) -0:176 'inI0' (temp 4-component vector of int) +0:176 'inF0' (in 4-component vector of float) +0:176 'inF1' (in 4-component vector of float) +0:176 'inF2' (in 4-component vector of float) +0:176 'inI0' (in 4-component vector of int) 0:? Sequence 0:179 Constant: 0:179 0.000000 @@ -1176,9 +1176,9 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:259 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:252 Function Parameters: -0:252 'inF0' (temp 2X2 matrix of float) -0:252 'inF1' (temp 2X2 matrix of float) -0:252 'inF2' (temp 2X2 matrix of float) +0:252 'inF0' (in 2X2 matrix of float) +0:252 'inF1' (in 2X2 matrix of float) +0:252 'inF2' (in 2X2 matrix of float) 0:? Sequence 0:254 Constant: 0:254 0.000000 @@ -1238,9 +1238,9 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:267 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:260 Function Parameters: -0:260 'inF0' (temp 3X3 matrix of float) -0:260 'inF1' (temp 3X3 matrix of float) -0:260 'inF2' (temp 3X3 matrix of float) +0:260 'inF0' (in 3X3 matrix of float) +0:260 'inF1' (in 3X3 matrix of float) +0:260 'inF2' (in 3X3 matrix of float) 0:? Sequence 0:262 Constant: 0:262 0.000000 @@ -1305,9 +1305,9 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:274 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:268 Function Parameters: -0:268 'inF0' (temp 4X4 matrix of float) -0:268 'inF1' (temp 4X4 matrix of float) -0:268 'inF2' (temp 4X4 matrix of float) +0:268 'inF0' (in 4X4 matrix of float) +0:268 'inF1' (in 4X4 matrix of float) +0:268 'inF2' (in 4X4 matrix of float) 0:? Sequence 0:270 Constant: 0:270 0.000000 diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index a4a6b044..ee99b6b8 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -3,52 +3,52 @@ Shader version: 450 0:? Sequence 0:62 Function Definition: VertexShaderFunction(f1;f1;f1;u1;u1; (temp float) 0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) -0:2 'inU0' (temp uint) -0:2 'inU1' (temp uint) +0:2 'inF0' (in float) +0:2 'inF1' (in float) +0:2 'inF2' (in float) +0:2 'inU0' (in uint) +0:2 'inU1' (in uint) 0:? Sequence 0:3 all (global bool) -0:3 'inF0' (temp float) +0:3 'inF0' (in float) 0:4 Absolute value (global float) -0:4 'inF0' (temp float) +0:4 'inF0' (in float) 0:5 arc cosine (global float) -0:5 'inF0' (temp float) +0:5 'inF0' (in float) 0:6 any (global bool) -0:6 'inF0' (temp float) +0:6 'inF0' (in float) 0:7 arc sine (global float) -0:7 'inF0' (temp float) +0:7 'inF0' (in float) 0:8 floatBitsToInt (global int) -0:8 'inF0' (temp float) +0:8 'inF0' (in float) 0:9 floatBitsToUint (global uint) -0:9 'inF0' (temp float) +0:9 'inF0' (in float) 0:10 intBitsToFloat (global float) -0:10 'inU0' (temp uint) +0:10 'inU0' (in uint) 0:12 arc tangent (global float) -0:12 'inF0' (temp float) +0:12 'inF0' (in float) 0:13 arc tangent (global float) -0:13 'inF0' (temp float) -0:13 'inF1' (temp float) +0:13 'inF0' (in float) +0:13 'inF1' (in float) 0:14 Ceiling (global float) -0:14 'inF0' (temp float) +0:14 'inF0' (in float) 0:15 clamp (global float) -0:15 'inF0' (temp float) -0:15 'inF1' (temp float) -0:15 'inF2' (temp float) +0:15 'inF0' (in float) +0:15 'inF1' (in float) +0:15 'inF2' (in float) 0:16 cosine (global float) -0:16 'inF0' (temp float) +0:16 'inF0' (in float) 0:17 hyp. cosine (global float) -0:17 'inF0' (temp float) +0:17 'inF0' (in float) 0:18 bitCount (global uint) 0:18 Constant: 0:18 7 (const uint) 0:19 degrees (global float) -0:19 'inF0' (temp float) +0:19 'inF0' (in float) 0:23 exp (global float) -0:23 'inF0' (temp float) +0:23 'inF0' (in float) 0:24 exp2 (global float) -0:24 'inF0' (temp float) +0:24 'inF0' (in float) 0:25 findMSB (global int) 0:25 Constant: 0:25 7 (const int) @@ -56,156 +56,156 @@ Shader version: 450 0:26 Constant: 0:26 7 (const int) 0:27 Floor (global float) -0:27 'inF0' (temp float) +0:27 'inF0' (in float) 0:29 mod (global float) -0:29 'inF0' (temp float) -0:29 'inF1' (temp float) +0:29 'inF0' (in float) +0:29 'inF1' (in float) 0:30 Fraction (global float) -0:30 'inF0' (temp float) +0:30 'inF0' (in float) 0:31 frexp (global float) -0:31 'inF0' (temp float) -0:31 'inF1' (temp float) +0:31 'inF0' (in float) +0:31 'inF1' (in float) 0:32 isinf (global bool) -0:32 'inF0' (temp float) +0:32 'inF0' (in float) 0:33 isnan (global bool) -0:33 'inF0' (temp float) +0:33 'inF0' (in float) 0:34 ldexp (global float) -0:34 'inF0' (temp float) -0:34 'inF1' (temp float) +0:34 'inF0' (in float) +0:34 'inF1' (in float) 0:35 log (global float) -0:35 'inF0' (temp float) +0:35 'inF0' (in float) 0:36 component-wise multiply (temp float) 0:36 log2 (temp float) -0:36 'inF0' (temp float) +0:36 'inF0' (in float) 0:36 Constant: 0:36 0.301030 0:37 log2 (global float) -0:37 'inF0' (temp float) +0:37 'inF0' (in float) 0:38 max (global float) -0:38 'inF0' (temp float) -0:38 'inF1' (temp float) +0:38 'inF0' (in float) +0:38 'inF1' (in float) 0:39 min (global float) -0:39 'inF0' (temp float) -0:39 'inF1' (temp float) +0:39 'inF0' (in float) +0:39 'inF1' (in float) 0:41 pow (global float) -0:41 'inF0' (temp float) -0:41 'inF1' (temp float) +0:41 'inF0' (in float) +0:41 'inF1' (in float) 0:42 radians (global float) -0:42 'inF0' (temp float) +0:42 'inF0' (in float) 0:43 bitFieldReverse (global uint) 0:43 Constant: 0:43 2 (const uint) 0:44 roundEven (global float) -0:44 'inF0' (temp float) +0:44 'inF0' (in float) 0:45 inverse sqrt (global float) -0:45 'inF0' (temp float) +0:45 'inF0' (in float) 0:46 clamp (temp float) -0:46 'inF0' (temp float) +0:46 'inF0' (in float) 0:46 Constant: 0:46 0.000000 0:46 Constant: 0:46 1.000000 0:47 Sign (global float) -0:47 'inF0' (temp float) +0:47 'inF0' (in float) 0:48 sine (global float) -0:48 'inF0' (temp float) +0:48 'inF0' (in float) 0:49 Sequence 0:49 move second child to first child (temp float) -0:49 'inF1' (temp float) +0:49 'inF1' (in float) 0:49 sine (temp float) -0:49 'inF0' (temp float) +0:49 'inF0' (in float) 0:49 move second child to first child (temp float) -0:49 'inF2' (temp float) +0:49 'inF2' (in float) 0:49 cosine (temp float) -0:49 'inF0' (temp float) +0:49 'inF0' (in float) 0:50 hyp. sine (global float) -0:50 'inF0' (temp float) +0:50 'inF0' (in float) 0:51 smoothstep (global float) -0:51 'inF0' (temp float) -0:51 'inF1' (temp float) -0:51 'inF2' (temp float) +0:51 'inF0' (in float) +0:51 'inF1' (in float) +0:51 'inF2' (in float) 0:52 sqrt (global float) -0:52 'inF0' (temp float) +0:52 'inF0' (in float) 0:53 step (global float) -0:53 'inF0' (temp float) -0:53 'inF1' (temp float) +0:53 'inF0' (in float) +0:53 'inF1' (in float) 0:54 tangent (global float) -0:54 'inF0' (temp float) +0:54 'inF0' (in float) 0:55 hyp. tangent (global float) -0:55 'inF0' (temp float) +0:55 'inF0' (in float) 0:57 trunc (global float) -0:57 'inF0' (temp float) +0:57 'inF0' (in float) 0:59 Branch: Return with expression 0:59 Constant: 0:59 0.000000 0:68 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) 0:63 Function Parameters: -0:63 'inF0' (temp 1-component vector of float) -0:63 'inF1' (temp 1-component vector of float) -0:63 'inF2' (temp 1-component vector of float) +0:63 'inF0' (in 1-component vector of float) +0:63 'inF1' (in 1-component vector of float) +0:63 'inF2' (in 1-component vector of float) 0:? Sequence 0:65 Branch: Return with expression 0:65 Constant: 0:65 0.000000 0:137 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:69 Function Parameters: -0:69 'inF0' (temp 2-component vector of float) -0:69 'inF1' (temp 2-component vector of float) -0:69 'inF2' (temp 2-component vector of float) -0:69 'inU0' (temp 2-component vector of uint) -0:69 'inU1' (temp 2-component vector of uint) +0:69 'inF0' (in 2-component vector of float) +0:69 'inF1' (in 2-component vector of float) +0:69 'inF2' (in 2-component vector of float) +0:69 'inU0' (in 2-component vector of uint) +0:69 'inU1' (in 2-component vector of uint) 0:? Sequence 0:70 all (global bool) -0:70 'inF0' (temp 2-component vector of float) +0:70 'inF0' (in 2-component vector of float) 0:71 Absolute value (global 2-component vector of float) -0:71 'inF0' (temp 2-component vector of float) +0:71 'inF0' (in 2-component vector of float) 0:72 arc cosine (global 2-component vector of float) -0:72 'inF0' (temp 2-component vector of float) +0:72 'inF0' (in 2-component vector of float) 0:73 any (global bool) -0:73 'inF0' (temp 2-component vector of float) +0:73 'inF0' (in 2-component vector of float) 0:74 arc sine (global 2-component vector of float) -0:74 'inF0' (temp 2-component vector of float) +0:74 'inF0' (in 2-component vector of float) 0:75 floatBitsToInt (global 2-component vector of int) -0:75 'inF0' (temp 2-component vector of float) +0:75 'inF0' (in 2-component vector of float) 0:76 floatBitsToUint (global 2-component vector of uint) -0:76 'inF0' (temp 2-component vector of float) +0:76 'inF0' (in 2-component vector of float) 0:77 intBitsToFloat (global 2-component vector of float) -0:77 'inU0' (temp 2-component vector of uint) +0:77 'inU0' (in 2-component vector of uint) 0:79 arc tangent (global 2-component vector of float) -0:79 'inF0' (temp 2-component vector of float) +0:79 'inF0' (in 2-component vector of float) 0:80 arc tangent (global 2-component vector of float) -0:80 'inF0' (temp 2-component vector of float) -0:80 'inF1' (temp 2-component vector of float) +0:80 'inF0' (in 2-component vector of float) +0:80 'inF1' (in 2-component vector of float) 0:81 Ceiling (global 2-component vector of float) -0:81 'inF0' (temp 2-component vector of float) +0:81 'inF0' (in 2-component vector of float) 0:82 clamp (global 2-component vector of float) -0:82 'inF0' (temp 2-component vector of float) -0:82 'inF1' (temp 2-component vector of float) -0:82 'inF2' (temp 2-component vector of float) +0:82 'inF0' (in 2-component vector of float) +0:82 'inF1' (in 2-component vector of float) +0:82 'inF2' (in 2-component vector of float) 0:83 cosine (global 2-component vector of float) -0:83 'inF0' (temp 2-component vector of float) +0:83 'inF0' (in 2-component vector of float) 0:84 hyp. cosine (global 2-component vector of float) -0:84 'inF0' (temp 2-component vector of float) +0:84 'inF0' (in 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:86 degrees (global 2-component vector of float) -0:86 'inF0' (temp 2-component vector of float) +0:86 'inF0' (in 2-component vector of float) 0:87 distance (global float) -0:87 'inF0' (temp 2-component vector of float) -0:87 'inF1' (temp 2-component vector of float) +0:87 'inF0' (in 2-component vector of float) +0:87 'inF1' (in 2-component vector of float) 0:88 dot-product (global float) -0:88 'inF0' (temp 2-component vector of float) -0:88 'inF1' (temp 2-component vector of float) +0:88 'inF0' (in 2-component vector of float) +0:88 'inF1' (in 2-component vector of float) 0:92 exp (global 2-component vector of float) -0:92 'inF0' (temp 2-component vector of float) +0:92 'inF0' (in 2-component vector of float) 0:93 exp2 (global 2-component vector of float) -0:93 'inF0' (temp 2-component vector of float) +0:93 'inF0' (in 2-component vector of float) 0:94 face-forward (global 2-component vector of float) -0:94 'inF0' (temp 2-component vector of float) -0:94 'inF1' (temp 2-component vector of float) -0:94 'inF2' (temp 2-component vector of float) +0:94 'inF0' (in 2-component vector of float) +0:94 'inF1' (in 2-component vector of float) +0:94 'inF2' (in 2-component vector of float) 0:95 findMSB (global int) 0:95 Constant: 0:95 7 (const int) @@ -213,52 +213,52 @@ Shader version: 450 0:96 Constant: 0:96 7 (const int) 0:97 Floor (global 2-component vector of float) -0:97 'inF0' (temp 2-component vector of float) +0:97 'inF0' (in 2-component vector of float) 0:99 mod (global 2-component vector of float) -0:99 'inF0' (temp 2-component vector of float) -0:99 'inF1' (temp 2-component vector of float) +0:99 'inF0' (in 2-component vector of float) +0:99 'inF1' (in 2-component vector of float) 0:100 Fraction (global 2-component vector of float) -0:100 'inF0' (temp 2-component vector of float) +0:100 'inF0' (in 2-component vector of float) 0:101 frexp (global 2-component vector of float) -0:101 'inF0' (temp 2-component vector of float) -0:101 'inF1' (temp 2-component vector of float) +0:101 'inF0' (in 2-component vector of float) +0:101 'inF1' (in 2-component vector of float) 0:102 isinf (global 2-component vector of bool) -0:102 'inF0' (temp 2-component vector of float) +0:102 'inF0' (in 2-component vector of float) 0:103 isnan (global 2-component vector of bool) -0:103 'inF0' (temp 2-component vector of float) +0:103 'inF0' (in 2-component vector of float) 0:104 ldexp (global 2-component vector of float) -0:104 'inF0' (temp 2-component vector of float) -0:104 'inF1' (temp 2-component vector of float) +0:104 'inF0' (in 2-component vector of float) +0:104 'inF1' (in 2-component vector of float) 0:105 length (global float) -0:105 'inF0' (temp 2-component vector of float) +0:105 'inF0' (in 2-component vector of float) 0:106 log (global 2-component vector of float) -0:106 'inF0' (temp 2-component vector of float) +0:106 'inF0' (in 2-component vector of float) 0:107 vector-scale (temp 2-component vector of float) 0:107 log2 (temp 2-component vector of float) -0:107 'inF0' (temp 2-component vector of float) +0:107 'inF0' (in 2-component vector of float) 0:107 Constant: 0:107 0.301030 0:108 log2 (global 2-component vector of float) -0:108 'inF0' (temp 2-component vector of float) +0:108 'inF0' (in 2-component vector of float) 0:109 max (global 2-component vector of float) -0:109 'inF0' (temp 2-component vector of float) -0:109 'inF1' (temp 2-component vector of float) +0:109 'inF0' (in 2-component vector of float) +0:109 'inF1' (in 2-component vector of float) 0:110 min (global 2-component vector of float) -0:110 'inF0' (temp 2-component vector of float) -0:110 'inF1' (temp 2-component vector of float) +0:110 'inF0' (in 2-component vector of float) +0:110 'inF1' (in 2-component vector of float) 0:112 normalize (global 2-component vector of float) -0:112 'inF0' (temp 2-component vector of float) +0:112 'inF0' (in 2-component vector of float) 0:113 pow (global 2-component vector of float) -0:113 'inF0' (temp 2-component vector of float) -0:113 'inF1' (temp 2-component vector of float) +0:113 'inF0' (in 2-component vector of float) +0:113 'inF1' (in 2-component vector of float) 0:114 radians (global 2-component vector of float) -0:114 'inF0' (temp 2-component vector of float) +0:114 'inF0' (in 2-component vector of float) 0:115 reflect (global 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) -0:115 'inF1' (temp 2-component vector of float) +0:115 'inF0' (in 2-component vector of float) +0:115 'inF1' (in 2-component vector of float) 0:116 refract (global 2-component vector of float) -0:116 'inF0' (temp 2-component vector of float) -0:116 'inF1' (temp 2-component vector of float) +0:116 'inF0' (in 2-component vector of float) +0:116 'inF1' (in 2-component vector of float) 0:116 Constant: 0:116 2.000000 0:? bitFieldReverse (global 2-component vector of uint) @@ -266,112 +266,112 @@ Shader version: 450 0:? 1 (const uint) 0:? 2 (const uint) 0:118 roundEven (global 2-component vector of float) -0:118 'inF0' (temp 2-component vector of float) +0:118 'inF0' (in 2-component vector of float) 0:119 inverse sqrt (global 2-component vector of float) -0:119 'inF0' (temp 2-component vector of float) +0:119 'inF0' (in 2-component vector of float) 0:120 clamp (temp 2-component vector of float) -0:120 'inF0' (temp 2-component vector of float) +0:120 'inF0' (in 2-component vector of float) 0:120 Constant: 0:120 0.000000 0:120 Constant: 0:120 1.000000 0:121 Sign (global 2-component vector of float) -0:121 'inF0' (temp 2-component vector of float) +0:121 'inF0' (in 2-component vector of float) 0:122 sine (global 2-component vector of float) -0:122 'inF0' (temp 2-component vector of float) +0:122 'inF0' (in 2-component vector of float) 0:123 Sequence 0:123 move second child to first child (temp 2-component vector of float) -0:123 'inF1' (temp 2-component vector of float) +0:123 'inF1' (in 2-component vector of float) 0:123 sine (temp 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) +0:123 'inF0' (in 2-component vector of float) 0:123 move second child to first child (temp 2-component vector of float) -0:123 'inF2' (temp 2-component vector of float) +0:123 'inF2' (in 2-component vector of float) 0:123 cosine (temp 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) +0:123 'inF0' (in 2-component vector of float) 0:124 hyp. sine (global 2-component vector of float) -0:124 'inF0' (temp 2-component vector of float) +0:124 'inF0' (in 2-component vector of float) 0:125 smoothstep (global 2-component vector of float) -0:125 'inF0' (temp 2-component vector of float) -0:125 'inF1' (temp 2-component vector of float) -0:125 'inF2' (temp 2-component vector of float) +0:125 'inF0' (in 2-component vector of float) +0:125 'inF1' (in 2-component vector of float) +0:125 'inF2' (in 2-component vector of float) 0:126 sqrt (global 2-component vector of float) -0:126 'inF0' (temp 2-component vector of float) +0:126 'inF0' (in 2-component vector of float) 0:127 step (global 2-component vector of float) -0:127 'inF0' (temp 2-component vector of float) -0:127 'inF1' (temp 2-component vector of float) +0:127 'inF0' (in 2-component vector of float) +0:127 'inF1' (in 2-component vector of float) 0:128 tangent (global 2-component vector of float) -0:128 'inF0' (temp 2-component vector of float) +0:128 'inF0' (in 2-component vector of float) 0:129 hyp. tangent (global 2-component vector of float) -0:129 'inF0' (temp 2-component vector of float) +0:129 'inF0' (in 2-component vector of float) 0:131 trunc (global 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) +0:131 'inF0' (in 2-component vector of float) 0:134 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:207 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:138 Function Parameters: -0:138 'inF0' (temp 3-component vector of float) -0:138 'inF1' (temp 3-component vector of float) -0:138 'inF2' (temp 3-component vector of float) -0:138 'inU0' (temp 3-component vector of uint) -0:138 'inU1' (temp 3-component vector of uint) +0:138 'inF0' (in 3-component vector of float) +0:138 'inF1' (in 3-component vector of float) +0:138 'inF2' (in 3-component vector of float) +0:138 'inU0' (in 3-component vector of uint) +0:138 'inU1' (in 3-component vector of uint) 0:? Sequence 0:139 all (global bool) -0:139 'inF0' (temp 3-component vector of float) +0:139 'inF0' (in 3-component vector of float) 0:140 Absolute value (global 3-component vector of float) -0:140 'inF0' (temp 3-component vector of float) +0:140 'inF0' (in 3-component vector of float) 0:141 arc cosine (global 3-component vector of float) -0:141 'inF0' (temp 3-component vector of float) +0:141 'inF0' (in 3-component vector of float) 0:142 any (global bool) -0:142 'inF0' (temp 3-component vector of float) +0:142 'inF0' (in 3-component vector of float) 0:143 arc sine (global 3-component vector of float) -0:143 'inF0' (temp 3-component vector of float) +0:143 'inF0' (in 3-component vector of float) 0:144 floatBitsToInt (global 3-component vector of int) -0:144 'inF0' (temp 3-component vector of float) +0:144 'inF0' (in 3-component vector of float) 0:145 floatBitsToUint (global 3-component vector of uint) -0:145 'inF0' (temp 3-component vector of float) +0:145 'inF0' (in 3-component vector of float) 0:146 intBitsToFloat (global 3-component vector of float) -0:146 'inU0' (temp 3-component vector of uint) +0:146 'inU0' (in 3-component vector of uint) 0:148 arc tangent (global 3-component vector of float) -0:148 'inF0' (temp 3-component vector of float) +0:148 'inF0' (in 3-component vector of float) 0:149 arc tangent (global 3-component vector of float) -0:149 'inF0' (temp 3-component vector of float) -0:149 'inF1' (temp 3-component vector of float) +0:149 'inF0' (in 3-component vector of float) +0:149 'inF1' (in 3-component vector of float) 0:150 Ceiling (global 3-component vector of float) -0:150 'inF0' (temp 3-component vector of float) +0:150 'inF0' (in 3-component vector of float) 0:151 clamp (global 3-component vector of float) -0:151 'inF0' (temp 3-component vector of float) -0:151 'inF1' (temp 3-component vector of float) -0:151 'inF2' (temp 3-component vector of float) +0:151 'inF0' (in 3-component vector of float) +0:151 'inF1' (in 3-component vector of float) +0:151 'inF2' (in 3-component vector of float) 0:152 cosine (global 3-component vector of float) -0:152 'inF0' (temp 3-component vector of float) +0:152 'inF0' (in 3-component vector of float) 0:153 hyp. cosine (global 3-component vector of float) -0:153 'inF0' (temp 3-component vector of float) +0:153 'inF0' (in 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:155 cross-product (global 3-component vector of float) -0:155 'inF0' (temp 3-component vector of float) -0:155 'inF1' (temp 3-component vector of float) +0:155 'inF0' (in 3-component vector of float) +0:155 'inF1' (in 3-component vector of float) 0:156 degrees (global 3-component vector of float) -0:156 'inF0' (temp 3-component vector of float) +0:156 'inF0' (in 3-component vector of float) 0:157 distance (global float) -0:157 'inF0' (temp 3-component vector of float) -0:157 'inF1' (temp 3-component vector of float) +0:157 'inF0' (in 3-component vector of float) +0:157 'inF1' (in 3-component vector of float) 0:158 dot-product (global float) -0:158 'inF0' (temp 3-component vector of float) -0:158 'inF1' (temp 3-component vector of float) +0:158 'inF0' (in 3-component vector of float) +0:158 'inF1' (in 3-component vector of float) 0:162 exp (global 3-component vector of float) -0:162 'inF0' (temp 3-component vector of float) +0:162 'inF0' (in 3-component vector of float) 0:163 exp2 (global 3-component vector of float) -0:163 'inF0' (temp 3-component vector of float) +0:163 'inF0' (in 3-component vector of float) 0:164 face-forward (global 3-component vector of float) -0:164 'inF0' (temp 3-component vector of float) -0:164 'inF1' (temp 3-component vector of float) -0:164 'inF2' (temp 3-component vector of float) +0:164 'inF0' (in 3-component vector of float) +0:164 'inF1' (in 3-component vector of float) +0:164 'inF2' (in 3-component vector of float) 0:165 findMSB (global int) 0:165 Constant: 0:165 7 (const int) @@ -379,52 +379,52 @@ Shader version: 450 0:166 Constant: 0:166 7 (const int) 0:167 Floor (global 3-component vector of float) -0:167 'inF0' (temp 3-component vector of float) +0:167 'inF0' (in 3-component vector of float) 0:169 mod (global 3-component vector of float) -0:169 'inF0' (temp 3-component vector of float) -0:169 'inF1' (temp 3-component vector of float) +0:169 'inF0' (in 3-component vector of float) +0:169 'inF1' (in 3-component vector of float) 0:170 Fraction (global 3-component vector of float) -0:170 'inF0' (temp 3-component vector of float) +0:170 'inF0' (in 3-component vector of float) 0:171 frexp (global 3-component vector of float) -0:171 'inF0' (temp 3-component vector of float) -0:171 'inF1' (temp 3-component vector of float) +0:171 'inF0' (in 3-component vector of float) +0:171 'inF1' (in 3-component vector of float) 0:172 isinf (global 3-component vector of bool) -0:172 'inF0' (temp 3-component vector of float) +0:172 'inF0' (in 3-component vector of float) 0:173 isnan (global 3-component vector of bool) -0:173 'inF0' (temp 3-component vector of float) +0:173 'inF0' (in 3-component vector of float) 0:174 ldexp (global 3-component vector of float) -0:174 'inF0' (temp 3-component vector of float) -0:174 'inF1' (temp 3-component vector of float) +0:174 'inF0' (in 3-component vector of float) +0:174 'inF1' (in 3-component vector of float) 0:175 length (global float) -0:175 'inF0' (temp 3-component vector of float) +0:175 'inF0' (in 3-component vector of float) 0:176 log (global 3-component vector of float) -0:176 'inF0' (temp 3-component vector of float) +0:176 'inF0' (in 3-component vector of float) 0:177 vector-scale (temp 3-component vector of float) 0:177 log2 (temp 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) +0:177 'inF0' (in 3-component vector of float) 0:177 Constant: 0:177 0.301030 0:178 log2 (global 3-component vector of float) -0:178 'inF0' (temp 3-component vector of float) +0:178 'inF0' (in 3-component vector of float) 0:179 max (global 3-component vector of float) -0:179 'inF0' (temp 3-component vector of float) -0:179 'inF1' (temp 3-component vector of float) +0:179 'inF0' (in 3-component vector of float) +0:179 'inF1' (in 3-component vector of float) 0:180 min (global 3-component vector of float) -0:180 'inF0' (temp 3-component vector of float) -0:180 'inF1' (temp 3-component vector of float) +0:180 'inF0' (in 3-component vector of float) +0:180 'inF1' (in 3-component vector of float) 0:182 normalize (global 3-component vector of float) -0:182 'inF0' (temp 3-component vector of float) +0:182 'inF0' (in 3-component vector of float) 0:183 pow (global 3-component vector of float) -0:183 'inF0' (temp 3-component vector of float) -0:183 'inF1' (temp 3-component vector of float) +0:183 'inF0' (in 3-component vector of float) +0:183 'inF1' (in 3-component vector of float) 0:184 radians (global 3-component vector of float) -0:184 'inF0' (temp 3-component vector of float) +0:184 'inF0' (in 3-component vector of float) 0:185 reflect (global 3-component vector of float) -0:185 'inF0' (temp 3-component vector of float) -0:185 'inF1' (temp 3-component vector of float) +0:185 'inF0' (in 3-component vector of float) +0:185 'inF1' (in 3-component vector of float) 0:186 refract (global 3-component vector of float) -0:186 'inF0' (temp 3-component vector of float) -0:186 'inF1' (temp 3-component vector of float) +0:186 'inF0' (in 3-component vector of float) +0:186 'inF1' (in 3-component vector of float) 0:186 Constant: 0:186 2.000000 0:? bitFieldReverse (global 3-component vector of uint) @@ -433,45 +433,45 @@ Shader version: 450 0:? 2 (const uint) 0:? 3 (const uint) 0:188 roundEven (global 3-component vector of float) -0:188 'inF0' (temp 3-component vector of float) +0:188 'inF0' (in 3-component vector of float) 0:189 inverse sqrt (global 3-component vector of float) -0:189 'inF0' (temp 3-component vector of float) +0:189 'inF0' (in 3-component vector of float) 0:190 clamp (temp 3-component vector of float) -0:190 'inF0' (temp 3-component vector of float) +0:190 'inF0' (in 3-component vector of float) 0:190 Constant: 0:190 0.000000 0:190 Constant: 0:190 1.000000 0:191 Sign (global 3-component vector of float) -0:191 'inF0' (temp 3-component vector of float) +0:191 'inF0' (in 3-component vector of float) 0:192 sine (global 3-component vector of float) -0:192 'inF0' (temp 3-component vector of float) +0:192 'inF0' (in 3-component vector of float) 0:193 Sequence 0:193 move second child to first child (temp 3-component vector of float) -0:193 'inF1' (temp 3-component vector of float) +0:193 'inF1' (in 3-component vector of float) 0:193 sine (temp 3-component vector of float) -0:193 'inF0' (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) 0:193 move second child to first child (temp 3-component vector of float) -0:193 'inF2' (temp 3-component vector of float) +0:193 'inF2' (in 3-component vector of float) 0:193 cosine (temp 3-component vector of float) -0:193 'inF0' (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) 0:194 hyp. sine (global 3-component vector of float) -0:194 'inF0' (temp 3-component vector of float) +0:194 'inF0' (in 3-component vector of float) 0:195 smoothstep (global 3-component vector of float) -0:195 'inF0' (temp 3-component vector of float) -0:195 'inF1' (temp 3-component vector of float) -0:195 'inF2' (temp 3-component vector of float) +0:195 'inF0' (in 3-component vector of float) +0:195 'inF1' (in 3-component vector of float) +0:195 'inF2' (in 3-component vector of float) 0:196 sqrt (global 3-component vector of float) -0:196 'inF0' (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) 0:197 step (global 3-component vector of float) -0:197 'inF0' (temp 3-component vector of float) -0:197 'inF1' (temp 3-component vector of float) +0:197 'inF0' (in 3-component vector of float) +0:197 'inF1' (in 3-component vector of float) 0:198 tangent (global 3-component vector of float) -0:198 'inF0' (temp 3-component vector of float) +0:198 'inF0' (in 3-component vector of float) 0:199 hyp. tangent (global 3-component vector of float) -0:199 'inF0' (temp 3-component vector of float) +0:199 'inF0' (in 3-component vector of float) 0:201 trunc (global 3-component vector of float) -0:201 'inF0' (temp 3-component vector of float) +0:201 'inF0' (in 3-component vector of float) 0:204 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -479,43 +479,43 @@ Shader version: 450 0:? 3.000000 0:330 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:208 Function Parameters: -0:208 'inF0' (temp 4-component vector of float) -0:208 'inF1' (temp 4-component vector of float) -0:208 'inF2' (temp 4-component vector of float) -0:208 'inU0' (temp 4-component vector of uint) -0:208 'inU1' (temp 4-component vector of uint) +0:208 'inF0' (in 4-component vector of float) +0:208 'inF1' (in 4-component vector of float) +0:208 'inF2' (in 4-component vector of float) +0:208 'inU0' (in 4-component vector of uint) +0:208 'inU1' (in 4-component vector of uint) 0:? Sequence 0:209 all (global bool) -0:209 'inF0' (temp 4-component vector of float) +0:209 'inF0' (in 4-component vector of float) 0:210 Absolute value (global 4-component vector of float) -0:210 'inF0' (temp 4-component vector of float) +0:210 'inF0' (in 4-component vector of float) 0:211 arc cosine (global 4-component vector of float) -0:211 'inF0' (temp 4-component vector of float) +0:211 'inF0' (in 4-component vector of float) 0:212 any (global bool) -0:212 'inF0' (temp 4-component vector of float) +0:212 'inF0' (in 4-component vector of float) 0:213 arc sine (global 4-component vector of float) -0:213 'inF0' (temp 4-component vector of float) +0:213 'inF0' (in 4-component vector of float) 0:214 floatBitsToInt (global 4-component vector of int) -0:214 'inF0' (temp 4-component vector of float) +0:214 'inF0' (in 4-component vector of float) 0:215 floatBitsToUint (global 4-component vector of uint) -0:215 'inF0' (temp 4-component vector of float) +0:215 'inF0' (in 4-component vector of float) 0:216 intBitsToFloat (global 4-component vector of float) -0:216 'inU0' (temp 4-component vector of uint) +0:216 'inU0' (in 4-component vector of uint) 0:218 arc tangent (global 4-component vector of float) -0:218 'inF0' (temp 4-component vector of float) +0:218 'inF0' (in 4-component vector of float) 0:219 arc tangent (global 4-component vector of float) -0:219 'inF0' (temp 4-component vector of float) -0:219 'inF1' (temp 4-component vector of float) +0:219 'inF0' (in 4-component vector of float) +0:219 'inF1' (in 4-component vector of float) 0:220 Ceiling (global 4-component vector of float) -0:220 'inF0' (temp 4-component vector of float) +0:220 'inF0' (in 4-component vector of float) 0:221 clamp (global 4-component vector of float) -0:221 'inF0' (temp 4-component vector of float) -0:221 'inF1' (temp 4-component vector of float) -0:221 'inF2' (temp 4-component vector of float) +0:221 'inF0' (in 4-component vector of float) +0:221 'inF1' (in 4-component vector of float) +0:221 'inF2' (in 4-component vector of float) 0:222 cosine (global 4-component vector of float) -0:222 'inF0' (temp 4-component vector of float) +0:222 'inF0' (in 4-component vector of float) 0:223 hyp. cosine (global 4-component vector of float) -0:223 'inF0' (temp 4-component vector of float) +0:223 'inF0' (in 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) @@ -523,41 +523,41 @@ Shader version: 450 0:? 5 (const uint) 0:? 2 (const uint) 0:225 degrees (global 4-component vector of float) -0:225 'inF0' (temp 4-component vector of float) +0:225 'inF0' (in 4-component vector of float) 0:226 distance (global float) -0:226 'inF0' (temp 4-component vector of float) -0:226 'inF1' (temp 4-component vector of float) +0:226 'inF0' (in 4-component vector of float) +0:226 'inF1' (in 4-component vector of float) 0:227 dot-product (global float) -0:227 'inF0' (temp 4-component vector of float) -0:227 'inF1' (temp 4-component vector of float) +0:227 'inF0' (in 4-component vector of float) +0:227 'inF1' (in 4-component vector of float) 0:228 Construct vec4 (temp float) 0:228 Constant: 0:228 1.000000 0:228 component-wise multiply (temp float) 0:228 direct index (temp float) -0:228 'inF0' (temp 4-component vector of float) +0:228 'inF0' (in 4-component vector of float) 0:228 Constant: 0:228 1 (const int) 0:228 direct index (temp float) -0:228 'inF1' (temp 4-component vector of float) +0:228 'inF1' (in 4-component vector of float) 0:228 Constant: 0:228 1 (const int) 0:228 direct index (temp float) -0:228 'inF0' (temp 4-component vector of float) +0:228 'inF0' (in 4-component vector of float) 0:228 Constant: 0:228 2 (const int) 0:228 direct index (temp float) -0:228 'inF1' (temp 4-component vector of float) +0:228 'inF1' (in 4-component vector of float) 0:228 Constant: 0:228 3 (const int) 0:232 exp (global 4-component vector of float) -0:232 'inF0' (temp 4-component vector of float) +0:232 'inF0' (in 4-component vector of float) 0:233 exp2 (global 4-component vector of float) -0:233 'inF0' (temp 4-component vector of float) +0:233 'inF0' (in 4-component vector of float) 0:234 face-forward (global 4-component vector of float) -0:234 'inF0' (temp 4-component vector of float) -0:234 'inF1' (temp 4-component vector of float) -0:234 'inF2' (temp 4-component vector of float) +0:234 'inF0' (in 4-component vector of float) +0:234 'inF1' (in 4-component vector of float) +0:234 'inF2' (in 4-component vector of float) 0:235 findMSB (global int) 0:235 Constant: 0:235 7 (const int) @@ -565,52 +565,52 @@ Shader version: 450 0:236 Constant: 0:236 7 (const int) 0:237 Floor (global 4-component vector of float) -0:237 'inF0' (temp 4-component vector of float) +0:237 'inF0' (in 4-component vector of float) 0:239 mod (global 4-component vector of float) -0:239 'inF0' (temp 4-component vector of float) -0:239 'inF1' (temp 4-component vector of float) +0:239 'inF0' (in 4-component vector of float) +0:239 'inF1' (in 4-component vector of float) 0:240 Fraction (global 4-component vector of float) -0:240 'inF0' (temp 4-component vector of float) +0:240 'inF0' (in 4-component vector of float) 0:241 frexp (global 4-component vector of float) -0:241 'inF0' (temp 4-component vector of float) -0:241 'inF1' (temp 4-component vector of float) +0:241 'inF0' (in 4-component vector of float) +0:241 'inF1' (in 4-component vector of float) 0:242 isinf (global 4-component vector of bool) -0:242 'inF0' (temp 4-component vector of float) +0:242 'inF0' (in 4-component vector of float) 0:243 isnan (global 4-component vector of bool) -0:243 'inF0' (temp 4-component vector of float) +0:243 'inF0' (in 4-component vector of float) 0:244 ldexp (global 4-component vector of float) -0:244 'inF0' (temp 4-component vector of float) -0:244 'inF1' (temp 4-component vector of float) +0:244 'inF0' (in 4-component vector of float) +0:244 'inF1' (in 4-component vector of float) 0:245 length (global float) -0:245 'inF0' (temp 4-component vector of float) +0:245 'inF0' (in 4-component vector of float) 0:246 log (global 4-component vector of float) -0:246 'inF0' (temp 4-component vector of float) +0:246 'inF0' (in 4-component vector of float) 0:247 vector-scale (temp 4-component vector of float) 0:247 log2 (temp 4-component vector of float) -0:247 'inF0' (temp 4-component vector of float) +0:247 'inF0' (in 4-component vector of float) 0:247 Constant: 0:247 0.301030 0:248 log2 (global 4-component vector of float) -0:248 'inF0' (temp 4-component vector of float) +0:248 'inF0' (in 4-component vector of float) 0:249 max (global 4-component vector of float) -0:249 'inF0' (temp 4-component vector of float) -0:249 'inF1' (temp 4-component vector of float) +0:249 'inF0' (in 4-component vector of float) +0:249 'inF1' (in 4-component vector of float) 0:250 min (global 4-component vector of float) -0:250 'inF0' (temp 4-component vector of float) -0:250 'inF1' (temp 4-component vector of float) +0:250 'inF0' (in 4-component vector of float) +0:250 'inF1' (in 4-component vector of float) 0:252 normalize (global 4-component vector of float) -0:252 'inF0' (temp 4-component vector of float) +0:252 'inF0' (in 4-component vector of float) 0:253 pow (global 4-component vector of float) -0:253 'inF0' (temp 4-component vector of float) -0:253 'inF1' (temp 4-component vector of float) +0:253 'inF0' (in 4-component vector of float) +0:253 'inF1' (in 4-component vector of float) 0:254 radians (global 4-component vector of float) -0:254 'inF0' (temp 4-component vector of float) +0:254 'inF0' (in 4-component vector of float) 0:255 reflect (global 4-component vector of float) -0:255 'inF0' (temp 4-component vector of float) -0:255 'inF1' (temp 4-component vector of float) +0:255 'inF0' (in 4-component vector of float) +0:255 'inF1' (in 4-component vector of float) 0:256 refract (global 4-component vector of float) -0:256 'inF0' (temp 4-component vector of float) -0:256 'inF1' (temp 4-component vector of float) +0:256 'inF0' (in 4-component vector of float) +0:256 'inF1' (in 4-component vector of float) 0:256 Constant: 0:256 2.000000 0:? bitFieldReverse (global 4-component vector of uint) @@ -620,45 +620,45 @@ Shader version: 450 0:? 3 (const uint) 0:? 4 (const uint) 0:258 roundEven (global 4-component vector of float) -0:258 'inF0' (temp 4-component vector of float) +0:258 'inF0' (in 4-component vector of float) 0:259 inverse sqrt (global 4-component vector of float) -0:259 'inF0' (temp 4-component vector of float) +0:259 'inF0' (in 4-component vector of float) 0:260 clamp (temp 4-component vector of float) -0:260 'inF0' (temp 4-component vector of float) +0:260 'inF0' (in 4-component vector of float) 0:260 Constant: 0:260 0.000000 0:260 Constant: 0:260 1.000000 0:261 Sign (global 4-component vector of float) -0:261 'inF0' (temp 4-component vector of float) +0:261 'inF0' (in 4-component vector of float) 0:262 sine (global 4-component vector of float) -0:262 'inF0' (temp 4-component vector of float) +0:262 'inF0' (in 4-component vector of float) 0:263 Sequence 0:263 move second child to first child (temp 4-component vector of float) -0:263 'inF1' (temp 4-component vector of float) +0:263 'inF1' (in 4-component vector of float) 0:263 sine (temp 4-component vector of float) -0:263 'inF0' (temp 4-component vector of float) +0:263 'inF0' (in 4-component vector of float) 0:263 move second child to first child (temp 4-component vector of float) -0:263 'inF2' (temp 4-component vector of float) +0:263 'inF2' (in 4-component vector of float) 0:263 cosine (temp 4-component vector of float) -0:263 'inF0' (temp 4-component vector of float) +0:263 'inF0' (in 4-component vector of float) 0:264 hyp. sine (global 4-component vector of float) -0:264 'inF0' (temp 4-component vector of float) +0:264 'inF0' (in 4-component vector of float) 0:265 smoothstep (global 4-component vector of float) -0:265 'inF0' (temp 4-component vector of float) -0:265 'inF1' (temp 4-component vector of float) -0:265 'inF2' (temp 4-component vector of float) +0:265 'inF0' (in 4-component vector of float) +0:265 'inF1' (in 4-component vector of float) +0:265 'inF2' (in 4-component vector of float) 0:266 sqrt (global 4-component vector of float) -0:266 'inF0' (temp 4-component vector of float) +0:266 'inF0' (in 4-component vector of float) 0:267 step (global 4-component vector of float) -0:267 'inF0' (temp 4-component vector of float) -0:267 'inF1' (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) +0:267 'inF1' (in 4-component vector of float) 0:268 tangent (global 4-component vector of float) -0:268 'inF0' (temp 4-component vector of float) +0:268 'inF0' (in 4-component vector of float) 0:269 hyp. tangent (global 4-component vector of float) -0:269 'inF0' (temp 4-component vector of float) +0:269 'inF0' (in 4-component vector of float) 0:271 trunc (global 4-component vector of float) -0:271 'inF0' (temp 4-component vector of float) +0:271 'inF0' (in 4-component vector of float) 0:274 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -667,43 +667,43 @@ Shader version: 450 0:? 4.000000 0:339 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:331 Function Parameters: -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 'inF2' (temp 2X2 matrix of float) +0:331 'inF0' (in 2X2 matrix of float) +0:331 'inF1' (in 2X2 matrix of float) +0:331 'inF2' (in 2X2 matrix of float) 0:? Sequence 0:333 all (global bool) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 Absolute value (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 arc cosine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 any (global bool) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 arc sine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 arc tangent (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 arc tangent (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 Ceiling (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 clamp (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) -0:333 'inF2' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) +0:333 'inF2' (in 2X2 matrix of float) 0:333 cosine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 hyp. cosine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 degrees (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 determinant (global float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 exp (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 exp2 (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 findMSB (global int) 0:333 Constant: 0:333 7 (const int) @@ -711,80 +711,80 @@ Shader version: 450 0:333 Constant: 0:333 7 (const int) 0:333 Floor (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 mod (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 Fraction (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 frexp (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 ldexp (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 log (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 matrix-scale (temp 2X2 matrix of float) 0:333 log2 (temp 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 Constant: 0:333 0.301030 0:333 log2 (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 max (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 min (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 pow (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 radians (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 roundEven (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 inverse sqrt (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 clamp (temp 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 Constant: 0:333 0.000000 0:333 Constant: 0:333 1.000000 0:333 Sign (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 sine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 Sequence 0:333 move second child to first child (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 sine (temp 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 move second child to first child (temp 2X2 matrix of float) -0:333 'inF2' (temp 2X2 matrix of float) +0:333 'inF2' (in 2X2 matrix of float) 0:333 cosine (temp 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 hyp. sine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 smoothstep (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) -0:333 'inF2' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) +0:333 'inF2' (in 2X2 matrix of float) 0:333 sqrt (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 step (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 tangent (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 hyp. tangent (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 transpose (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 trunc (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:336 Branch: Return with expression 0:? Constant: 0:? 2.000000 @@ -793,43 +793,43 @@ Shader version: 450 0:? 2.000000 0:348 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:340 Function Parameters: -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 'inF2' (temp 3X3 matrix of float) +0:340 'inF0' (in 3X3 matrix of float) +0:340 'inF1' (in 3X3 matrix of float) +0:340 'inF2' (in 3X3 matrix of float) 0:? Sequence 0:342 all (global bool) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 Absolute value (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 arc cosine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 any (global bool) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 arc sine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 arc tangent (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 arc tangent (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 Ceiling (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 clamp (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) -0:342 'inF2' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) +0:342 'inF2' (in 3X3 matrix of float) 0:342 cosine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 hyp. cosine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 degrees (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 determinant (global float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 exp (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 exp2 (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 findMSB (global int) 0:342 Constant: 0:342 7 (const int) @@ -837,80 +837,80 @@ Shader version: 450 0:342 Constant: 0:342 7 (const int) 0:342 Floor (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 mod (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 Fraction (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 frexp (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 ldexp (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 log (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 matrix-scale (temp 3X3 matrix of float) 0:342 log2 (temp 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 Constant: 0:342 0.301030 0:342 log2 (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 max (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 min (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 pow (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 radians (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 roundEven (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 inverse sqrt (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 clamp (temp 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 Constant: 0:342 0.000000 0:342 Constant: 0:342 1.000000 0:342 Sign (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 sine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 Sequence 0:342 move second child to first child (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 sine (temp 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 move second child to first child (temp 3X3 matrix of float) -0:342 'inF2' (temp 3X3 matrix of float) +0:342 'inF2' (in 3X3 matrix of float) 0:342 cosine (temp 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 hyp. sine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 smoothstep (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) -0:342 'inF2' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) +0:342 'inF2' (in 3X3 matrix of float) 0:342 sqrt (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 step (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 tangent (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 hyp. tangent (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 transpose (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 trunc (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:345 Branch: Return with expression 0:? Constant: 0:? 3.000000 @@ -924,43 +924,43 @@ Shader version: 450 0:? 3.000000 0:369 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:349 Function Parameters: -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 'inF2' (temp 4X4 matrix of float) +0:349 'inF0' (in 4X4 matrix of float) +0:349 'inF1' (in 4X4 matrix of float) +0:349 'inF2' (in 4X4 matrix of float) 0:? Sequence 0:351 all (global bool) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 Absolute value (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 arc cosine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 any (global bool) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 arc sine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 arc tangent (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 arc tangent (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 Ceiling (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 clamp (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) -0:351 'inF2' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) +0:351 'inF2' (in 4X4 matrix of float) 0:351 cosine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 hyp. cosine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 degrees (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 determinant (global float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 exp (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 exp2 (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 findMSB (global int) 0:351 Constant: 0:351 7 (const int) @@ -968,80 +968,80 @@ Shader version: 450 0:351 Constant: 0:351 7 (const int) 0:351 Floor (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 mod (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 Fraction (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 frexp (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 ldexp (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 log (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 matrix-scale (temp 4X4 matrix of float) 0:351 log2 (temp 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 Constant: 0:351 0.301030 0:351 log2 (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 max (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 min (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 pow (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 radians (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 roundEven (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 inverse sqrt (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 clamp (temp 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 Constant: 0:351 0.000000 0:351 Constant: 0:351 1.000000 0:351 Sign (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 sine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 Sequence 0:351 move second child to first child (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 sine (temp 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 move second child to first child (temp 4X4 matrix of float) -0:351 'inF2' (temp 4X4 matrix of float) +0:351 'inF2' (in 4X4 matrix of float) 0:351 cosine (temp 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 hyp. sine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 smoothstep (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) -0:351 'inF2' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) +0:351 'inF2' (in 4X4 matrix of float) 0:351 sqrt (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 step (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 tangent (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 hyp. tangent (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 transpose (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 trunc (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:354 Branch: Return with expression 0:? Constant: 0:? 4.000000 @@ -1062,166 +1062,166 @@ Shader version: 450 0:? 4.000000 0:376 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:372 Function Parameters: -0:372 'inF0' (temp float) -0:372 'inF1' (temp float) -0:372 'inFV0' (temp 2-component vector of float) -0:372 'inFV1' (temp 2-component vector of float) -0:372 'inFM0' (temp 2X2 matrix of float) -0:372 'inFM1' (temp 2X2 matrix of float) +0:372 'inF0' (in float) +0:372 'inF1' (in float) +0:372 'inFV0' (in 2-component vector of float) +0:372 'inFV1' (in 2-component vector of float) +0:372 'inFM0' (in 2X2 matrix of float) +0:372 'inFM1' (in 2X2 matrix of float) 0:? Sequence 0:373 move second child to first child (temp float) 0:373 'r0' (temp float) 0:373 component-wise multiply (temp float) -0:373 'inF0' (temp float) -0:373 'inF1' (temp float) +0:373 'inF0' (in float) +0:373 'inF1' (in float) 0:373 move second child to first child (temp 2-component vector of float) 0:373 'r1' (temp 2-component vector of float) 0:373 vector-scale (temp 2-component vector of float) -0:373 'inFV0' (temp 2-component vector of float) -0:373 'inF0' (temp float) +0:373 'inFV0' (in 2-component vector of float) +0:373 'inF0' (in float) 0:373 move second child to first child (temp 2-component vector of float) 0:373 'r2' (temp 2-component vector of float) 0:373 vector-scale (temp 2-component vector of float) -0:373 'inF0' (temp float) -0:373 'inFV0' (temp 2-component vector of float) +0:373 'inF0' (in float) +0:373 'inFV0' (in 2-component vector of float) 0:373 move second child to first child (temp float) 0:373 'r3' (temp float) 0:373 dot-product (global float) -0:373 'inFV0' (temp 2-component vector of float) -0:373 'inFV1' (temp 2-component vector of float) +0:373 'inFV0' (in 2-component vector of float) +0:373 'inFV1' (in 2-component vector of float) 0:373 move second child to first child (temp 2-component vector of float) 0:373 'r4' (temp 2-component vector of float) 0:373 matrix-times-vector (temp 2-component vector of float) -0:373 'inFM0' (temp 2X2 matrix of float) -0:373 'inFV0' (temp 2-component vector of float) +0:373 'inFM0' (in 2X2 matrix of float) +0:373 'inFV0' (in 2-component vector of float) 0:373 move second child to first child (temp 2-component vector of float) 0:373 'r5' (temp 2-component vector of float) 0:373 vector-times-matrix (temp 2-component vector of float) -0:373 'inFV0' (temp 2-component vector of float) -0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inFV0' (in 2-component vector of float) +0:373 'inFM0' (in 2X2 matrix of float) 0:373 move second child to first child (temp 2X2 matrix of float) 0:373 'r6' (temp 2X2 matrix of float) 0:373 matrix-scale (temp 2X2 matrix of float) -0:373 'inFM0' (temp 2X2 matrix of float) -0:373 'inF0' (temp float) +0:373 'inFM0' (in 2X2 matrix of float) +0:373 'inF0' (in float) 0:373 move second child to first child (temp 2X2 matrix of float) 0:373 'r7' (temp 2X2 matrix of float) 0:373 matrix-scale (temp 2X2 matrix of float) -0:373 'inF0' (temp float) -0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inF0' (in float) +0:373 'inFM0' (in 2X2 matrix of float) 0:373 move second child to first child (temp 2X2 matrix of float) 0:373 'r8' (temp 2X2 matrix of float) 0:373 matrix-multiply (temp 2X2 matrix of float) -0:373 'inFM0' (temp 2X2 matrix of float) -0:373 'inFM1' (temp 2X2 matrix of float) +0:373 'inFM0' (in 2X2 matrix of float) +0:373 'inFM1' (in 2X2 matrix of float) 0:383 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:379 Function Parameters: -0:379 'inF0' (temp float) -0:379 'inF1' (temp float) -0:379 'inFV0' (temp 3-component vector of float) -0:379 'inFV1' (temp 3-component vector of float) -0:379 'inFM0' (temp 3X3 matrix of float) -0:379 'inFM1' (temp 3X3 matrix of float) +0:379 'inF0' (in float) +0:379 'inF1' (in float) +0:379 'inFV0' (in 3-component vector of float) +0:379 'inFV1' (in 3-component vector of float) +0:379 'inFM0' (in 3X3 matrix of float) +0:379 'inFM1' (in 3X3 matrix of float) 0:? Sequence 0:380 move second child to first child (temp float) 0:380 'r0' (temp float) 0:380 component-wise multiply (temp float) -0:380 'inF0' (temp float) -0:380 'inF1' (temp float) +0:380 'inF0' (in float) +0:380 'inF1' (in float) 0:380 move second child to first child (temp 3-component vector of float) 0:380 'r1' (temp 3-component vector of float) 0:380 vector-scale (temp 3-component vector of float) -0:380 'inFV0' (temp 3-component vector of float) -0:380 'inF0' (temp float) +0:380 'inFV0' (in 3-component vector of float) +0:380 'inF0' (in float) 0:380 move second child to first child (temp 3-component vector of float) 0:380 'r2' (temp 3-component vector of float) 0:380 vector-scale (temp 3-component vector of float) -0:380 'inF0' (temp float) -0:380 'inFV0' (temp 3-component vector of float) +0:380 'inF0' (in float) +0:380 'inFV0' (in 3-component vector of float) 0:380 move second child to first child (temp float) 0:380 'r3' (temp float) 0:380 dot-product (global float) -0:380 'inFV0' (temp 3-component vector of float) -0:380 'inFV1' (temp 3-component vector of float) +0:380 'inFV0' (in 3-component vector of float) +0:380 'inFV1' (in 3-component vector of float) 0:380 move second child to first child (temp 3-component vector of float) 0:380 'r4' (temp 3-component vector of float) 0:380 matrix-times-vector (temp 3-component vector of float) -0:380 'inFM0' (temp 3X3 matrix of float) -0:380 'inFV0' (temp 3-component vector of float) +0:380 'inFM0' (in 3X3 matrix of float) +0:380 'inFV0' (in 3-component vector of float) 0:380 move second child to first child (temp 3-component vector of float) 0:380 'r5' (temp 3-component vector of float) 0:380 vector-times-matrix (temp 3-component vector of float) -0:380 'inFV0' (temp 3-component vector of float) -0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inFV0' (in 3-component vector of float) +0:380 'inFM0' (in 3X3 matrix of float) 0:380 move second child to first child (temp 3X3 matrix of float) 0:380 'r6' (temp 3X3 matrix of float) 0:380 matrix-scale (temp 3X3 matrix of float) -0:380 'inFM0' (temp 3X3 matrix of float) -0:380 'inF0' (temp float) +0:380 'inFM0' (in 3X3 matrix of float) +0:380 'inF0' (in float) 0:380 move second child to first child (temp 3X3 matrix of float) 0:380 'r7' (temp 3X3 matrix of float) 0:380 matrix-scale (temp 3X3 matrix of float) -0:380 'inF0' (temp float) -0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inF0' (in float) +0:380 'inFM0' (in 3X3 matrix of float) 0:380 move second child to first child (temp 3X3 matrix of float) 0:380 'r8' (temp 3X3 matrix of float) 0:380 matrix-multiply (temp 3X3 matrix of float) -0:380 'inFM0' (temp 3X3 matrix of float) -0:380 'inFM1' (temp 3X3 matrix of float) +0:380 'inFM0' (in 3X3 matrix of float) +0:380 'inFM1' (in 3X3 matrix of float) 0:389 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:386 Function Parameters: -0:386 'inF0' (temp float) -0:386 'inF1' (temp float) -0:386 'inFV0' (temp 4-component vector of float) -0:386 'inFV1' (temp 4-component vector of float) -0:386 'inFM0' (temp 4X4 matrix of float) -0:386 'inFM1' (temp 4X4 matrix of float) +0:386 'inF0' (in float) +0:386 'inF1' (in float) +0:386 'inFV0' (in 4-component vector of float) +0:386 'inFV1' (in 4-component vector of float) +0:386 'inFM0' (in 4X4 matrix of float) +0:386 'inFM1' (in 4X4 matrix of float) 0:? Sequence 0:387 move second child to first child (temp float) 0:387 'r0' (temp float) 0:387 component-wise multiply (temp float) -0:387 'inF0' (temp float) -0:387 'inF1' (temp float) +0:387 'inF0' (in float) +0:387 'inF1' (in float) 0:387 move second child to first child (temp 4-component vector of float) 0:387 'r1' (temp 4-component vector of float) 0:387 vector-scale (temp 4-component vector of float) -0:387 'inFV0' (temp 4-component vector of float) -0:387 'inF0' (temp float) +0:387 'inFV0' (in 4-component vector of float) +0:387 'inF0' (in float) 0:387 move second child to first child (temp 4-component vector of float) 0:387 'r2' (temp 4-component vector of float) 0:387 vector-scale (temp 4-component vector of float) -0:387 'inF0' (temp float) -0:387 'inFV0' (temp 4-component vector of float) +0:387 'inF0' (in float) +0:387 'inFV0' (in 4-component vector of float) 0:387 move second child to first child (temp float) 0:387 'r3' (temp float) 0:387 dot-product (global float) -0:387 'inFV0' (temp 4-component vector of float) -0:387 'inFV1' (temp 4-component vector of float) +0:387 'inFV0' (in 4-component vector of float) +0:387 'inFV1' (in 4-component vector of float) 0:387 move second child to first child (temp 4-component vector of float) 0:387 'r4' (temp 4-component vector of float) 0:387 matrix-times-vector (temp 4-component vector of float) -0:387 'inFM0' (temp 4X4 matrix of float) -0:387 'inFV0' (temp 4-component vector of float) +0:387 'inFM0' (in 4X4 matrix of float) +0:387 'inFV0' (in 4-component vector of float) 0:387 move second child to first child (temp 4-component vector of float) 0:387 'r5' (temp 4-component vector of float) 0:387 vector-times-matrix (temp 4-component vector of float) -0:387 'inFV0' (temp 4-component vector of float) -0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inFV0' (in 4-component vector of float) +0:387 'inFM0' (in 4X4 matrix of float) 0:387 move second child to first child (temp 4X4 matrix of float) 0:387 'r6' (temp 4X4 matrix of float) 0:387 matrix-scale (temp 4X4 matrix of float) -0:387 'inFM0' (temp 4X4 matrix of float) -0:387 'inF0' (temp float) +0:387 'inFM0' (in 4X4 matrix of float) +0:387 'inF0' (in float) 0:387 move second child to first child (temp 4X4 matrix of float) 0:387 'r7' (temp 4X4 matrix of float) 0:387 matrix-scale (temp 4X4 matrix of float) -0:387 'inF0' (temp float) -0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inF0' (in float) +0:387 'inFM0' (in 4X4 matrix of float) 0:387 move second child to first child (temp 4X4 matrix of float) 0:387 'r8' (temp 4X4 matrix of float) 0:387 matrix-multiply (temp 4X4 matrix of float) -0:387 'inFM0' (temp 4X4 matrix of float) -0:387 'inFM1' (temp 4X4 matrix of float) +0:387 'inFM0' (in 4X4 matrix of float) +0:387 'inFM1' (in 4X4 matrix of float) 0:? Linker Objects @@ -1232,52 +1232,52 @@ Shader version: 450 0:? Sequence 0:62 Function Definition: VertexShaderFunction(f1;f1;f1;u1;u1; (temp float) 0:2 Function Parameters: -0:2 'inF0' (temp float) -0:2 'inF1' (temp float) -0:2 'inF2' (temp float) -0:2 'inU0' (temp uint) -0:2 'inU1' (temp uint) +0:2 'inF0' (in float) +0:2 'inF1' (in float) +0:2 'inF2' (in float) +0:2 'inU0' (in uint) +0:2 'inU1' (in uint) 0:? Sequence 0:3 all (global bool) -0:3 'inF0' (temp float) +0:3 'inF0' (in float) 0:4 Absolute value (global float) -0:4 'inF0' (temp float) +0:4 'inF0' (in float) 0:5 arc cosine (global float) -0:5 'inF0' (temp float) +0:5 'inF0' (in float) 0:6 any (global bool) -0:6 'inF0' (temp float) +0:6 'inF0' (in float) 0:7 arc sine (global float) -0:7 'inF0' (temp float) +0:7 'inF0' (in float) 0:8 floatBitsToInt (global int) -0:8 'inF0' (temp float) +0:8 'inF0' (in float) 0:9 floatBitsToUint (global uint) -0:9 'inF0' (temp float) +0:9 'inF0' (in float) 0:10 intBitsToFloat (global float) -0:10 'inU0' (temp uint) +0:10 'inU0' (in uint) 0:12 arc tangent (global float) -0:12 'inF0' (temp float) +0:12 'inF0' (in float) 0:13 arc tangent (global float) -0:13 'inF0' (temp float) -0:13 'inF1' (temp float) +0:13 'inF0' (in float) +0:13 'inF1' (in float) 0:14 Ceiling (global float) -0:14 'inF0' (temp float) +0:14 'inF0' (in float) 0:15 clamp (global float) -0:15 'inF0' (temp float) -0:15 'inF1' (temp float) -0:15 'inF2' (temp float) +0:15 'inF0' (in float) +0:15 'inF1' (in float) +0:15 'inF2' (in float) 0:16 cosine (global float) -0:16 'inF0' (temp float) +0:16 'inF0' (in float) 0:17 hyp. cosine (global float) -0:17 'inF0' (temp float) +0:17 'inF0' (in float) 0:18 bitCount (global uint) 0:18 Constant: 0:18 7 (const uint) 0:19 degrees (global float) -0:19 'inF0' (temp float) +0:19 'inF0' (in float) 0:23 exp (global float) -0:23 'inF0' (temp float) +0:23 'inF0' (in float) 0:24 exp2 (global float) -0:24 'inF0' (temp float) +0:24 'inF0' (in float) 0:25 findMSB (global int) 0:25 Constant: 0:25 7 (const int) @@ -1285,156 +1285,156 @@ Shader version: 450 0:26 Constant: 0:26 7 (const int) 0:27 Floor (global float) -0:27 'inF0' (temp float) +0:27 'inF0' (in float) 0:29 mod (global float) -0:29 'inF0' (temp float) -0:29 'inF1' (temp float) +0:29 'inF0' (in float) +0:29 'inF1' (in float) 0:30 Fraction (global float) -0:30 'inF0' (temp float) +0:30 'inF0' (in float) 0:31 frexp (global float) -0:31 'inF0' (temp float) -0:31 'inF1' (temp float) +0:31 'inF0' (in float) +0:31 'inF1' (in float) 0:32 isinf (global bool) -0:32 'inF0' (temp float) +0:32 'inF0' (in float) 0:33 isnan (global bool) -0:33 'inF0' (temp float) +0:33 'inF0' (in float) 0:34 ldexp (global float) -0:34 'inF0' (temp float) -0:34 'inF1' (temp float) +0:34 'inF0' (in float) +0:34 'inF1' (in float) 0:35 log (global float) -0:35 'inF0' (temp float) +0:35 'inF0' (in float) 0:36 component-wise multiply (temp float) 0:36 log2 (temp float) -0:36 'inF0' (temp float) +0:36 'inF0' (in float) 0:36 Constant: 0:36 0.301030 0:37 log2 (global float) -0:37 'inF0' (temp float) +0:37 'inF0' (in float) 0:38 max (global float) -0:38 'inF0' (temp float) -0:38 'inF1' (temp float) +0:38 'inF0' (in float) +0:38 'inF1' (in float) 0:39 min (global float) -0:39 'inF0' (temp float) -0:39 'inF1' (temp float) +0:39 'inF0' (in float) +0:39 'inF1' (in float) 0:41 pow (global float) -0:41 'inF0' (temp float) -0:41 'inF1' (temp float) +0:41 'inF0' (in float) +0:41 'inF1' (in float) 0:42 radians (global float) -0:42 'inF0' (temp float) +0:42 'inF0' (in float) 0:43 bitFieldReverse (global uint) 0:43 Constant: 0:43 2 (const uint) 0:44 roundEven (global float) -0:44 'inF0' (temp float) +0:44 'inF0' (in float) 0:45 inverse sqrt (global float) -0:45 'inF0' (temp float) +0:45 'inF0' (in float) 0:46 clamp (temp float) -0:46 'inF0' (temp float) +0:46 'inF0' (in float) 0:46 Constant: 0:46 0.000000 0:46 Constant: 0:46 1.000000 0:47 Sign (global float) -0:47 'inF0' (temp float) +0:47 'inF0' (in float) 0:48 sine (global float) -0:48 'inF0' (temp float) +0:48 'inF0' (in float) 0:49 Sequence 0:49 move second child to first child (temp float) -0:49 'inF1' (temp float) +0:49 'inF1' (in float) 0:49 sine (temp float) -0:49 'inF0' (temp float) +0:49 'inF0' (in float) 0:49 move second child to first child (temp float) -0:49 'inF2' (temp float) +0:49 'inF2' (in float) 0:49 cosine (temp float) -0:49 'inF0' (temp float) +0:49 'inF0' (in float) 0:50 hyp. sine (global float) -0:50 'inF0' (temp float) +0:50 'inF0' (in float) 0:51 smoothstep (global float) -0:51 'inF0' (temp float) -0:51 'inF1' (temp float) -0:51 'inF2' (temp float) +0:51 'inF0' (in float) +0:51 'inF1' (in float) +0:51 'inF2' (in float) 0:52 sqrt (global float) -0:52 'inF0' (temp float) +0:52 'inF0' (in float) 0:53 step (global float) -0:53 'inF0' (temp float) -0:53 'inF1' (temp float) +0:53 'inF0' (in float) +0:53 'inF1' (in float) 0:54 tangent (global float) -0:54 'inF0' (temp float) +0:54 'inF0' (in float) 0:55 hyp. tangent (global float) -0:55 'inF0' (temp float) +0:55 'inF0' (in float) 0:57 trunc (global float) -0:57 'inF0' (temp float) +0:57 'inF0' (in float) 0:59 Branch: Return with expression 0:59 Constant: 0:59 0.000000 0:68 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) 0:63 Function Parameters: -0:63 'inF0' (temp 1-component vector of float) -0:63 'inF1' (temp 1-component vector of float) -0:63 'inF2' (temp 1-component vector of float) +0:63 'inF0' (in 1-component vector of float) +0:63 'inF1' (in 1-component vector of float) +0:63 'inF2' (in 1-component vector of float) 0:? Sequence 0:65 Branch: Return with expression 0:65 Constant: 0:65 0.000000 0:137 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:69 Function Parameters: -0:69 'inF0' (temp 2-component vector of float) -0:69 'inF1' (temp 2-component vector of float) -0:69 'inF2' (temp 2-component vector of float) -0:69 'inU0' (temp 2-component vector of uint) -0:69 'inU1' (temp 2-component vector of uint) +0:69 'inF0' (in 2-component vector of float) +0:69 'inF1' (in 2-component vector of float) +0:69 'inF2' (in 2-component vector of float) +0:69 'inU0' (in 2-component vector of uint) +0:69 'inU1' (in 2-component vector of uint) 0:? Sequence 0:70 all (global bool) -0:70 'inF0' (temp 2-component vector of float) +0:70 'inF0' (in 2-component vector of float) 0:71 Absolute value (global 2-component vector of float) -0:71 'inF0' (temp 2-component vector of float) +0:71 'inF0' (in 2-component vector of float) 0:72 arc cosine (global 2-component vector of float) -0:72 'inF0' (temp 2-component vector of float) +0:72 'inF0' (in 2-component vector of float) 0:73 any (global bool) -0:73 'inF0' (temp 2-component vector of float) +0:73 'inF0' (in 2-component vector of float) 0:74 arc sine (global 2-component vector of float) -0:74 'inF0' (temp 2-component vector of float) +0:74 'inF0' (in 2-component vector of float) 0:75 floatBitsToInt (global 2-component vector of int) -0:75 'inF0' (temp 2-component vector of float) +0:75 'inF0' (in 2-component vector of float) 0:76 floatBitsToUint (global 2-component vector of uint) -0:76 'inF0' (temp 2-component vector of float) +0:76 'inF0' (in 2-component vector of float) 0:77 intBitsToFloat (global 2-component vector of float) -0:77 'inU0' (temp 2-component vector of uint) +0:77 'inU0' (in 2-component vector of uint) 0:79 arc tangent (global 2-component vector of float) -0:79 'inF0' (temp 2-component vector of float) +0:79 'inF0' (in 2-component vector of float) 0:80 arc tangent (global 2-component vector of float) -0:80 'inF0' (temp 2-component vector of float) -0:80 'inF1' (temp 2-component vector of float) +0:80 'inF0' (in 2-component vector of float) +0:80 'inF1' (in 2-component vector of float) 0:81 Ceiling (global 2-component vector of float) -0:81 'inF0' (temp 2-component vector of float) +0:81 'inF0' (in 2-component vector of float) 0:82 clamp (global 2-component vector of float) -0:82 'inF0' (temp 2-component vector of float) -0:82 'inF1' (temp 2-component vector of float) -0:82 'inF2' (temp 2-component vector of float) +0:82 'inF0' (in 2-component vector of float) +0:82 'inF1' (in 2-component vector of float) +0:82 'inF2' (in 2-component vector of float) 0:83 cosine (global 2-component vector of float) -0:83 'inF0' (temp 2-component vector of float) +0:83 'inF0' (in 2-component vector of float) 0:84 hyp. cosine (global 2-component vector of float) -0:84 'inF0' (temp 2-component vector of float) +0:84 'inF0' (in 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:86 degrees (global 2-component vector of float) -0:86 'inF0' (temp 2-component vector of float) +0:86 'inF0' (in 2-component vector of float) 0:87 distance (global float) -0:87 'inF0' (temp 2-component vector of float) -0:87 'inF1' (temp 2-component vector of float) +0:87 'inF0' (in 2-component vector of float) +0:87 'inF1' (in 2-component vector of float) 0:88 dot-product (global float) -0:88 'inF0' (temp 2-component vector of float) -0:88 'inF1' (temp 2-component vector of float) +0:88 'inF0' (in 2-component vector of float) +0:88 'inF1' (in 2-component vector of float) 0:92 exp (global 2-component vector of float) -0:92 'inF0' (temp 2-component vector of float) +0:92 'inF0' (in 2-component vector of float) 0:93 exp2 (global 2-component vector of float) -0:93 'inF0' (temp 2-component vector of float) +0:93 'inF0' (in 2-component vector of float) 0:94 face-forward (global 2-component vector of float) -0:94 'inF0' (temp 2-component vector of float) -0:94 'inF1' (temp 2-component vector of float) -0:94 'inF2' (temp 2-component vector of float) +0:94 'inF0' (in 2-component vector of float) +0:94 'inF1' (in 2-component vector of float) +0:94 'inF2' (in 2-component vector of float) 0:95 findMSB (global int) 0:95 Constant: 0:95 7 (const int) @@ -1442,52 +1442,52 @@ Shader version: 450 0:96 Constant: 0:96 7 (const int) 0:97 Floor (global 2-component vector of float) -0:97 'inF0' (temp 2-component vector of float) +0:97 'inF0' (in 2-component vector of float) 0:99 mod (global 2-component vector of float) -0:99 'inF0' (temp 2-component vector of float) -0:99 'inF1' (temp 2-component vector of float) +0:99 'inF0' (in 2-component vector of float) +0:99 'inF1' (in 2-component vector of float) 0:100 Fraction (global 2-component vector of float) -0:100 'inF0' (temp 2-component vector of float) +0:100 'inF0' (in 2-component vector of float) 0:101 frexp (global 2-component vector of float) -0:101 'inF0' (temp 2-component vector of float) -0:101 'inF1' (temp 2-component vector of float) +0:101 'inF0' (in 2-component vector of float) +0:101 'inF1' (in 2-component vector of float) 0:102 isinf (global 2-component vector of bool) -0:102 'inF0' (temp 2-component vector of float) +0:102 'inF0' (in 2-component vector of float) 0:103 isnan (global 2-component vector of bool) -0:103 'inF0' (temp 2-component vector of float) +0:103 'inF0' (in 2-component vector of float) 0:104 ldexp (global 2-component vector of float) -0:104 'inF0' (temp 2-component vector of float) -0:104 'inF1' (temp 2-component vector of float) +0:104 'inF0' (in 2-component vector of float) +0:104 'inF1' (in 2-component vector of float) 0:105 length (global float) -0:105 'inF0' (temp 2-component vector of float) +0:105 'inF0' (in 2-component vector of float) 0:106 log (global 2-component vector of float) -0:106 'inF0' (temp 2-component vector of float) +0:106 'inF0' (in 2-component vector of float) 0:107 vector-scale (temp 2-component vector of float) 0:107 log2 (temp 2-component vector of float) -0:107 'inF0' (temp 2-component vector of float) +0:107 'inF0' (in 2-component vector of float) 0:107 Constant: 0:107 0.301030 0:108 log2 (global 2-component vector of float) -0:108 'inF0' (temp 2-component vector of float) +0:108 'inF0' (in 2-component vector of float) 0:109 max (global 2-component vector of float) -0:109 'inF0' (temp 2-component vector of float) -0:109 'inF1' (temp 2-component vector of float) +0:109 'inF0' (in 2-component vector of float) +0:109 'inF1' (in 2-component vector of float) 0:110 min (global 2-component vector of float) -0:110 'inF0' (temp 2-component vector of float) -0:110 'inF1' (temp 2-component vector of float) +0:110 'inF0' (in 2-component vector of float) +0:110 'inF1' (in 2-component vector of float) 0:112 normalize (global 2-component vector of float) -0:112 'inF0' (temp 2-component vector of float) +0:112 'inF0' (in 2-component vector of float) 0:113 pow (global 2-component vector of float) -0:113 'inF0' (temp 2-component vector of float) -0:113 'inF1' (temp 2-component vector of float) +0:113 'inF0' (in 2-component vector of float) +0:113 'inF1' (in 2-component vector of float) 0:114 radians (global 2-component vector of float) -0:114 'inF0' (temp 2-component vector of float) +0:114 'inF0' (in 2-component vector of float) 0:115 reflect (global 2-component vector of float) -0:115 'inF0' (temp 2-component vector of float) -0:115 'inF1' (temp 2-component vector of float) +0:115 'inF0' (in 2-component vector of float) +0:115 'inF1' (in 2-component vector of float) 0:116 refract (global 2-component vector of float) -0:116 'inF0' (temp 2-component vector of float) -0:116 'inF1' (temp 2-component vector of float) +0:116 'inF0' (in 2-component vector of float) +0:116 'inF1' (in 2-component vector of float) 0:116 Constant: 0:116 2.000000 0:? bitFieldReverse (global 2-component vector of uint) @@ -1495,112 +1495,112 @@ Shader version: 450 0:? 1 (const uint) 0:? 2 (const uint) 0:118 roundEven (global 2-component vector of float) -0:118 'inF0' (temp 2-component vector of float) +0:118 'inF0' (in 2-component vector of float) 0:119 inverse sqrt (global 2-component vector of float) -0:119 'inF0' (temp 2-component vector of float) +0:119 'inF0' (in 2-component vector of float) 0:120 clamp (temp 2-component vector of float) -0:120 'inF0' (temp 2-component vector of float) +0:120 'inF0' (in 2-component vector of float) 0:120 Constant: 0:120 0.000000 0:120 Constant: 0:120 1.000000 0:121 Sign (global 2-component vector of float) -0:121 'inF0' (temp 2-component vector of float) +0:121 'inF0' (in 2-component vector of float) 0:122 sine (global 2-component vector of float) -0:122 'inF0' (temp 2-component vector of float) +0:122 'inF0' (in 2-component vector of float) 0:123 Sequence 0:123 move second child to first child (temp 2-component vector of float) -0:123 'inF1' (temp 2-component vector of float) +0:123 'inF1' (in 2-component vector of float) 0:123 sine (temp 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) +0:123 'inF0' (in 2-component vector of float) 0:123 move second child to first child (temp 2-component vector of float) -0:123 'inF2' (temp 2-component vector of float) +0:123 'inF2' (in 2-component vector of float) 0:123 cosine (temp 2-component vector of float) -0:123 'inF0' (temp 2-component vector of float) +0:123 'inF0' (in 2-component vector of float) 0:124 hyp. sine (global 2-component vector of float) -0:124 'inF0' (temp 2-component vector of float) +0:124 'inF0' (in 2-component vector of float) 0:125 smoothstep (global 2-component vector of float) -0:125 'inF0' (temp 2-component vector of float) -0:125 'inF1' (temp 2-component vector of float) -0:125 'inF2' (temp 2-component vector of float) +0:125 'inF0' (in 2-component vector of float) +0:125 'inF1' (in 2-component vector of float) +0:125 'inF2' (in 2-component vector of float) 0:126 sqrt (global 2-component vector of float) -0:126 'inF0' (temp 2-component vector of float) +0:126 'inF0' (in 2-component vector of float) 0:127 step (global 2-component vector of float) -0:127 'inF0' (temp 2-component vector of float) -0:127 'inF1' (temp 2-component vector of float) +0:127 'inF0' (in 2-component vector of float) +0:127 'inF1' (in 2-component vector of float) 0:128 tangent (global 2-component vector of float) -0:128 'inF0' (temp 2-component vector of float) +0:128 'inF0' (in 2-component vector of float) 0:129 hyp. tangent (global 2-component vector of float) -0:129 'inF0' (temp 2-component vector of float) +0:129 'inF0' (in 2-component vector of float) 0:131 trunc (global 2-component vector of float) -0:131 'inF0' (temp 2-component vector of float) +0:131 'inF0' (in 2-component vector of float) 0:134 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:207 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:138 Function Parameters: -0:138 'inF0' (temp 3-component vector of float) -0:138 'inF1' (temp 3-component vector of float) -0:138 'inF2' (temp 3-component vector of float) -0:138 'inU0' (temp 3-component vector of uint) -0:138 'inU1' (temp 3-component vector of uint) +0:138 'inF0' (in 3-component vector of float) +0:138 'inF1' (in 3-component vector of float) +0:138 'inF2' (in 3-component vector of float) +0:138 'inU0' (in 3-component vector of uint) +0:138 'inU1' (in 3-component vector of uint) 0:? Sequence 0:139 all (global bool) -0:139 'inF0' (temp 3-component vector of float) +0:139 'inF0' (in 3-component vector of float) 0:140 Absolute value (global 3-component vector of float) -0:140 'inF0' (temp 3-component vector of float) +0:140 'inF0' (in 3-component vector of float) 0:141 arc cosine (global 3-component vector of float) -0:141 'inF0' (temp 3-component vector of float) +0:141 'inF0' (in 3-component vector of float) 0:142 any (global bool) -0:142 'inF0' (temp 3-component vector of float) +0:142 'inF0' (in 3-component vector of float) 0:143 arc sine (global 3-component vector of float) -0:143 'inF0' (temp 3-component vector of float) +0:143 'inF0' (in 3-component vector of float) 0:144 floatBitsToInt (global 3-component vector of int) -0:144 'inF0' (temp 3-component vector of float) +0:144 'inF0' (in 3-component vector of float) 0:145 floatBitsToUint (global 3-component vector of uint) -0:145 'inF0' (temp 3-component vector of float) +0:145 'inF0' (in 3-component vector of float) 0:146 intBitsToFloat (global 3-component vector of float) -0:146 'inU0' (temp 3-component vector of uint) +0:146 'inU0' (in 3-component vector of uint) 0:148 arc tangent (global 3-component vector of float) -0:148 'inF0' (temp 3-component vector of float) +0:148 'inF0' (in 3-component vector of float) 0:149 arc tangent (global 3-component vector of float) -0:149 'inF0' (temp 3-component vector of float) -0:149 'inF1' (temp 3-component vector of float) +0:149 'inF0' (in 3-component vector of float) +0:149 'inF1' (in 3-component vector of float) 0:150 Ceiling (global 3-component vector of float) -0:150 'inF0' (temp 3-component vector of float) +0:150 'inF0' (in 3-component vector of float) 0:151 clamp (global 3-component vector of float) -0:151 'inF0' (temp 3-component vector of float) -0:151 'inF1' (temp 3-component vector of float) -0:151 'inF2' (temp 3-component vector of float) +0:151 'inF0' (in 3-component vector of float) +0:151 'inF1' (in 3-component vector of float) +0:151 'inF2' (in 3-component vector of float) 0:152 cosine (global 3-component vector of float) -0:152 'inF0' (temp 3-component vector of float) +0:152 'inF0' (in 3-component vector of float) 0:153 hyp. cosine (global 3-component vector of float) -0:153 'inF0' (temp 3-component vector of float) +0:153 'inF0' (in 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:155 cross-product (global 3-component vector of float) -0:155 'inF0' (temp 3-component vector of float) -0:155 'inF1' (temp 3-component vector of float) +0:155 'inF0' (in 3-component vector of float) +0:155 'inF1' (in 3-component vector of float) 0:156 degrees (global 3-component vector of float) -0:156 'inF0' (temp 3-component vector of float) +0:156 'inF0' (in 3-component vector of float) 0:157 distance (global float) -0:157 'inF0' (temp 3-component vector of float) -0:157 'inF1' (temp 3-component vector of float) +0:157 'inF0' (in 3-component vector of float) +0:157 'inF1' (in 3-component vector of float) 0:158 dot-product (global float) -0:158 'inF0' (temp 3-component vector of float) -0:158 'inF1' (temp 3-component vector of float) +0:158 'inF0' (in 3-component vector of float) +0:158 'inF1' (in 3-component vector of float) 0:162 exp (global 3-component vector of float) -0:162 'inF0' (temp 3-component vector of float) +0:162 'inF0' (in 3-component vector of float) 0:163 exp2 (global 3-component vector of float) -0:163 'inF0' (temp 3-component vector of float) +0:163 'inF0' (in 3-component vector of float) 0:164 face-forward (global 3-component vector of float) -0:164 'inF0' (temp 3-component vector of float) -0:164 'inF1' (temp 3-component vector of float) -0:164 'inF2' (temp 3-component vector of float) +0:164 'inF0' (in 3-component vector of float) +0:164 'inF1' (in 3-component vector of float) +0:164 'inF2' (in 3-component vector of float) 0:165 findMSB (global int) 0:165 Constant: 0:165 7 (const int) @@ -1608,52 +1608,52 @@ Shader version: 450 0:166 Constant: 0:166 7 (const int) 0:167 Floor (global 3-component vector of float) -0:167 'inF0' (temp 3-component vector of float) +0:167 'inF0' (in 3-component vector of float) 0:169 mod (global 3-component vector of float) -0:169 'inF0' (temp 3-component vector of float) -0:169 'inF1' (temp 3-component vector of float) +0:169 'inF0' (in 3-component vector of float) +0:169 'inF1' (in 3-component vector of float) 0:170 Fraction (global 3-component vector of float) -0:170 'inF0' (temp 3-component vector of float) +0:170 'inF0' (in 3-component vector of float) 0:171 frexp (global 3-component vector of float) -0:171 'inF0' (temp 3-component vector of float) -0:171 'inF1' (temp 3-component vector of float) +0:171 'inF0' (in 3-component vector of float) +0:171 'inF1' (in 3-component vector of float) 0:172 isinf (global 3-component vector of bool) -0:172 'inF0' (temp 3-component vector of float) +0:172 'inF0' (in 3-component vector of float) 0:173 isnan (global 3-component vector of bool) -0:173 'inF0' (temp 3-component vector of float) +0:173 'inF0' (in 3-component vector of float) 0:174 ldexp (global 3-component vector of float) -0:174 'inF0' (temp 3-component vector of float) -0:174 'inF1' (temp 3-component vector of float) +0:174 'inF0' (in 3-component vector of float) +0:174 'inF1' (in 3-component vector of float) 0:175 length (global float) -0:175 'inF0' (temp 3-component vector of float) +0:175 'inF0' (in 3-component vector of float) 0:176 log (global 3-component vector of float) -0:176 'inF0' (temp 3-component vector of float) +0:176 'inF0' (in 3-component vector of float) 0:177 vector-scale (temp 3-component vector of float) 0:177 log2 (temp 3-component vector of float) -0:177 'inF0' (temp 3-component vector of float) +0:177 'inF0' (in 3-component vector of float) 0:177 Constant: 0:177 0.301030 0:178 log2 (global 3-component vector of float) -0:178 'inF0' (temp 3-component vector of float) +0:178 'inF0' (in 3-component vector of float) 0:179 max (global 3-component vector of float) -0:179 'inF0' (temp 3-component vector of float) -0:179 'inF1' (temp 3-component vector of float) +0:179 'inF0' (in 3-component vector of float) +0:179 'inF1' (in 3-component vector of float) 0:180 min (global 3-component vector of float) -0:180 'inF0' (temp 3-component vector of float) -0:180 'inF1' (temp 3-component vector of float) +0:180 'inF0' (in 3-component vector of float) +0:180 'inF1' (in 3-component vector of float) 0:182 normalize (global 3-component vector of float) -0:182 'inF0' (temp 3-component vector of float) +0:182 'inF0' (in 3-component vector of float) 0:183 pow (global 3-component vector of float) -0:183 'inF0' (temp 3-component vector of float) -0:183 'inF1' (temp 3-component vector of float) +0:183 'inF0' (in 3-component vector of float) +0:183 'inF1' (in 3-component vector of float) 0:184 radians (global 3-component vector of float) -0:184 'inF0' (temp 3-component vector of float) +0:184 'inF0' (in 3-component vector of float) 0:185 reflect (global 3-component vector of float) -0:185 'inF0' (temp 3-component vector of float) -0:185 'inF1' (temp 3-component vector of float) +0:185 'inF0' (in 3-component vector of float) +0:185 'inF1' (in 3-component vector of float) 0:186 refract (global 3-component vector of float) -0:186 'inF0' (temp 3-component vector of float) -0:186 'inF1' (temp 3-component vector of float) +0:186 'inF0' (in 3-component vector of float) +0:186 'inF1' (in 3-component vector of float) 0:186 Constant: 0:186 2.000000 0:? bitFieldReverse (global 3-component vector of uint) @@ -1662,45 +1662,45 @@ Shader version: 450 0:? 2 (const uint) 0:? 3 (const uint) 0:188 roundEven (global 3-component vector of float) -0:188 'inF0' (temp 3-component vector of float) +0:188 'inF0' (in 3-component vector of float) 0:189 inverse sqrt (global 3-component vector of float) -0:189 'inF0' (temp 3-component vector of float) +0:189 'inF0' (in 3-component vector of float) 0:190 clamp (temp 3-component vector of float) -0:190 'inF0' (temp 3-component vector of float) +0:190 'inF0' (in 3-component vector of float) 0:190 Constant: 0:190 0.000000 0:190 Constant: 0:190 1.000000 0:191 Sign (global 3-component vector of float) -0:191 'inF0' (temp 3-component vector of float) +0:191 'inF0' (in 3-component vector of float) 0:192 sine (global 3-component vector of float) -0:192 'inF0' (temp 3-component vector of float) +0:192 'inF0' (in 3-component vector of float) 0:193 Sequence 0:193 move second child to first child (temp 3-component vector of float) -0:193 'inF1' (temp 3-component vector of float) +0:193 'inF1' (in 3-component vector of float) 0:193 sine (temp 3-component vector of float) -0:193 'inF0' (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) 0:193 move second child to first child (temp 3-component vector of float) -0:193 'inF2' (temp 3-component vector of float) +0:193 'inF2' (in 3-component vector of float) 0:193 cosine (temp 3-component vector of float) -0:193 'inF0' (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) 0:194 hyp. sine (global 3-component vector of float) -0:194 'inF0' (temp 3-component vector of float) +0:194 'inF0' (in 3-component vector of float) 0:195 smoothstep (global 3-component vector of float) -0:195 'inF0' (temp 3-component vector of float) -0:195 'inF1' (temp 3-component vector of float) -0:195 'inF2' (temp 3-component vector of float) +0:195 'inF0' (in 3-component vector of float) +0:195 'inF1' (in 3-component vector of float) +0:195 'inF2' (in 3-component vector of float) 0:196 sqrt (global 3-component vector of float) -0:196 'inF0' (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) 0:197 step (global 3-component vector of float) -0:197 'inF0' (temp 3-component vector of float) -0:197 'inF1' (temp 3-component vector of float) +0:197 'inF0' (in 3-component vector of float) +0:197 'inF1' (in 3-component vector of float) 0:198 tangent (global 3-component vector of float) -0:198 'inF0' (temp 3-component vector of float) +0:198 'inF0' (in 3-component vector of float) 0:199 hyp. tangent (global 3-component vector of float) -0:199 'inF0' (temp 3-component vector of float) +0:199 'inF0' (in 3-component vector of float) 0:201 trunc (global 3-component vector of float) -0:201 'inF0' (temp 3-component vector of float) +0:201 'inF0' (in 3-component vector of float) 0:204 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -1708,43 +1708,43 @@ Shader version: 450 0:? 3.000000 0:330 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:208 Function Parameters: -0:208 'inF0' (temp 4-component vector of float) -0:208 'inF1' (temp 4-component vector of float) -0:208 'inF2' (temp 4-component vector of float) -0:208 'inU0' (temp 4-component vector of uint) -0:208 'inU1' (temp 4-component vector of uint) +0:208 'inF0' (in 4-component vector of float) +0:208 'inF1' (in 4-component vector of float) +0:208 'inF2' (in 4-component vector of float) +0:208 'inU0' (in 4-component vector of uint) +0:208 'inU1' (in 4-component vector of uint) 0:? Sequence 0:209 all (global bool) -0:209 'inF0' (temp 4-component vector of float) +0:209 'inF0' (in 4-component vector of float) 0:210 Absolute value (global 4-component vector of float) -0:210 'inF0' (temp 4-component vector of float) +0:210 'inF0' (in 4-component vector of float) 0:211 arc cosine (global 4-component vector of float) -0:211 'inF0' (temp 4-component vector of float) +0:211 'inF0' (in 4-component vector of float) 0:212 any (global bool) -0:212 'inF0' (temp 4-component vector of float) +0:212 'inF0' (in 4-component vector of float) 0:213 arc sine (global 4-component vector of float) -0:213 'inF0' (temp 4-component vector of float) +0:213 'inF0' (in 4-component vector of float) 0:214 floatBitsToInt (global 4-component vector of int) -0:214 'inF0' (temp 4-component vector of float) +0:214 'inF0' (in 4-component vector of float) 0:215 floatBitsToUint (global 4-component vector of uint) -0:215 'inF0' (temp 4-component vector of float) +0:215 'inF0' (in 4-component vector of float) 0:216 intBitsToFloat (global 4-component vector of float) -0:216 'inU0' (temp 4-component vector of uint) +0:216 'inU0' (in 4-component vector of uint) 0:218 arc tangent (global 4-component vector of float) -0:218 'inF0' (temp 4-component vector of float) +0:218 'inF0' (in 4-component vector of float) 0:219 arc tangent (global 4-component vector of float) -0:219 'inF0' (temp 4-component vector of float) -0:219 'inF1' (temp 4-component vector of float) +0:219 'inF0' (in 4-component vector of float) +0:219 'inF1' (in 4-component vector of float) 0:220 Ceiling (global 4-component vector of float) -0:220 'inF0' (temp 4-component vector of float) +0:220 'inF0' (in 4-component vector of float) 0:221 clamp (global 4-component vector of float) -0:221 'inF0' (temp 4-component vector of float) -0:221 'inF1' (temp 4-component vector of float) -0:221 'inF2' (temp 4-component vector of float) +0:221 'inF0' (in 4-component vector of float) +0:221 'inF1' (in 4-component vector of float) +0:221 'inF2' (in 4-component vector of float) 0:222 cosine (global 4-component vector of float) -0:222 'inF0' (temp 4-component vector of float) +0:222 'inF0' (in 4-component vector of float) 0:223 hyp. cosine (global 4-component vector of float) -0:223 'inF0' (temp 4-component vector of float) +0:223 'inF0' (in 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) @@ -1752,41 +1752,41 @@ Shader version: 450 0:? 5 (const uint) 0:? 2 (const uint) 0:225 degrees (global 4-component vector of float) -0:225 'inF0' (temp 4-component vector of float) +0:225 'inF0' (in 4-component vector of float) 0:226 distance (global float) -0:226 'inF0' (temp 4-component vector of float) -0:226 'inF1' (temp 4-component vector of float) +0:226 'inF0' (in 4-component vector of float) +0:226 'inF1' (in 4-component vector of float) 0:227 dot-product (global float) -0:227 'inF0' (temp 4-component vector of float) -0:227 'inF1' (temp 4-component vector of float) +0:227 'inF0' (in 4-component vector of float) +0:227 'inF1' (in 4-component vector of float) 0:228 Construct vec4 (temp float) 0:228 Constant: 0:228 1.000000 0:228 component-wise multiply (temp float) 0:228 direct index (temp float) -0:228 'inF0' (temp 4-component vector of float) +0:228 'inF0' (in 4-component vector of float) 0:228 Constant: 0:228 1 (const int) 0:228 direct index (temp float) -0:228 'inF1' (temp 4-component vector of float) +0:228 'inF1' (in 4-component vector of float) 0:228 Constant: 0:228 1 (const int) 0:228 direct index (temp float) -0:228 'inF0' (temp 4-component vector of float) +0:228 'inF0' (in 4-component vector of float) 0:228 Constant: 0:228 2 (const int) 0:228 direct index (temp float) -0:228 'inF1' (temp 4-component vector of float) +0:228 'inF1' (in 4-component vector of float) 0:228 Constant: 0:228 3 (const int) 0:232 exp (global 4-component vector of float) -0:232 'inF0' (temp 4-component vector of float) +0:232 'inF0' (in 4-component vector of float) 0:233 exp2 (global 4-component vector of float) -0:233 'inF0' (temp 4-component vector of float) +0:233 'inF0' (in 4-component vector of float) 0:234 face-forward (global 4-component vector of float) -0:234 'inF0' (temp 4-component vector of float) -0:234 'inF1' (temp 4-component vector of float) -0:234 'inF2' (temp 4-component vector of float) +0:234 'inF0' (in 4-component vector of float) +0:234 'inF1' (in 4-component vector of float) +0:234 'inF2' (in 4-component vector of float) 0:235 findMSB (global int) 0:235 Constant: 0:235 7 (const int) @@ -1794,52 +1794,52 @@ Shader version: 450 0:236 Constant: 0:236 7 (const int) 0:237 Floor (global 4-component vector of float) -0:237 'inF0' (temp 4-component vector of float) +0:237 'inF0' (in 4-component vector of float) 0:239 mod (global 4-component vector of float) -0:239 'inF0' (temp 4-component vector of float) -0:239 'inF1' (temp 4-component vector of float) +0:239 'inF0' (in 4-component vector of float) +0:239 'inF1' (in 4-component vector of float) 0:240 Fraction (global 4-component vector of float) -0:240 'inF0' (temp 4-component vector of float) +0:240 'inF0' (in 4-component vector of float) 0:241 frexp (global 4-component vector of float) -0:241 'inF0' (temp 4-component vector of float) -0:241 'inF1' (temp 4-component vector of float) +0:241 'inF0' (in 4-component vector of float) +0:241 'inF1' (in 4-component vector of float) 0:242 isinf (global 4-component vector of bool) -0:242 'inF0' (temp 4-component vector of float) +0:242 'inF0' (in 4-component vector of float) 0:243 isnan (global 4-component vector of bool) -0:243 'inF0' (temp 4-component vector of float) +0:243 'inF0' (in 4-component vector of float) 0:244 ldexp (global 4-component vector of float) -0:244 'inF0' (temp 4-component vector of float) -0:244 'inF1' (temp 4-component vector of float) +0:244 'inF0' (in 4-component vector of float) +0:244 'inF1' (in 4-component vector of float) 0:245 length (global float) -0:245 'inF0' (temp 4-component vector of float) +0:245 'inF0' (in 4-component vector of float) 0:246 log (global 4-component vector of float) -0:246 'inF0' (temp 4-component vector of float) +0:246 'inF0' (in 4-component vector of float) 0:247 vector-scale (temp 4-component vector of float) 0:247 log2 (temp 4-component vector of float) -0:247 'inF0' (temp 4-component vector of float) +0:247 'inF0' (in 4-component vector of float) 0:247 Constant: 0:247 0.301030 0:248 log2 (global 4-component vector of float) -0:248 'inF0' (temp 4-component vector of float) +0:248 'inF0' (in 4-component vector of float) 0:249 max (global 4-component vector of float) -0:249 'inF0' (temp 4-component vector of float) -0:249 'inF1' (temp 4-component vector of float) +0:249 'inF0' (in 4-component vector of float) +0:249 'inF1' (in 4-component vector of float) 0:250 min (global 4-component vector of float) -0:250 'inF0' (temp 4-component vector of float) -0:250 'inF1' (temp 4-component vector of float) +0:250 'inF0' (in 4-component vector of float) +0:250 'inF1' (in 4-component vector of float) 0:252 normalize (global 4-component vector of float) -0:252 'inF0' (temp 4-component vector of float) +0:252 'inF0' (in 4-component vector of float) 0:253 pow (global 4-component vector of float) -0:253 'inF0' (temp 4-component vector of float) -0:253 'inF1' (temp 4-component vector of float) +0:253 'inF0' (in 4-component vector of float) +0:253 'inF1' (in 4-component vector of float) 0:254 radians (global 4-component vector of float) -0:254 'inF0' (temp 4-component vector of float) +0:254 'inF0' (in 4-component vector of float) 0:255 reflect (global 4-component vector of float) -0:255 'inF0' (temp 4-component vector of float) -0:255 'inF1' (temp 4-component vector of float) +0:255 'inF0' (in 4-component vector of float) +0:255 'inF1' (in 4-component vector of float) 0:256 refract (global 4-component vector of float) -0:256 'inF0' (temp 4-component vector of float) -0:256 'inF1' (temp 4-component vector of float) +0:256 'inF0' (in 4-component vector of float) +0:256 'inF1' (in 4-component vector of float) 0:256 Constant: 0:256 2.000000 0:? bitFieldReverse (global 4-component vector of uint) @@ -1849,45 +1849,45 @@ Shader version: 450 0:? 3 (const uint) 0:? 4 (const uint) 0:258 roundEven (global 4-component vector of float) -0:258 'inF0' (temp 4-component vector of float) +0:258 'inF0' (in 4-component vector of float) 0:259 inverse sqrt (global 4-component vector of float) -0:259 'inF0' (temp 4-component vector of float) +0:259 'inF0' (in 4-component vector of float) 0:260 clamp (temp 4-component vector of float) -0:260 'inF0' (temp 4-component vector of float) +0:260 'inF0' (in 4-component vector of float) 0:260 Constant: 0:260 0.000000 0:260 Constant: 0:260 1.000000 0:261 Sign (global 4-component vector of float) -0:261 'inF0' (temp 4-component vector of float) +0:261 'inF0' (in 4-component vector of float) 0:262 sine (global 4-component vector of float) -0:262 'inF0' (temp 4-component vector of float) +0:262 'inF0' (in 4-component vector of float) 0:263 Sequence 0:263 move second child to first child (temp 4-component vector of float) -0:263 'inF1' (temp 4-component vector of float) +0:263 'inF1' (in 4-component vector of float) 0:263 sine (temp 4-component vector of float) -0:263 'inF0' (temp 4-component vector of float) +0:263 'inF0' (in 4-component vector of float) 0:263 move second child to first child (temp 4-component vector of float) -0:263 'inF2' (temp 4-component vector of float) +0:263 'inF2' (in 4-component vector of float) 0:263 cosine (temp 4-component vector of float) -0:263 'inF0' (temp 4-component vector of float) +0:263 'inF0' (in 4-component vector of float) 0:264 hyp. sine (global 4-component vector of float) -0:264 'inF0' (temp 4-component vector of float) +0:264 'inF0' (in 4-component vector of float) 0:265 smoothstep (global 4-component vector of float) -0:265 'inF0' (temp 4-component vector of float) -0:265 'inF1' (temp 4-component vector of float) -0:265 'inF2' (temp 4-component vector of float) +0:265 'inF0' (in 4-component vector of float) +0:265 'inF1' (in 4-component vector of float) +0:265 'inF2' (in 4-component vector of float) 0:266 sqrt (global 4-component vector of float) -0:266 'inF0' (temp 4-component vector of float) +0:266 'inF0' (in 4-component vector of float) 0:267 step (global 4-component vector of float) -0:267 'inF0' (temp 4-component vector of float) -0:267 'inF1' (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) +0:267 'inF1' (in 4-component vector of float) 0:268 tangent (global 4-component vector of float) -0:268 'inF0' (temp 4-component vector of float) +0:268 'inF0' (in 4-component vector of float) 0:269 hyp. tangent (global 4-component vector of float) -0:269 'inF0' (temp 4-component vector of float) +0:269 'inF0' (in 4-component vector of float) 0:271 trunc (global 4-component vector of float) -0:271 'inF0' (temp 4-component vector of float) +0:271 'inF0' (in 4-component vector of float) 0:274 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -1896,43 +1896,43 @@ Shader version: 450 0:? 4.000000 0:339 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:331 Function Parameters: -0:331 'inF0' (temp 2X2 matrix of float) -0:331 'inF1' (temp 2X2 matrix of float) -0:331 'inF2' (temp 2X2 matrix of float) +0:331 'inF0' (in 2X2 matrix of float) +0:331 'inF1' (in 2X2 matrix of float) +0:331 'inF2' (in 2X2 matrix of float) 0:? Sequence 0:333 all (global bool) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 Absolute value (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 arc cosine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 any (global bool) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 arc sine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 arc tangent (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 arc tangent (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 Ceiling (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 clamp (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) -0:333 'inF2' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) +0:333 'inF2' (in 2X2 matrix of float) 0:333 cosine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 hyp. cosine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 degrees (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 determinant (global float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 exp (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 exp2 (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 findMSB (global int) 0:333 Constant: 0:333 7 (const int) @@ -1940,80 +1940,80 @@ Shader version: 450 0:333 Constant: 0:333 7 (const int) 0:333 Floor (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 mod (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 Fraction (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 frexp (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 ldexp (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 log (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 matrix-scale (temp 2X2 matrix of float) 0:333 log2 (temp 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 Constant: 0:333 0.301030 0:333 log2 (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 max (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 min (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 pow (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 radians (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 roundEven (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 inverse sqrt (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 clamp (temp 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 Constant: 0:333 0.000000 0:333 Constant: 0:333 1.000000 0:333 Sign (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 sine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 Sequence 0:333 move second child to first child (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 sine (temp 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 move second child to first child (temp 2X2 matrix of float) -0:333 'inF2' (temp 2X2 matrix of float) +0:333 'inF2' (in 2X2 matrix of float) 0:333 cosine (temp 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 hyp. sine (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 smoothstep (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) -0:333 'inF2' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) +0:333 'inF2' (in 2X2 matrix of float) 0:333 sqrt (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 step (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) -0:333 'inF1' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) +0:333 'inF1' (in 2X2 matrix of float) 0:333 tangent (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 hyp. tangent (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 transpose (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:333 trunc (global 2X2 matrix of float) -0:333 'inF0' (temp 2X2 matrix of float) +0:333 'inF0' (in 2X2 matrix of float) 0:336 Branch: Return with expression 0:? Constant: 0:? 2.000000 @@ -2022,43 +2022,43 @@ Shader version: 450 0:? 2.000000 0:348 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:340 Function Parameters: -0:340 'inF0' (temp 3X3 matrix of float) -0:340 'inF1' (temp 3X3 matrix of float) -0:340 'inF2' (temp 3X3 matrix of float) +0:340 'inF0' (in 3X3 matrix of float) +0:340 'inF1' (in 3X3 matrix of float) +0:340 'inF2' (in 3X3 matrix of float) 0:? Sequence 0:342 all (global bool) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 Absolute value (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 arc cosine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 any (global bool) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 arc sine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 arc tangent (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 arc tangent (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 Ceiling (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 clamp (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) -0:342 'inF2' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) +0:342 'inF2' (in 3X3 matrix of float) 0:342 cosine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 hyp. cosine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 degrees (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 determinant (global float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 exp (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 exp2 (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 findMSB (global int) 0:342 Constant: 0:342 7 (const int) @@ -2066,80 +2066,80 @@ Shader version: 450 0:342 Constant: 0:342 7 (const int) 0:342 Floor (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 mod (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 Fraction (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 frexp (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 ldexp (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 log (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 matrix-scale (temp 3X3 matrix of float) 0:342 log2 (temp 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 Constant: 0:342 0.301030 0:342 log2 (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 max (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 min (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 pow (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 radians (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 roundEven (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 inverse sqrt (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 clamp (temp 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 Constant: 0:342 0.000000 0:342 Constant: 0:342 1.000000 0:342 Sign (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 sine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 Sequence 0:342 move second child to first child (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 sine (temp 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 move second child to first child (temp 3X3 matrix of float) -0:342 'inF2' (temp 3X3 matrix of float) +0:342 'inF2' (in 3X3 matrix of float) 0:342 cosine (temp 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 hyp. sine (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 smoothstep (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) -0:342 'inF2' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) +0:342 'inF2' (in 3X3 matrix of float) 0:342 sqrt (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 step (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) -0:342 'inF1' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) +0:342 'inF1' (in 3X3 matrix of float) 0:342 tangent (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 hyp. tangent (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 transpose (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:342 trunc (global 3X3 matrix of float) -0:342 'inF0' (temp 3X3 matrix of float) +0:342 'inF0' (in 3X3 matrix of float) 0:345 Branch: Return with expression 0:? Constant: 0:? 3.000000 @@ -2153,43 +2153,43 @@ Shader version: 450 0:? 3.000000 0:369 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:349 Function Parameters: -0:349 'inF0' (temp 4X4 matrix of float) -0:349 'inF1' (temp 4X4 matrix of float) -0:349 'inF2' (temp 4X4 matrix of float) +0:349 'inF0' (in 4X4 matrix of float) +0:349 'inF1' (in 4X4 matrix of float) +0:349 'inF2' (in 4X4 matrix of float) 0:? Sequence 0:351 all (global bool) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 Absolute value (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 arc cosine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 any (global bool) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 arc sine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 arc tangent (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 arc tangent (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 Ceiling (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 clamp (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) -0:351 'inF2' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) +0:351 'inF2' (in 4X4 matrix of float) 0:351 cosine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 hyp. cosine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 degrees (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 determinant (global float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 exp (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 exp2 (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 findMSB (global int) 0:351 Constant: 0:351 7 (const int) @@ -2197,80 +2197,80 @@ Shader version: 450 0:351 Constant: 0:351 7 (const int) 0:351 Floor (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 mod (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 Fraction (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 frexp (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 ldexp (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 log (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 matrix-scale (temp 4X4 matrix of float) 0:351 log2 (temp 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 Constant: 0:351 0.301030 0:351 log2 (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 max (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 min (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 pow (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 radians (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 roundEven (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 inverse sqrt (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 clamp (temp 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 Constant: 0:351 0.000000 0:351 Constant: 0:351 1.000000 0:351 Sign (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 sine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 Sequence 0:351 move second child to first child (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 sine (temp 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 move second child to first child (temp 4X4 matrix of float) -0:351 'inF2' (temp 4X4 matrix of float) +0:351 'inF2' (in 4X4 matrix of float) 0:351 cosine (temp 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 hyp. sine (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 smoothstep (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) -0:351 'inF2' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) +0:351 'inF2' (in 4X4 matrix of float) 0:351 sqrt (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 step (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) -0:351 'inF1' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) +0:351 'inF1' (in 4X4 matrix of float) 0:351 tangent (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 hyp. tangent (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 transpose (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:351 trunc (global 4X4 matrix of float) -0:351 'inF0' (temp 4X4 matrix of float) +0:351 'inF0' (in 4X4 matrix of float) 0:354 Branch: Return with expression 0:? Constant: 0:? 4.000000 @@ -2291,176 +2291,176 @@ Shader version: 450 0:? 4.000000 0:376 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:372 Function Parameters: -0:372 'inF0' (temp float) -0:372 'inF1' (temp float) -0:372 'inFV0' (temp 2-component vector of float) -0:372 'inFV1' (temp 2-component vector of float) -0:372 'inFM0' (temp 2X2 matrix of float) -0:372 'inFM1' (temp 2X2 matrix of float) +0:372 'inF0' (in float) +0:372 'inF1' (in float) +0:372 'inFV0' (in 2-component vector of float) +0:372 'inFV1' (in 2-component vector of float) +0:372 'inFM0' (in 2X2 matrix of float) +0:372 'inFM1' (in 2X2 matrix of float) 0:? Sequence 0:373 move second child to first child (temp float) 0:373 'r0' (temp float) 0:373 component-wise multiply (temp float) -0:373 'inF0' (temp float) -0:373 'inF1' (temp float) +0:373 'inF0' (in float) +0:373 'inF1' (in float) 0:373 move second child to first child (temp 2-component vector of float) 0:373 'r1' (temp 2-component vector of float) 0:373 vector-scale (temp 2-component vector of float) -0:373 'inFV0' (temp 2-component vector of float) -0:373 'inF0' (temp float) +0:373 'inFV0' (in 2-component vector of float) +0:373 'inF0' (in float) 0:373 move second child to first child (temp 2-component vector of float) 0:373 'r2' (temp 2-component vector of float) 0:373 vector-scale (temp 2-component vector of float) -0:373 'inF0' (temp float) -0:373 'inFV0' (temp 2-component vector of float) +0:373 'inF0' (in float) +0:373 'inFV0' (in 2-component vector of float) 0:373 move second child to first child (temp float) 0:373 'r3' (temp float) 0:373 dot-product (global float) -0:373 'inFV0' (temp 2-component vector of float) -0:373 'inFV1' (temp 2-component vector of float) +0:373 'inFV0' (in 2-component vector of float) +0:373 'inFV1' (in 2-component vector of float) 0:373 move second child to first child (temp 2-component vector of float) 0:373 'r4' (temp 2-component vector of float) 0:373 matrix-times-vector (temp 2-component vector of float) -0:373 'inFM0' (temp 2X2 matrix of float) -0:373 'inFV0' (temp 2-component vector of float) +0:373 'inFM0' (in 2X2 matrix of float) +0:373 'inFV0' (in 2-component vector of float) 0:373 move second child to first child (temp 2-component vector of float) 0:373 'r5' (temp 2-component vector of float) 0:373 vector-times-matrix (temp 2-component vector of float) -0:373 'inFV0' (temp 2-component vector of float) -0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inFV0' (in 2-component vector of float) +0:373 'inFM0' (in 2X2 matrix of float) 0:373 move second child to first child (temp 2X2 matrix of float) 0:373 'r6' (temp 2X2 matrix of float) 0:373 matrix-scale (temp 2X2 matrix of float) -0:373 'inFM0' (temp 2X2 matrix of float) -0:373 'inF0' (temp float) +0:373 'inFM0' (in 2X2 matrix of float) +0:373 'inF0' (in float) 0:373 move second child to first child (temp 2X2 matrix of float) 0:373 'r7' (temp 2X2 matrix of float) 0:373 matrix-scale (temp 2X2 matrix of float) -0:373 'inF0' (temp float) -0:373 'inFM0' (temp 2X2 matrix of float) +0:373 'inF0' (in float) +0:373 'inFM0' (in 2X2 matrix of float) 0:373 move second child to first child (temp 2X2 matrix of float) 0:373 'r8' (temp 2X2 matrix of float) 0:373 matrix-multiply (temp 2X2 matrix of float) -0:373 'inFM0' (temp 2X2 matrix of float) -0:373 'inFM1' (temp 2X2 matrix of float) +0:373 'inFM0' (in 2X2 matrix of float) +0:373 'inFM1' (in 2X2 matrix of float) 0:383 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:379 Function Parameters: -0:379 'inF0' (temp float) -0:379 'inF1' (temp float) -0:379 'inFV0' (temp 3-component vector of float) -0:379 'inFV1' (temp 3-component vector of float) -0:379 'inFM0' (temp 3X3 matrix of float) -0:379 'inFM1' (temp 3X3 matrix of float) +0:379 'inF0' (in float) +0:379 'inF1' (in float) +0:379 'inFV0' (in 3-component vector of float) +0:379 'inFV1' (in 3-component vector of float) +0:379 'inFM0' (in 3X3 matrix of float) +0:379 'inFM1' (in 3X3 matrix of float) 0:? Sequence 0:380 move second child to first child (temp float) 0:380 'r0' (temp float) 0:380 component-wise multiply (temp float) -0:380 'inF0' (temp float) -0:380 'inF1' (temp float) +0:380 'inF0' (in float) +0:380 'inF1' (in float) 0:380 move second child to first child (temp 3-component vector of float) 0:380 'r1' (temp 3-component vector of float) 0:380 vector-scale (temp 3-component vector of float) -0:380 'inFV0' (temp 3-component vector of float) -0:380 'inF0' (temp float) +0:380 'inFV0' (in 3-component vector of float) +0:380 'inF0' (in float) 0:380 move second child to first child (temp 3-component vector of float) 0:380 'r2' (temp 3-component vector of float) 0:380 vector-scale (temp 3-component vector of float) -0:380 'inF0' (temp float) -0:380 'inFV0' (temp 3-component vector of float) +0:380 'inF0' (in float) +0:380 'inFV0' (in 3-component vector of float) 0:380 move second child to first child (temp float) 0:380 'r3' (temp float) 0:380 dot-product (global float) -0:380 'inFV0' (temp 3-component vector of float) -0:380 'inFV1' (temp 3-component vector of float) +0:380 'inFV0' (in 3-component vector of float) +0:380 'inFV1' (in 3-component vector of float) 0:380 move second child to first child (temp 3-component vector of float) 0:380 'r4' (temp 3-component vector of float) 0:380 matrix-times-vector (temp 3-component vector of float) -0:380 'inFM0' (temp 3X3 matrix of float) -0:380 'inFV0' (temp 3-component vector of float) +0:380 'inFM0' (in 3X3 matrix of float) +0:380 'inFV0' (in 3-component vector of float) 0:380 move second child to first child (temp 3-component vector of float) 0:380 'r5' (temp 3-component vector of float) 0:380 vector-times-matrix (temp 3-component vector of float) -0:380 'inFV0' (temp 3-component vector of float) -0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inFV0' (in 3-component vector of float) +0:380 'inFM0' (in 3X3 matrix of float) 0:380 move second child to first child (temp 3X3 matrix of float) 0:380 'r6' (temp 3X3 matrix of float) 0:380 matrix-scale (temp 3X3 matrix of float) -0:380 'inFM0' (temp 3X3 matrix of float) -0:380 'inF0' (temp float) +0:380 'inFM0' (in 3X3 matrix of float) +0:380 'inF0' (in float) 0:380 move second child to first child (temp 3X3 matrix of float) 0:380 'r7' (temp 3X3 matrix of float) 0:380 matrix-scale (temp 3X3 matrix of float) -0:380 'inF0' (temp float) -0:380 'inFM0' (temp 3X3 matrix of float) +0:380 'inF0' (in float) +0:380 'inFM0' (in 3X3 matrix of float) 0:380 move second child to first child (temp 3X3 matrix of float) 0:380 'r8' (temp 3X3 matrix of float) 0:380 matrix-multiply (temp 3X3 matrix of float) -0:380 'inFM0' (temp 3X3 matrix of float) -0:380 'inFM1' (temp 3X3 matrix of float) +0:380 'inFM0' (in 3X3 matrix of float) +0:380 'inFM1' (in 3X3 matrix of float) 0:389 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:386 Function Parameters: -0:386 'inF0' (temp float) -0:386 'inF1' (temp float) -0:386 'inFV0' (temp 4-component vector of float) -0:386 'inFV1' (temp 4-component vector of float) -0:386 'inFM0' (temp 4X4 matrix of float) -0:386 'inFM1' (temp 4X4 matrix of float) +0:386 'inF0' (in float) +0:386 'inF1' (in float) +0:386 'inFV0' (in 4-component vector of float) +0:386 'inFV1' (in 4-component vector of float) +0:386 'inFM0' (in 4X4 matrix of float) +0:386 'inFM1' (in 4X4 matrix of float) 0:? Sequence 0:387 move second child to first child (temp float) 0:387 'r0' (temp float) 0:387 component-wise multiply (temp float) -0:387 'inF0' (temp float) -0:387 'inF1' (temp float) +0:387 'inF0' (in float) +0:387 'inF1' (in float) 0:387 move second child to first child (temp 4-component vector of float) 0:387 'r1' (temp 4-component vector of float) 0:387 vector-scale (temp 4-component vector of float) -0:387 'inFV0' (temp 4-component vector of float) -0:387 'inF0' (temp float) +0:387 'inFV0' (in 4-component vector of float) +0:387 'inF0' (in float) 0:387 move second child to first child (temp 4-component vector of float) 0:387 'r2' (temp 4-component vector of float) 0:387 vector-scale (temp 4-component vector of float) -0:387 'inF0' (temp float) -0:387 'inFV0' (temp 4-component vector of float) +0:387 'inF0' (in float) +0:387 'inFV0' (in 4-component vector of float) 0:387 move second child to first child (temp float) 0:387 'r3' (temp float) 0:387 dot-product (global float) -0:387 'inFV0' (temp 4-component vector of float) -0:387 'inFV1' (temp 4-component vector of float) +0:387 'inFV0' (in 4-component vector of float) +0:387 'inFV1' (in 4-component vector of float) 0:387 move second child to first child (temp 4-component vector of float) 0:387 'r4' (temp 4-component vector of float) 0:387 matrix-times-vector (temp 4-component vector of float) -0:387 'inFM0' (temp 4X4 matrix of float) -0:387 'inFV0' (temp 4-component vector of float) +0:387 'inFM0' (in 4X4 matrix of float) +0:387 'inFV0' (in 4-component vector of float) 0:387 move second child to first child (temp 4-component vector of float) 0:387 'r5' (temp 4-component vector of float) 0:387 vector-times-matrix (temp 4-component vector of float) -0:387 'inFV0' (temp 4-component vector of float) -0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inFV0' (in 4-component vector of float) +0:387 'inFM0' (in 4X4 matrix of float) 0:387 move second child to first child (temp 4X4 matrix of float) 0:387 'r6' (temp 4X4 matrix of float) 0:387 matrix-scale (temp 4X4 matrix of float) -0:387 'inFM0' (temp 4X4 matrix of float) -0:387 'inF0' (temp float) +0:387 'inFM0' (in 4X4 matrix of float) +0:387 'inF0' (in float) 0:387 move second child to first child (temp 4X4 matrix of float) 0:387 'r7' (temp 4X4 matrix of float) 0:387 matrix-scale (temp 4X4 matrix of float) -0:387 'inF0' (temp float) -0:387 'inFM0' (temp 4X4 matrix of float) +0:387 'inF0' (in float) +0:387 'inFM0' (in 4X4 matrix of float) 0:387 move second child to first child (temp 4X4 matrix of float) 0:387 'r8' (temp 4X4 matrix of float) 0:387 matrix-multiply (temp 4X4 matrix of float) -0:387 'inFM0' (temp 4X4 matrix of float) -0:387 'inFM1' (temp 4X4 matrix of float) +0:387 'inFM0' (in 4X4 matrix of float) +0:387 'inFM1' (in 4X4 matrix of float) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1082 +// Id's are bound by 1089 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" + EntryPoint Vertex 4 "VertexShaderFunction" 48 67 73 80 174 192 198 205 321 339 345 352 470 488 494 501 625 639 646 741 755 762 860 874 881 Source HLSL 450 Name 4 "VertexShaderFunction" Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;" @@ -2484,65 +2484,65 @@ Shader version: 450 Name 42 "inFV1" Name 43 "inFM0" Name 44 "inFM1" - Name 47 "inF0" - Name 66 "inU0" - Name 72 "inF1" - Name 79 "inF2" - Name 105 "ResType" - Name 172 "inF0" - Name 190 "inU0" - Name 196 "inF1" - Name 203 "inF2" - Name 239 "ResType" - Name 318 "inF0" - Name 336 "inU0" - Name 342 "inF1" - Name 349 "inF2" - Name 388 "ResType" - Name 466 "inF0" - Name 484 "inU0" - Name 490 "inF1" - Name 497 "inF2" - Name 541 "ResType" - Name 620 "inF0" - Name 634 "inF1" - Name 641 "inF2" - Name 672 "ResType" - Name 735 "inF0" - Name 749 "inF1" - Name 756 "inF2" - Name 790 "ResType" - Name 853 "inF0" - Name 867 "inF1" - Name 874 "inF2" - Name 911 "ResType" - Name 974 "r0" - Name 978 "r1" - Name 982 "r2" - Name 986 "r3" - Name 990 "r4" - Name 994 "r5" - Name 998 "r6" - Name 1002 "r7" - Name 1006 "r8" - Name 1010 "r0" - Name 1014 "r1" - Name 1018 "r2" - Name 1022 "r3" - Name 1026 "r4" - Name 1030 "r5" - Name 1034 "r6" - Name 1038 "r7" - Name 1042 "r8" - Name 1046 "r0" - Name 1050 "r1" - Name 1054 "r2" - Name 1058 "r3" - Name 1062 "r4" - Name 1066 "r5" - Name 1070 "r6" - Name 1074 "r7" - Name 1078 "r8" + Name 48 "inF0" + Name 67 "inU0" + Name 73 "inF1" + Name 80 "inF2" + Name 106 "ResType" + Name 174 "inF0" + Name 192 "inU0" + Name 198 "inF1" + Name 205 "inF2" + Name 241 "ResType" + Name 321 "inF0" + Name 339 "inU0" + Name 345 "inF1" + Name 352 "inF2" + Name 391 "ResType" + Name 470 "inF0" + Name 488 "inU0" + Name 494 "inF1" + Name 501 "inF2" + Name 545 "ResType" + Name 625 "inF0" + Name 639 "inF1" + Name 646 "inF2" + Name 677 "ResType" + Name 741 "inF0" + Name 755 "inF1" + Name 762 "inF2" + Name 796 "ResType" + Name 860 "inF0" + Name 874 "inF1" + Name 881 "inF2" + Name 918 "ResType" + Name 981 "r0" + Name 985 "r1" + Name 989 "r2" + Name 993 "r3" + Name 997 "r4" + Name 1001 "r5" + Name 1005 "r6" + Name 1009 "r7" + Name 1013 "r8" + Name 1017 "r0" + Name 1021 "r1" + Name 1025 "r2" + Name 1029 "r3" + Name 1033 "r4" + Name 1037 "r5" + Name 1041 "r6" + Name 1045 "r7" + Name 1049 "r8" + Name 1053 "r0" + Name 1057 "r1" + Name 1061 "r2" + Name 1065 "r3" + Name 1069 "r4" + Name 1073 "r5" + Name 1077 "r6" + Name 1081 "r7" + Name 1085 "r8" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -2562,196 +2562,203 @@ Shader version: 450 36: TypeMatrix 34(fvec4) 4 37: TypePointer Function 36 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr) - 49: TypeBool - 60: TypeInt 32 1 - 63: TypeInt 32 0 - 65: TypePointer Function 63(int) - 86: 63(int) Constant 7 - 94: 60(int) Constant 7 - 105(ResType): TypeStruct 6(float) 60(int) - 120: 6(float) Constant 1050288283 - 135: 63(int) Constant 2 - 142: 6(float) Constant 0 - 143: 6(float) Constant 1065353216 - 184: TypeVector 60(int) 2 - 187: TypeVector 63(int) 2 - 189: TypePointer Function 187(ivec2) - 210: 63(int) Constant 3 - 211: 187(ivec2) ConstantComposite 86 210 - 239(ResType): TypeStruct 8(fvec2) 184(ivec2) - 244: TypeVector 49(bool) 2 - 278: 6(float) Constant 1073741824 - 280: 63(int) Constant 1 - 281: 187(ivec2) ConstantComposite 280 135 - 316: 8(fvec2) ConstantComposite 143 278 - 330: TypeVector 60(int) 3 - 333: TypeVector 63(int) 3 - 335: TypePointer Function 333(ivec3) - 356: 63(int) Constant 5 - 357: 333(ivec3) ConstantComposite 86 210 356 - 388(ResType): TypeStruct 21(fvec3) 330(ivec3) - 393: TypeVector 49(bool) 3 - 428: 333(ivec3) ConstantComposite 280 135 210 - 463: 6(float) Constant 1077936128 - 464: 21(fvec3) ConstantComposite 143 278 463 - 478: TypeVector 60(int) 4 - 481: TypeVector 63(int) 4 - 483: TypePointer Function 481(ivec4) - 504: 481(ivec4) ConstantComposite 86 210 356 135 - 541(ResType): TypeStruct 34(fvec4) 478(ivec4) - 546: TypeVector 49(bool) 4 - 581: 63(int) Constant 4 - 582: 481(ivec4) ConstantComposite 280 135 210 581 - 617: 6(float) Constant 1082130432 - 618: 34(fvec4) ConstantComposite 143 278 463 617 - 672(ResType): TypeStruct 10 184(ivec2) - 732: 8(fvec2) ConstantComposite 278 278 - 733: 10 ConstantComposite 732 732 - 790(ResType): TypeStruct 23 330(ivec3) - 850: 21(fvec3) ConstantComposite 463 463 463 - 851: 23 ConstantComposite 850 850 850 - 911(ResType): TypeStruct 36 478(ivec4) - 971: 34(fvec4) ConstantComposite 617 617 617 617 - 972: 36 ConstantComposite 971 971 971 971 + 47: TypePointer Input 6(float) + 48(inF0): 47(ptr) Variable Input + 50: TypeBool + 61: TypeInt 32 1 + 64: TypeInt 32 0 + 66: TypePointer Input 64(int) + 67(inU0): 66(ptr) Variable Input + 73(inF1): 47(ptr) Variable Input + 80(inF2): 47(ptr) Variable Input + 87: 64(int) Constant 7 + 95: 61(int) Constant 7 + 106(ResType): TypeStruct 6(float) 61(int) + 121: 6(float) Constant 1050288283 + 136: 64(int) Constant 2 + 143: 6(float) Constant 0 + 144: 6(float) Constant 1065353216 + 173: TypePointer Input 8(fvec2) + 174(inF0): 173(ptr) Variable Input + 186: TypeVector 61(int) 2 + 189: TypeVector 64(int) 2 + 191: TypePointer Input 189(ivec2) + 192(inU0): 191(ptr) Variable Input + 198(inF1): 173(ptr) Variable Input + 205(inF2): 173(ptr) Variable Input + 212: 64(int) Constant 3 + 213: 189(ivec2) ConstantComposite 87 212 + 241(ResType): TypeStruct 8(fvec2) 186(ivec2) + 246: TypeVector 50(bool) 2 + 280: 6(float) Constant 1073741824 + 282: 64(int) Constant 1 + 283: 189(ivec2) ConstantComposite 282 136 + 318: 8(fvec2) ConstantComposite 144 280 + 320: TypePointer Input 21(fvec3) + 321(inF0): 320(ptr) Variable Input + 333: TypeVector 61(int) 3 + 336: TypeVector 64(int) 3 + 338: TypePointer Input 336(ivec3) + 339(inU0): 338(ptr) Variable Input + 345(inF1): 320(ptr) Variable Input + 352(inF2): 320(ptr) Variable Input + 359: 64(int) Constant 5 + 360: 336(ivec3) ConstantComposite 87 212 359 + 391(ResType): TypeStruct 21(fvec3) 333(ivec3) + 396: TypeVector 50(bool) 3 + 431: 336(ivec3) ConstantComposite 282 136 212 + 466: 6(float) Constant 1077936128 + 467: 21(fvec3) ConstantComposite 144 280 466 + 469: TypePointer Input 34(fvec4) + 470(inF0): 469(ptr) Variable Input + 482: TypeVector 61(int) 4 + 485: TypeVector 64(int) 4 + 487: TypePointer Input 485(ivec4) + 488(inU0): 487(ptr) Variable Input + 494(inF1): 469(ptr) Variable Input + 501(inF2): 469(ptr) Variable Input + 508: 485(ivec4) ConstantComposite 87 212 359 136 + 545(ResType): TypeStruct 34(fvec4) 482(ivec4) + 550: TypeVector 50(bool) 4 + 585: 64(int) Constant 4 + 586: 485(ivec4) ConstantComposite 282 136 212 585 + 621: 6(float) Constant 1082130432 + 622: 34(fvec4) ConstantComposite 144 280 466 621 + 624: TypePointer Input 10 + 625(inF0): 624(ptr) Variable Input + 639(inF1): 624(ptr) Variable Input + 646(inF2): 624(ptr) Variable Input + 677(ResType): TypeStruct 10 186(ivec2) + 737: 8(fvec2) ConstantComposite 280 280 + 738: 10 ConstantComposite 737 737 + 740: TypePointer Input 23 + 741(inF0): 740(ptr) Variable Input + 755(inF1): 740(ptr) Variable Input + 762(inF2): 740(ptr) Variable Input + 796(ResType): TypeStruct 23 333(ivec3) + 856: 21(fvec3) ConstantComposite 466 466 466 + 857: 23 ConstantComposite 856 856 856 + 859: TypePointer Input 36 + 860(inF0): 859(ptr) Variable Input + 874(inF1): 859(ptr) Variable Input + 881(inF2): 859(ptr) Variable Input + 918(ResType): TypeStruct 36 482(ivec4) + 978: 34(fvec4) ConstantComposite 621 621 621 621 + 979: 36 ConstantComposite 978 978 978 978 4(VertexShaderFunction): 2 Function None 3 5: Label - 47(inF0): 7(ptr) Variable Function - 66(inU0): 65(ptr) Variable Function - 72(inF1): 7(ptr) Variable Function - 79(inF2): 7(ptr) Variable Function - 172(inF0): 9(ptr) Variable Function - 190(inU0): 189(ptr) Variable Function - 196(inF1): 9(ptr) Variable Function - 203(inF2): 9(ptr) Variable Function - 318(inF0): 22(ptr) Variable Function - 336(inU0): 335(ptr) Variable Function - 342(inF1): 22(ptr) Variable Function - 349(inF2): 22(ptr) Variable Function - 466(inF0): 35(ptr) Variable Function - 484(inU0): 483(ptr) Variable Function - 490(inF1): 35(ptr) Variable Function - 497(inF2): 35(ptr) Variable Function - 620(inF0): 11(ptr) Variable Function - 634(inF1): 11(ptr) Variable Function - 641(inF2): 11(ptr) Variable Function - 735(inF0): 24(ptr) Variable Function - 749(inF1): 24(ptr) Variable Function - 756(inF2): 24(ptr) Variable Function - 853(inF0): 37(ptr) Variable Function - 867(inF1): 37(ptr) Variable Function - 874(inF2): 37(ptr) Variable Function - 48: 6(float) Load 47(inF0) - 50: 49(bool) All 48 - 51: 6(float) Load 47(inF0) - 52: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 51 - 53: 6(float) Load 47(inF0) - 54: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 53 - 55: 6(float) Load 47(inF0) - 56: 49(bool) Any 55 - 57: 6(float) Load 47(inF0) - 58: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 57 - 59: 6(float) Load 47(inF0) - 61: 60(int) Bitcast 59 - 62: 6(float) Load 47(inF0) - 64: 63(int) Bitcast 62 - 67: 63(int) Load 66(inU0) - 68: 6(float) Bitcast 67 - 69: 6(float) Load 47(inF0) - 70: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 69 - 71: 6(float) Load 47(inF0) - 73: 6(float) Load 72(inF1) - 74: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 71 73 - 75: 6(float) Load 47(inF0) - 76: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 75 - 77: 6(float) Load 47(inF0) - 78: 6(float) Load 72(inF1) - 80: 6(float) Load 79(inF2) - 81: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 77 78 80 - 82: 6(float) Load 47(inF0) - 83: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 82 - 84: 6(float) Load 47(inF0) - 85: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 84 - 87: 63(int) BitCount 86 - 88: 6(float) Load 47(inF0) - 89: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 88 - 90: 6(float) Load 47(inF0) - 91: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 90 - 92: 6(float) Load 47(inF0) - 93: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 92 - 95: 60(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 94 - 96: 60(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 94 - 97: 6(float) Load 47(inF0) - 98: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 97 - 99: 6(float) Load 47(inF0) - 100: 6(float) Load 72(inF1) - 101: 6(float) FMod 99 100 - 102: 6(float) Load 47(inF0) - 103: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 102 - 104: 6(float) Load 47(inF0) - 106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 104 - 107: 60(int) CompositeExtract 106 1 - Store 72(inF1) 107 - 108: 6(float) CompositeExtract 106 0 - 109: 6(float) Load 47(inF0) - 110: 49(bool) IsInf 109 - 111: 6(float) Load 47(inF0) - 112: 49(bool) IsNan 111 - 113: 6(float) Load 47(inF0) - 114: 6(float) Load 72(inF1) - 115: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 113 114 - 116: 6(float) Load 47(inF0) - 117: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 116 - 118: 6(float) Load 47(inF0) - 119: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 118 - 121: 6(float) FMul 119 120 - 122: 6(float) Load 47(inF0) - 123: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 122 - 124: 6(float) Load 47(inF0) - 125: 6(float) Load 72(inF1) - 126: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 124 125 - 127: 6(float) Load 47(inF0) - 128: 6(float) Load 72(inF1) - 129: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 127 128 - 130: 6(float) Load 47(inF0) - 131: 6(float) Load 72(inF1) - 132: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 130 131 - 133: 6(float) Load 47(inF0) - 134: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 133 - 136: 63(int) BitReverse 135 - 137: 6(float) Load 47(inF0) - 138: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 137 - 139: 6(float) Load 47(inF0) - 140: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 139 - 141: 6(float) Load 47(inF0) - 144: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 141 142 143 - 145: 6(float) Load 47(inF0) - 146: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 145 - 147: 6(float) Load 47(inF0) - 148: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 147 - 149: 6(float) Load 47(inF0) - 150: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 149 - Store 72(inF1) 150 - 151: 6(float) Load 47(inF0) - 152: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 151 - Store 79(inF2) 152 - 153: 6(float) Load 47(inF0) - 154: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 153 - 155: 6(float) Load 47(inF0) - 156: 6(float) Load 72(inF1) - 157: 6(float) Load 79(inF2) - 158: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 155 156 157 - 159: 6(float) Load 47(inF0) - 160: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 159 - 161: 6(float) Load 47(inF0) - 162: 6(float) Load 72(inF1) - 163: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 161 162 - 164: 6(float) Load 47(inF0) - 165: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 164 - 166: 6(float) Load 47(inF0) - 167: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 166 - 168: 6(float) Load 47(inF0) - 169: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 168 - ReturnValue 142 + 49: 6(float) Load 48(inF0) + 51: 50(bool) All 49 + 52: 6(float) Load 48(inF0) + 53: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 52 + 54: 6(float) Load 48(inF0) + 55: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 54 + 56: 6(float) Load 48(inF0) + 57: 50(bool) Any 56 + 58: 6(float) Load 48(inF0) + 59: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 58 + 60: 6(float) Load 48(inF0) + 62: 61(int) Bitcast 60 + 63: 6(float) Load 48(inF0) + 65: 64(int) Bitcast 63 + 68: 64(int) Load 67(inU0) + 69: 6(float) Bitcast 68 + 70: 6(float) Load 48(inF0) + 71: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 70 + 72: 6(float) Load 48(inF0) + 74: 6(float) Load 73(inF1) + 75: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 72 74 + 76: 6(float) Load 48(inF0) + 77: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 76 + 78: 6(float) Load 48(inF0) + 79: 6(float) Load 73(inF1) + 81: 6(float) Load 80(inF2) + 82: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 78 79 81 + 83: 6(float) Load 48(inF0) + 84: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 83 + 85: 6(float) Load 48(inF0) + 86: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 85 + 88: 64(int) BitCount 87 + 89: 6(float) Load 48(inF0) + 90: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 89 + 91: 6(float) Load 48(inF0) + 92: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 91 + 93: 6(float) Load 48(inF0) + 94: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 93 + 96: 61(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 95 + 97: 61(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 95 + 98: 6(float) Load 48(inF0) + 99: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 98 + 100: 6(float) Load 48(inF0) + 101: 6(float) Load 73(inF1) + 102: 6(float) FMod 100 101 + 103: 6(float) Load 48(inF0) + 104: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 103 + 105: 6(float) Load 48(inF0) + 107:106(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 105 + 108: 61(int) CompositeExtract 107 1 + Store 73(inF1) 108 + 109: 6(float) CompositeExtract 107 0 + 110: 6(float) Load 48(inF0) + 111: 50(bool) IsInf 110 + 112: 6(float) Load 48(inF0) + 113: 50(bool) IsNan 112 + 114: 6(float) Load 48(inF0) + 115: 6(float) Load 73(inF1) + 116: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 114 115 + 117: 6(float) Load 48(inF0) + 118: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 117 + 119: 6(float) Load 48(inF0) + 120: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 119 + 122: 6(float) FMul 120 121 + 123: 6(float) Load 48(inF0) + 124: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 123 + 125: 6(float) Load 48(inF0) + 126: 6(float) Load 73(inF1) + 127: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 125 126 + 128: 6(float) Load 48(inF0) + 129: 6(float) Load 73(inF1) + 130: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 128 129 + 131: 6(float) Load 48(inF0) + 132: 6(float) Load 73(inF1) + 133: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 131 132 + 134: 6(float) Load 48(inF0) + 135: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 134 + 137: 64(int) BitReverse 136 + 138: 6(float) Load 48(inF0) + 139: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 138 + 140: 6(float) Load 48(inF0) + 141: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 140 + 142: 6(float) Load 48(inF0) + 145: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 142 143 144 + 146: 6(float) Load 48(inF0) + 147: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 146 + 148: 6(float) Load 48(inF0) + 149: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 148 + 150: 6(float) Load 48(inF0) + 151: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 150 + Store 73(inF1) 151 + 152: 6(float) Load 48(inF0) + 153: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 152 + Store 80(inF2) 153 + 154: 6(float) Load 48(inF0) + 155: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 154 + 156: 6(float) Load 48(inF0) + 157: 6(float) Load 73(inF1) + 158: 6(float) Load 80(inF2) + 159: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 156 157 158 + 160: 6(float) Load 48(inF0) + 161: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 160 + 162: 6(float) Load 48(inF0) + 163: 6(float) Load 73(inF1) + 164: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 162 163 + 165: 6(float) Load 48(inF0) + 166: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 165 + 167: 6(float) Load 48(inF0) + 168: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 167 + 169: 6(float) Load 48(inF0) + 170: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 169 + ReturnValue 143 FunctionEnd 19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12 13(inF0): 7(ptr) FunctionParameter @@ -2761,51 +2768,51 @@ Shader version: 450 17(inFM0): 11(ptr) FunctionParameter 18(inFM1): 11(ptr) FunctionParameter 20: Label - 974(r0): 7(ptr) Variable Function - 978(r1): 9(ptr) Variable Function - 982(r2): 9(ptr) Variable Function - 986(r3): 7(ptr) Variable Function - 990(r4): 9(ptr) Variable Function - 994(r5): 9(ptr) Variable Function - 998(r6): 11(ptr) Variable Function - 1002(r7): 11(ptr) Variable Function - 1006(r8): 11(ptr) Variable Function - 975: 6(float) Load 13(inF0) - 976: 6(float) Load 14(inF1) - 977: 6(float) FMul 975 976 - Store 974(r0) 977 - 979: 8(fvec2) Load 15(inFV0) - 980: 6(float) Load 13(inF0) - 981: 8(fvec2) VectorTimesScalar 979 980 - Store 978(r1) 981 - 983: 6(float) Load 13(inF0) - 984: 8(fvec2) Load 15(inFV0) - 985: 8(fvec2) VectorTimesScalar 984 983 - Store 982(r2) 985 - 987: 8(fvec2) Load 15(inFV0) - 988: 8(fvec2) Load 16(inFV1) - 989: 6(float) Dot 987 988 - Store 986(r3) 989 - 991: 10 Load 17(inFM0) - 992: 8(fvec2) Load 15(inFV0) - 993: 8(fvec2) MatrixTimesVector 991 992 - Store 990(r4) 993 - 995: 8(fvec2) Load 15(inFV0) - 996: 10 Load 17(inFM0) - 997: 8(fvec2) VectorTimesMatrix 995 996 - Store 994(r5) 997 - 999: 10 Load 17(inFM0) - 1000: 6(float) Load 13(inF0) - 1001: 10 MatrixTimesScalar 999 1000 - Store 998(r6) 1001 - 1003: 6(float) Load 13(inF0) - 1004: 10 Load 17(inFM0) - 1005: 10 MatrixTimesScalar 1004 1003 - Store 1002(r7) 1005 - 1007: 10 Load 17(inFM0) - 1008: 10 Load 18(inFM1) - 1009: 10 MatrixTimesMatrix 1007 1008 - Store 1006(r8) 1009 + 981(r0): 7(ptr) Variable Function + 985(r1): 9(ptr) Variable Function + 989(r2): 9(ptr) Variable Function + 993(r3): 7(ptr) Variable Function + 997(r4): 9(ptr) Variable Function + 1001(r5): 9(ptr) Variable Function + 1005(r6): 11(ptr) Variable Function + 1009(r7): 11(ptr) Variable Function + 1013(r8): 11(ptr) Variable Function + 982: 6(float) Load 13(inF0) + 983: 6(float) Load 14(inF1) + 984: 6(float) FMul 982 983 + Store 981(r0) 984 + 986: 8(fvec2) Load 15(inFV0) + 987: 6(float) Load 13(inF0) + 988: 8(fvec2) VectorTimesScalar 986 987 + Store 985(r1) 988 + 990: 6(float) Load 13(inF0) + 991: 8(fvec2) Load 15(inFV0) + 992: 8(fvec2) VectorTimesScalar 991 990 + Store 989(r2) 992 + 994: 8(fvec2) Load 15(inFV0) + 995: 8(fvec2) Load 16(inFV1) + 996: 6(float) Dot 994 995 + Store 993(r3) 996 + 998: 10 Load 17(inFM0) + 999: 8(fvec2) Load 15(inFV0) + 1000: 8(fvec2) MatrixTimesVector 998 999 + Store 997(r4) 1000 + 1002: 8(fvec2) Load 15(inFV0) + 1003: 10 Load 17(inFM0) + 1004: 8(fvec2) VectorTimesMatrix 1002 1003 + Store 1001(r5) 1004 + 1006: 10 Load 17(inFM0) + 1007: 6(float) Load 13(inF0) + 1008: 10 MatrixTimesScalar 1006 1007 + Store 1005(r6) 1008 + 1010: 6(float) Load 13(inF0) + 1011: 10 Load 17(inFM0) + 1012: 10 MatrixTimesScalar 1011 1010 + Store 1009(r7) 1012 + 1014: 10 Load 17(inFM0) + 1015: 10 Load 18(inFM1) + 1016: 10 MatrixTimesMatrix 1014 1015 + Store 1013(r8) 1016 Return FunctionEnd 32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 @@ -2816,51 +2823,51 @@ Shader version: 450 30(inFM0): 24(ptr) FunctionParameter 31(inFM1): 24(ptr) FunctionParameter 33: Label - 1010(r0): 7(ptr) Variable Function - 1014(r1): 22(ptr) Variable Function - 1018(r2): 22(ptr) Variable Function - 1022(r3): 7(ptr) Variable Function - 1026(r4): 22(ptr) Variable Function - 1030(r5): 22(ptr) Variable Function - 1034(r6): 24(ptr) Variable Function - 1038(r7): 24(ptr) Variable Function - 1042(r8): 24(ptr) Variable Function - 1011: 6(float) Load 26(inF0) - 1012: 6(float) Load 27(inF1) - 1013: 6(float) FMul 1011 1012 - Store 1010(r0) 1013 - 1015: 21(fvec3) Load 28(inFV0) - 1016: 6(float) Load 26(inF0) - 1017: 21(fvec3) VectorTimesScalar 1015 1016 - Store 1014(r1) 1017 - 1019: 6(float) Load 26(inF0) - 1020: 21(fvec3) Load 28(inFV0) - 1021: 21(fvec3) VectorTimesScalar 1020 1019 - Store 1018(r2) 1021 - 1023: 21(fvec3) Load 28(inFV0) - 1024: 21(fvec3) Load 29(inFV1) - 1025: 6(float) Dot 1023 1024 - Store 1022(r3) 1025 - 1027: 23 Load 30(inFM0) - 1028: 21(fvec3) Load 28(inFV0) - 1029: 21(fvec3) MatrixTimesVector 1027 1028 - Store 1026(r4) 1029 - 1031: 21(fvec3) Load 28(inFV0) - 1032: 23 Load 30(inFM0) - 1033: 21(fvec3) VectorTimesMatrix 1031 1032 - Store 1030(r5) 1033 - 1035: 23 Load 30(inFM0) - 1036: 6(float) Load 26(inF0) - 1037: 23 MatrixTimesScalar 1035 1036 - Store 1034(r6) 1037 - 1039: 6(float) Load 26(inF0) - 1040: 23 Load 30(inFM0) - 1041: 23 MatrixTimesScalar 1040 1039 - Store 1038(r7) 1041 - 1043: 23 Load 30(inFM0) - 1044: 23 Load 31(inFM1) - 1045: 23 MatrixTimesMatrix 1043 1044 - Store 1042(r8) 1045 + 1017(r0): 7(ptr) Variable Function + 1021(r1): 22(ptr) Variable Function + 1025(r2): 22(ptr) Variable Function + 1029(r3): 7(ptr) Variable Function + 1033(r4): 22(ptr) Variable Function + 1037(r5): 22(ptr) Variable Function + 1041(r6): 24(ptr) Variable Function + 1045(r7): 24(ptr) Variable Function + 1049(r8): 24(ptr) Variable Function + 1018: 6(float) Load 26(inF0) + 1019: 6(float) Load 27(inF1) + 1020: 6(float) FMul 1018 1019 + Store 1017(r0) 1020 + 1022: 21(fvec3) Load 28(inFV0) + 1023: 6(float) Load 26(inF0) + 1024: 21(fvec3) VectorTimesScalar 1022 1023 + Store 1021(r1) 1024 + 1026: 6(float) Load 26(inF0) + 1027: 21(fvec3) Load 28(inFV0) + 1028: 21(fvec3) VectorTimesScalar 1027 1026 + Store 1025(r2) 1028 + 1030: 21(fvec3) Load 28(inFV0) + 1031: 21(fvec3) Load 29(inFV1) + 1032: 6(float) Dot 1030 1031 + Store 1029(r3) 1032 + 1034: 23 Load 30(inFM0) + 1035: 21(fvec3) Load 28(inFV0) + 1036: 21(fvec3) MatrixTimesVector 1034 1035 + Store 1033(r4) 1036 + 1038: 21(fvec3) Load 28(inFV0) + 1039: 23 Load 30(inFM0) + 1040: 21(fvec3) VectorTimesMatrix 1038 1039 + Store 1037(r5) 1040 + 1042: 23 Load 30(inFM0) + 1043: 6(float) Load 26(inF0) + 1044: 23 MatrixTimesScalar 1042 1043 + Store 1041(r6) 1044 + 1046: 6(float) Load 26(inF0) + 1047: 23 Load 30(inFM0) + 1048: 23 MatrixTimesScalar 1047 1046 + Store 1045(r7) 1048 + 1050: 23 Load 30(inFM0) + 1051: 23 Load 31(inFM1) + 1052: 23 MatrixTimesMatrix 1050 1051 + Store 1049(r8) 1052 Return FunctionEnd 45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 @@ -2871,50 +2878,50 @@ Shader version: 450 43(inFM0): 37(ptr) FunctionParameter 44(inFM1): 37(ptr) FunctionParameter 46: Label - 1046(r0): 7(ptr) Variable Function - 1050(r1): 35(ptr) Variable Function - 1054(r2): 35(ptr) Variable Function - 1058(r3): 7(ptr) Variable Function - 1062(r4): 35(ptr) Variable Function - 1066(r5): 35(ptr) Variable Function - 1070(r6): 37(ptr) Variable Function - 1074(r7): 37(ptr) Variable Function - 1078(r8): 37(ptr) Variable Function - 1047: 6(float) Load 39(inF0) - 1048: 6(float) Load 40(inF1) - 1049: 6(float) FMul 1047 1048 - Store 1046(r0) 1049 - 1051: 34(fvec4) Load 41(inFV0) - 1052: 6(float) Load 39(inF0) - 1053: 34(fvec4) VectorTimesScalar 1051 1052 - Store 1050(r1) 1053 - 1055: 6(float) Load 39(inF0) - 1056: 34(fvec4) Load 41(inFV0) - 1057: 34(fvec4) VectorTimesScalar 1056 1055 - Store 1054(r2) 1057 - 1059: 34(fvec4) Load 41(inFV0) - 1060: 34(fvec4) Load 42(inFV1) - 1061: 6(float) Dot 1059 1060 - Store 1058(r3) 1061 - 1063: 36 Load 43(inFM0) - 1064: 34(fvec4) Load 41(inFV0) - 1065: 34(fvec4) MatrixTimesVector 1063 1064 - Store 1062(r4) 1065 - 1067: 34(fvec4) Load 41(inFV0) - 1068: 36 Load 43(inFM0) - 1069: 34(fvec4) VectorTimesMatrix 1067 1068 - Store 1066(r5) 1069 - 1071: 36 Load 43(inFM0) - 1072: 6(float) Load 39(inF0) - 1073: 36 MatrixTimesScalar 1071 1072 - Store 1070(r6) 1073 - 1075: 6(float) Load 39(inF0) - 1076: 36 Load 43(inFM0) - 1077: 36 MatrixTimesScalar 1076 1075 - Store 1074(r7) 1077 - 1079: 36 Load 43(inFM0) - 1080: 36 Load 44(inFM1) - 1081: 36 MatrixTimesMatrix 1079 1080 - Store 1078(r8) 1081 + 1053(r0): 7(ptr) Variable Function + 1057(r1): 35(ptr) Variable Function + 1061(r2): 35(ptr) Variable Function + 1065(r3): 7(ptr) Variable Function + 1069(r4): 35(ptr) Variable Function + 1073(r5): 35(ptr) Variable Function + 1077(r6): 37(ptr) Variable Function + 1081(r7): 37(ptr) Variable Function + 1085(r8): 37(ptr) Variable Function + 1054: 6(float) Load 39(inF0) + 1055: 6(float) Load 40(inF1) + 1056: 6(float) FMul 1054 1055 + Store 1053(r0) 1056 + 1058: 34(fvec4) Load 41(inFV0) + 1059: 6(float) Load 39(inF0) + 1060: 34(fvec4) VectorTimesScalar 1058 1059 + Store 1057(r1) 1060 + 1062: 6(float) Load 39(inF0) + 1063: 34(fvec4) Load 41(inFV0) + 1064: 34(fvec4) VectorTimesScalar 1063 1062 + Store 1061(r2) 1064 + 1066: 34(fvec4) Load 41(inFV0) + 1067: 34(fvec4) Load 42(inFV1) + 1068: 6(float) Dot 1066 1067 + Store 1065(r3) 1068 + 1070: 36 Load 43(inFM0) + 1071: 34(fvec4) Load 41(inFV0) + 1072: 34(fvec4) MatrixTimesVector 1070 1071 + Store 1069(r4) 1072 + 1074: 34(fvec4) Load 41(inFV0) + 1075: 36 Load 43(inFM0) + 1076: 34(fvec4) VectorTimesMatrix 1074 1075 + Store 1073(r5) 1076 + 1078: 36 Load 43(inFM0) + 1079: 6(float) Load 39(inF0) + 1080: 36 MatrixTimesScalar 1078 1079 + Store 1077(r6) 1080 + 1082: 6(float) Load 39(inF0) + 1083: 36 Load 43(inFM0) + 1084: 36 MatrixTimesScalar 1083 1082 + Store 1081(r7) 1084 + 1086: 36 Load 43(inFM0) + 1087: 36 Load 44(inFM1) + 1088: 36 MatrixTimesMatrix 1086 1087 + Store 1085(r8) 1088 Return FunctionEnd diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 298211df..40dbd89f 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -8,8 +8,8 @@ gl_FragCoord origin is upper left 0:1 1.000000 0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:9 Function Parameters: -0:9 'inFloat1' (temp 1-component vector of float) -0:9 'inScalar' (temp float) +0:9 'inFloat1' (in 1-component vector of float) +0:9 'inScalar' (in float) 0:? Linker Objects 0:? 'f1' (temp 1-component vector of float) 0:? 'fmat11' (temp 1X1 matrix of float) @@ -31,8 +31,8 @@ gl_FragCoord origin is upper left 0:1 1.000000 0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:9 Function Parameters: -0:9 'inFloat1' (temp 1-component vector of float) -0:9 'inScalar' (temp float) +0:9 'inFloat1' (in 1-component vector of float) +0:9 'inScalar' (in float) 0:? Linker Objects 0:? 'f1' (temp 1-component vector of float) 0:? 'fmat11' (temp 1X1 matrix of float) diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 7c3c7e69..02f82bfe 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -4,13 +4,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input1' (temp 4-component vector of float) -0:2 'input2' (temp 4-component vector of float) +0:2 'input1' (in 4-component vector of float) +0:2 'input2' (in 4-component vector of float) 0:? Sequence 0:3 Branch: Return with expression 0:3 max (global 4-component vector of float) -0:3 'input1' (temp 4-component vector of float) -0:3 'input2' (temp 4-component vector of float) +0:3 'input1' (in 4-component vector of float) +0:3 'input2' (in 4-component vector of float) 0:? Linker Objects @@ -22,13 +22,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input1' (temp 4-component vector of float) -0:2 'input2' (temp 4-component vector of float) +0:2 'input1' (in 4-component vector of float) +0:2 'input2' (in 4-component vector of float) 0:? Sequence 0:3 Branch: Return with expression 0:3 max (global 4-component vector of float) -0:3 'input1' (temp 4-component vector of float) -0:3 'input2' (temp 4-component vector of float) +0:3 'input1' (in 4-component vector of float) +0:3 'input2' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -48,11 +48,11 @@ gl_FragCoord origin is upper left 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) + 8: TypePointer Input 7(fvec4) + 9(input1): 8(ptr) Variable Input + 11(input2): 8(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 9(input1): 8(ptr) Variable Function - 11(input2): 8(ptr) Variable Function 10: 7(fvec4) Load 9(input1) 12: 7(fvec4) Load 11(input2) 13: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 10 12 diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index dc0b0e93..40e17894 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -4,19 +4,19 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:7 Function Parameters: -0:7 'a1' (temp 4-component vector of float) -0:7 'a2' (temp 4-component vector of float) -0:7 'a3' (temp 4-component vector of float) -0:7 'a4' (temp 4-component vector of float) +0:7 'a1' (in 4-component vector of float) +0:7 'a2' (in 4-component vector of float) +0:7 'a3' (in 4-component vector of float) +0:7 'a4' (in 4-component vector of float) 0:? Sequence 0:8 Branch: Return with expression 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (temp 4-component vector of float) +0:8 'a1' (in 4-component vector of float) 0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (temp 4-component vector of float) -0:8 'a3' (temp 4-component vector of float) -0:8 'a4' (temp 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) 0:? Linker Objects @@ -28,19 +28,19 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:7 Function Parameters: -0:7 'a1' (temp 4-component vector of float) -0:7 'a2' (temp 4-component vector of float) -0:7 'a3' (temp 4-component vector of float) -0:7 'a4' (temp 4-component vector of float) +0:7 'a1' (in 4-component vector of float) +0:7 'a2' (in 4-component vector of float) +0:7 'a3' (in 4-component vector of float) +0:7 'a4' (in 4-component vector of float) 0:? Sequence 0:8 Branch: Return with expression 0:8 add (temp 4-component vector of float) 0:8 add (temp 4-component vector of float) -0:8 'a1' (temp 4-component vector of float) +0:8 'a1' (in 4-component vector of float) 0:8 component-wise multiply (temp 4-component vector of float) -0:8 'a2' (temp 4-component vector of float) -0:8 'a3' (temp 4-component vector of float) -0:8 'a4' (temp 4-component vector of float) +0:8 'a2' (in 4-component vector of float) +0:8 'a3' (in 4-component vector of float) +0:8 'a4' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 9 11 13 17 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -62,13 +62,13 @@ gl_FragCoord origin is upper left 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) + 8: TypePointer Input 7(fvec4) + 9(a1): 8(ptr) Variable Input + 11(a2): 8(ptr) Variable Input + 13(a3): 8(ptr) Variable Input + 17(a4): 8(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 9(a1): 8(ptr) Variable Function - 11(a2): 8(ptr) Variable Function - 13(a3): 8(ptr) Variable Function - 17(a4): 8(ptr) Variable Function 10: 7(fvec4) Load 9(a1) 12: 7(fvec4) Load 11(a2) 14: 7(fvec4) Load 13(a3) diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index 73d500d3..02b89951 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -4,27 +4,27 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) 0:7 Function Parameters: -0:7 'a1' (temp int) -0:7 'a2' (temp int) -0:7 'a3' (temp int) -0:7 'a4' (temp int) +0:7 'a1' (in int) +0:7 'a2' (in int) +0:7 'a3' (in int) +0:7 'a4' (in int) 0:? Sequence 0:8 Branch: Return with expression 0:8 add (temp int) 0:8 left-shift (temp int) 0:8 add (temp int) 0:8 component-wise multiply (temp int) -0:8 'a1' (temp int) -0:8 'a2' (temp int) -0:8 'a3' (temp int) -0:8 'a4' (temp int) +0:8 'a1' (in int) +0:8 'a2' (in int) +0:8 'a3' (in int) +0:8 'a4' (in int) 0:8 left-shift (temp int) -0:8 'a1' (temp int) +0:8 'a1' (in int) 0:8 add (temp int) -0:8 'a2' (temp int) +0:8 'a2' (in int) 0:8 component-wise multiply (temp int) -0:8 'a3' (temp int) -0:8 'a4' (temp int) +0:8 'a3' (in int) +0:8 'a4' (in int) 0:? Linker Objects @@ -36,27 +36,27 @@ gl_FragCoord origin is upper left 0:? Sequence 0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) 0:7 Function Parameters: -0:7 'a1' (temp int) -0:7 'a2' (temp int) -0:7 'a3' (temp int) -0:7 'a4' (temp int) +0:7 'a1' (in int) +0:7 'a2' (in int) +0:7 'a3' (in int) +0:7 'a4' (in int) 0:? Sequence 0:8 Branch: Return with expression 0:8 add (temp int) 0:8 left-shift (temp int) 0:8 add (temp int) 0:8 component-wise multiply (temp int) -0:8 'a1' (temp int) -0:8 'a2' (temp int) -0:8 'a3' (temp int) -0:8 'a4' (temp int) +0:8 'a1' (in int) +0:8 'a2' (in int) +0:8 'a3' (in int) +0:8 'a4' (in int) 0:8 left-shift (temp int) -0:8 'a1' (temp int) +0:8 'a1' (in int) 0:8 add (temp int) -0:8 'a2' (temp int) +0:8 'a2' (in int) 0:8 component-wise multiply (temp int) -0:8 'a3' (temp int) -0:8 'a4' (temp int) +0:8 'a3' (in int) +0:8 'a4' (in int) 0:? Linker Objects // Module Version 10000 @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 8 10 13 16 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -77,13 +77,13 @@ gl_FragCoord origin is upper left 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 - 7: TypePointer Function 6(int) + 7: TypePointer Input 6(int) + 8(a1): 7(ptr) Variable Input + 10(a2): 7(ptr) Variable Input + 13(a3): 7(ptr) Variable Input + 16(a4): 7(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 8(a1): 7(ptr) Variable Function - 10(a2): 7(ptr) Variable Function - 13(a3): 7(ptr) Variable Function - 16(a4): 7(ptr) Variable Function 9: 6(int) Load 8(a1) 11: 6(int) Load 10(a2) 12: 6(int) IMul 9 11 diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index 274477a4..97ac03e9 100755 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -4,7 +4,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:4 'x' (temp int) 0:? Sequence @@ -48,7 +48,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:4 'x' (temp int) 0:? Sequence diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index 331945ac..c4875d52 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -4,11 +4,11 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Branch: Return with expression 0:3 sine (global 4-component vector of float) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:? Linker Objects @@ -20,11 +20,11 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Branch: Return with expression 0:3 sine (global 4-component vector of float) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:? Linker Objects // Module Version 10000 @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 9 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -43,10 +43,10 @@ gl_FragCoord origin is upper left 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) + 8: TypePointer Input 7(fvec4) + 9(input): 8(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label - 9(input): 8(ptr) Variable Function 10: 7(fvec4) Load 9(input) 11: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 10 ReturnValue 11 diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index de2c74be..ed320800 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -4,13 +4,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:39 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:31 Function Parameters: -0:31 'input' (temp 4-component vector of float) +0:31 'input' (in 4-component vector of float) 0:? Sequence 0:36 Compare Equal (temp bool) 0:36 's3' (temp structure{temp 3-component vector of bool b3}) 0:36 's3' (temp structure{temp 3-component vector of bool b3}) 0:38 Branch: Return with expression -0:38 'input' (temp 4-component vector of float) +0:38 'input' (in 4-component vector of float) 0:? Linker Objects 0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (temp structure{temp 4-component vector of float i}) @@ -25,13 +25,13 @@ gl_FragCoord origin is upper left 0:? Sequence 0:39 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:31 Function Parameters: -0:31 'input' (temp 4-component vector of float) +0:31 'input' (in 4-component vector of float) 0:? Sequence 0:36 Compare Equal (temp bool) 0:36 's3' (temp structure{temp 3-component vector of bool b3}) 0:36 's3' (temp structure{temp 3-component vector of bool b3}) 0:38 Branch: Return with expression -0:38 'input' (temp 4-component vector of float) +0:38 'input' (in 4-component vector of float) 0:? Linker Objects 0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (temp structure{temp 4-component vector of float i}) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 20 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -81,7 +81,8 @@ gl_FragCoord origin is upper left 9: TypePointer Function 8(FS) 17: TypeFloat 32 18: TypeVector 17(float) 4 - 19: TypePointer Function 18(fvec4) + 19: TypePointer Input 18(fvec4) + 20(input): 19(ptr) Variable Input 23(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) 24: TypePointer Function 23(myS) 26: TypeStruct 18(fvec4) @@ -92,7 +93,6 @@ gl_FragCoord origin is upper left 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function - 20(input): 19(ptr) Variable Function 25(s1): 24(ptr) Variable Function 28(s2): 27(ptr) Variable Function 32(s4): 31(ptr) Variable Function diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index a6e92317..0ddc3310 100755 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:5 Function Parameters: -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:? Sequence 0:6 Function Call: foo1( (temp void) 0:7 Function Call: foo2( (temp void) @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:2 Function Parameters: 0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:5 Function Parameters: -0:5 'input' (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) 0:? Sequence 0:6 Function Call: foo1( (temp void) 0:7 Function Call: foo2( (temp void) diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index 686407bd..f4be34af 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -4,17 +4,17 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Loop with condition tested first 0:3 Loop Condition 0:3 Compare Not Equal (temp bool) -0:3 'input' (temp 4-component vector of float) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:3 Loop Body 0:? Sequence 0:3 Branch: Return with expression -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:4 Loop with condition tested first 0:4 Loop Condition 0:4 Constant: @@ -41,17 +41,17 @@ gl_FragCoord origin is upper left 0:? Sequence 0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: -0:2 'input' (temp 4-component vector of float) +0:2 'input' (in 4-component vector of float) 0:? Sequence 0:3 Loop with condition tested first 0:3 Loop Condition 0:3 Compare Not Equal (temp bool) -0:3 'input' (temp 4-component vector of float) -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:3 Loop Body 0:? Sequence 0:3 Branch: Return with expression -0:3 'input' (temp 4-component vector of float) +0:3 'input' (in 4-component vector of float) 0:4 Loop with condition tested first 0:4 Loop Condition 0:4 Constant: @@ -76,7 +76,7 @@ gl_FragCoord origin is upper left Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" + EntryPoint Fragment 4 "PixelShaderFunction" 14 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -85,13 +85,13 @@ gl_FragCoord origin is upper left 3: TypeFunction 2 11: TypeFloat 32 12: TypeVector 11(float) 4 - 13: TypePointer Function 12(fvec4) + 13: TypePointer Input 12(fvec4) + 14(input): 13(ptr) Variable Input 17: TypeBool 18: TypeVector 17(bool) 4 28: 17(bool) ConstantFalse 4(PixelShaderFunction): 2 Function None 3 5: Label - 14(input): 13(ptr) Variable Function Branch 6 6: Label LoopMerge 8 9 None diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 3f0740a0..15ff2bee 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -785,6 +785,8 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) acceptPostDecls(*type); + parseContext.paramFix(*type); + TParameter param = { idToken.string, type }; function.addParameter(param); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index a8641c88..4d463149 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -717,6 +717,11 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l functionReturnsValue = false; inEntrypoint = (function.getName() == intermediate.getEntryPoint().c_str()); + if (inEntrypoint) { + // parameters are actually shader-level inputs + for (int i = 0; i < function.getParamCount(); i++) + function[i].type->getQualifier().storage = EvqVaryingIn; + } // // New symbol table scope for body of function plus its arguments @@ -2356,42 +2361,21 @@ void HlslParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& n intermediate.addSymbolLinkageNode(linkage, *block); } -void HlslParseContext::paramCheckFix(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type) +void HlslParseContext::paramFix(TType& type) { - switch (qualifier) { + switch (type.getQualifier().storage) { case EvqConst: - case EvqConstReadOnly: type.getQualifier().storage = EvqConstReadOnly; break; - case EvqIn: - case EvqOut: - case EvqInOut: - type.getQualifier().storage = qualifier; - break; case EvqGlobal: case EvqTemporary: type.getQualifier().storage = EvqIn; break; default: - type.getQualifier().storage = EvqIn; - error(loc, "storage qualifier not allowed on function parameter", GetStorageQualifierString(qualifier), ""); break; } } -void HlslParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& qualifier, TType& type) -{ - if (qualifier.isMemory()) { - type.getQualifier().volatil = qualifier.volatil; - type.getQualifier().coherent = qualifier.coherent; - type.getQualifier().readonly = qualifier.readonly; - type.getQualifier().writeonly = qualifier.writeonly; - type.getQualifier().restrict = qualifier.restrict; - } - - paramCheckFix(loc, qualifier.storage, type); -} - void HlslParseContext::specializationCheck(const TSourceLoc& loc, const TType& type, const char* op) { if (type.containsSpecializationSize()) diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 838f2e61..dd97e490 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -116,8 +116,7 @@ public: int computeSamplerTypeIndex(TSampler&); TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration); void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); - void paramCheckFix(const TSourceLoc&, const TStorageQualifier&, TType& type); - void paramCheckFix(const TSourceLoc&, const TQualifier&, TType& type); + void paramFix(TType& type); void specializationCheck(const TSourceLoc&, const TType&, const char* op); void setLayoutQualifier(const TSourceLoc&, TPublicType&, TString&); From 93a162a85768fc0bb12093f766209bbc5593070e Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 17 Jun 2016 17:16:27 -0600 Subject: [PATCH 46/48] HLSL: Handle "." for structure dereference and swizzle. --- Test/baseResults/hlsl.struct.frag.out | 114 +++++++++++++++---------- Test/baseResults/hlsl.swizzle.frag.out | 113 ++++++++++++++++++++++++ Test/hlsl.struct.frag | 1 + Test/hlsl.swizzle.frag | 6 ++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 10 ++- 6 files changed, 200 insertions(+), 45 deletions(-) create mode 100755 Test/baseResults/hlsl.swizzle.frag.out create mode 100644 Test/hlsl.swizzle.frag diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index ed320800..43b1ecb3 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -2,15 +2,24 @@ hlsl.struct.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:31 Function Parameters: 0:31 'input' (in 4-component vector of float) 0:? Sequence 0:36 Compare Equal (temp bool) 0:36 's3' (temp structure{temp 3-component vector of bool b3}) 0:36 's3' (temp structure{temp 3-component vector of bool b3}) -0:38 Branch: Return with expression -0:38 'input' (in 4-component vector of float) +0:37 move second child to first child (temp 4-component vector of float) +0:37 i: direct index for structure (temp 4-component vector of float) +0:37 's2' (temp structure{temp 4-component vector of float i}) +0:37 Constant: +0:37 0 (const int) +0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord) +0:37 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +0:37 Constant: +0:37 7 (const int) +0:39 Branch: Return with expression +0:39 'input' (in 4-component vector of float) 0:? Linker Objects 0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (temp structure{temp 4-component vector of float i}) @@ -23,15 +32,24 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:31 Function Parameters: 0:31 'input' (in 4-component vector of float) 0:? Sequence 0:36 Compare Equal (temp bool) 0:36 's3' (temp structure{temp 3-component vector of bool b3}) 0:36 's3' (temp structure{temp 3-component vector of bool b3}) -0:38 Branch: Return with expression -0:38 'input' (in 4-component vector of float) +0:37 move second child to first child (temp 4-component vector of float) +0:37 i: direct index for structure (temp 4-component vector of float) +0:37 's2' (temp structure{temp 4-component vector of float i}) +0:37 Constant: +0:37 0 (const int) +0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord) +0:37 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +0:37 Constant: +0:37 7 (const int) +0:39 Branch: Return with expression +0:39 'input' (in 4-component vector of float) 0:? Linker Objects 0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) 0:? 's2' (temp structure{temp 4-component vector of float i}) @@ -39,40 +57,40 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 33 +// Id's are bound by 40 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 20 + EntryPoint Fragment 4 "PixelShaderFunction" 34 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" Name 8 "FS" MemberName 8(FS) 0 "b3" Name 10 "s3" - Name 20 "input" - Name 23 "myS" - MemberName 23(myS) 0 "b" - MemberName 23(myS) 1 "c" - MemberName 23(myS) 2 "a" - MemberName 23(myS) 3 "d" - Name 25 "s1" - Name 26 "" - MemberName 26 0 "i" - Name 28 "s2" - Name 30 "" - MemberName 30 0 "a" - MemberName 30 1 "b" - MemberName 30 2 "c" - MemberName 30 3 "d" - MemberName 30 4 "ff1" - MemberName 30 5 "ff2" - MemberName 30 6 "ff3" - MemberName 30 7 "ff4" - Name 32 "s4" - MemberDecorate 30 4 BuiltIn FrontFacing - MemberDecorate 30 7 BuiltIn FragCoord + Name 19 "" + MemberName 19 0 "i" + Name 21 "s2" + Name 25 "" + MemberName 25 0 "a" + MemberName 25 1 "b" + MemberName 25 2 "c" + MemberName 25 3 "d" + MemberName 25 4 "ff1" + MemberName 25 5 "ff2" + MemberName 25 6 "ff3" + MemberName 25 7 "ff4" + Name 27 "s4" + Name 34 "input" + Name 37 "myS" + MemberName 37(myS) 0 "b" + MemberName 37(myS) 1 "c" + MemberName 37(myS) 2 "a" + MemberName 37(myS) 3 "d" + Name 39 "s1" + MemberDecorate 25 4 BuiltIn FrontFacing + MemberDecorate 25 7 BuiltIn FragCoord 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -81,27 +99,35 @@ gl_FragCoord origin is upper left 9: TypePointer Function 8(FS) 17: TypeFloat 32 18: TypeVector 17(float) 4 - 19: TypePointer Input 18(fvec4) - 20(input): 19(ptr) Variable Input - 23(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 24: TypePointer Function 23(myS) - 26: TypeStruct 18(fvec4) - 27: TypePointer Function 26(struct) - 29: TypeVector 17(float) 2 - 30: TypeStruct 18(fvec4) 6(bool) 17(float) 29(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4) - 31: TypePointer Function 30(struct) + 19: TypeStruct 18(fvec4) + 20: TypePointer Function 19(struct) + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 24: TypeVector 17(float) 2 + 25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4) + 26: TypePointer Function 25(struct) + 28: 22(int) Constant 7 + 29: TypePointer Function 18(fvec4) + 33: TypePointer Input 18(fvec4) + 34(input): 33(ptr) Variable Input + 37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) + 38: TypePointer Function 37(myS) 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function - 25(s1): 24(ptr) Variable Function - 28(s2): 27(ptr) Variable Function - 32(s4): 31(ptr) Variable Function + 21(s2): 20(ptr) Variable Function + 27(s4): 26(ptr) Variable Function + 39(s1): 38(ptr) Variable Function 11: 8(FS) Load 10(s3) 12: 8(FS) Load 10(s3) 13: 7(bvec3) CompositeExtract 11 0 14: 7(bvec3) CompositeExtract 12 0 15: 7(bvec3) LogicalEqual 13 14 16: 6(bool) All 15 - 21: 18(fvec4) Load 20(input) - ReturnValue 21 + 30: 29(ptr) AccessChain 27(s4) 28 + 31: 18(fvec4) Load 30 + 32: 29(ptr) AccessChain 21(s2) 23 + Store 32 31 + 35: 18(fvec4) Load 34(input) + ReturnValue 35 FunctionEnd diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out new file mode 100755 index 00000000..ab9a0cc2 --- /dev/null +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -0,0 +1,113 @@ +hlsl.swizzle.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:1 move second child to first child (temp 4-component vector of float) +0:1 'AmbientColor' (temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) +0:4 Function Parameters: +0:4 'input' (in 4-component vector of float) +0:? Sequence +0:5 Branch: Return with expression +0:5 component-wise multiply (temp 4-component vector of float) +0:5 vector swizzle (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 Sequence +0:5 Constant: +0:5 3 (const int) +0:5 Constant: +0:5 3 (const int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 0 (const int) +0:5 Construct vec4 (temp 4-component vector of float) +0:5 direct index (temp float) +0:5 'AmbientColor' (temp 4-component vector of float) +0:5 Constant: +0:5 2 (const int) +0:? Linker Objects +0:? 'AmbientColor' (temp 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:1 move second child to first child (temp 4-component vector of float) +0:1 'AmbientColor' (temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) +0:4 Function Parameters: +0:4 'input' (in 4-component vector of float) +0:? Sequence +0:5 Branch: Return with expression +0:5 component-wise multiply (temp 4-component vector of float) +0:5 vector swizzle (temp 4-component vector of float) +0:5 'input' (in 4-component vector of float) +0:5 Sequence +0:5 Constant: +0:5 3 (const int) +0:5 Constant: +0:5 3 (const int) +0:5 Constant: +0:5 1 (const int) +0:5 Constant: +0:5 0 (const int) +0:5 Construct vec4 (temp 4-component vector of float) +0:5 direct index (temp float) +0:5 'AmbientColor' (temp 4-component vector of float) +0:5 Constant: +0:5 2 (const int) +0:? Linker Objects +0:? 'AmbientColor' (temp 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 25 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 11 "ShaderFunction(vf4;" + Name 10 "input" + Name 15 "AmbientColor" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 7(fvec4) 8(ptr) + 16: TypeInt 32 0 + 17: 16(int) Constant 2 + 18: TypePointer Function 6(float) +4(PixelShaderFunction): 2 Function None 3 + 5: Label + FunctionEnd +11(ShaderFunction(vf4;): 7(fvec4) Function None 9 + 10(input): 8(ptr) FunctionParameter + 12: Label +15(AmbientColor): 8(ptr) Variable Function + 13: 7(fvec4) Load 10(input) + 14: 7(fvec4) VectorShuffle 13 13 3 3 1 0 + 19: 18(ptr) AccessChain 15(AmbientColor) 17 + 20: 6(float) Load 19 + 21: 7(fvec4) CompositeConstruct 20 20 20 20 + 22: 7(fvec4) FMul 14 21 + ReturnValue 22 + FunctionEnd diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index aded037c..25c803d6 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -34,6 +34,7 @@ float4 PixelShaderFunction(float4 input) : COLOR0 } s3; s3 == s3; + s2.i = s4.ff4; return input; } \ No newline at end of file diff --git a/Test/hlsl.swizzle.frag b/Test/hlsl.swizzle.frag new file mode 100644 index 00000000..231430a9 --- /dev/null +++ b/Test/hlsl.swizzle.frag @@ -0,0 +1,6 @@ +float4 AmbientColor = float4(1, 0.5, 0, 1); + +float4 ShaderFunction(float4 input) : COLOR0 +{ + return input.wwyx * float4(AmbientColor.z); +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 2aa6b923..46389624 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -93,6 +93,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.scope.frag", "PixelShaderFunction"}, {"hlsl.sin.frag", "PixelShaderFunction"}, {"hlsl.struct.frag", "PixelShaderFunction"}, + {"hlsl.swizzle.frag", "PixelShaderFunction"}, {"hlsl.whileLoop.frag", "PixelShaderFunction"}, {"hlsl.void.frag", "PixelShaderFunction"}, }), diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 15ff2bee..eb5a9aca 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1097,8 +1097,16 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) // We have a valid post-unary operator, process it. switch (postOp) { case EOpIndexDirectStruct: - // todo + { + // includes swizzles + HlslToken field; + if (! acceptIdentifier(field)) { + expected("swizzle or member"); + return false; + } + node = parseContext.handleDotDereference(field.loc, node, *field.string); break; + } case EOpIndexIndirect: { TIntermTyped* indexNode = nullptr; From 19b92fff7ec0f5973d45434764f79e8f13c186f9 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 19 Jun 2016 11:50:34 -0600 Subject: [PATCH 47/48] HLSL: Basic array grammar. --- Test/baseResults/hlsl.array.frag.out | 181 +++++++++++++++++++++++++++ Test/hlsl.array.frag | 11 ++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 67 ++++++++-- hlsl/hlslGrammar.h | 1 + hlsl/hlslOpMap.cpp | 2 +- 6 files changed, 254 insertions(+), 9 deletions(-) create mode 100755 Test/baseResults/hlsl.array.frag.out create mode 100644 Test/hlsl.array.frag diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out new file mode 100755 index 00000000..113f1521 --- /dev/null +++ b/Test/baseResults/hlsl.array.frag.out @@ -0,0 +1,181 @@ +hlsl.array.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) +0:8 Function Parameters: +0:8 'i' (in int) +0:8 'input' (in 3-element array of 4-component vector of float) +0:? Sequence +0:10 Branch: Return with expression +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'a' (temp 4-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'a' (temp 4-element array of 4-component vector of float) +0:10 'i' (in int) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 2 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) +0:10 'i' (in int) +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 Constant: +0:10 5 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 'i' (in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'i' (in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (in int) +0:? Linker Objects +0:? 'a' (temp 4-element array of 4-component vector of float) +0:? 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) +0:8 Function Parameters: +0:8 'i' (in int) +0:8 'input' (in 3-element array of 4-component vector of float) +0:? Sequence +0:10 Branch: Return with expression +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'a' (temp 4-element array of 4-component vector of float) +0:10 Constant: +0:10 1 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'a' (temp 4-element array of 4-component vector of float) +0:10 'i' (in int) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) +0:10 Constant: +0:10 2 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'input' (in 3-element array of 4-component vector of float) +0:10 'i' (in int) +0:10 add (temp 4-component vector of float) +0:10 add (temp 4-component vector of float) +0:10 direct index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 Constant: +0:10 5 (const int) +0:10 indirect index (temp 4-component vector of float) +0:10 'b' (temp 10-element array of 4-component vector of float) +0:10 'i' (in int) +0:10 indirect index (temp 4-component vector of float) +0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) +0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'i' (in int) +0:10 Constant: +0:10 0 (const int) +0:10 'i' (in int) +0:? Linker Objects +0:? 'a' (temp 4-element array of 4-component vector of float) +0:? 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 63 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 19 27 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 12 "a" + Name 19 "i" + Name 27 "input" + Name 40 "b" + Name 50 "" + MemberName 50 0 "m" + Name 54 "s" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 4 + 10: TypeArray 7(fvec4) 9 + 11: TypePointer Function 10 + 13: TypeInt 32 1 + 14: 13(int) Constant 1 + 15: TypePointer Function 7(fvec4) + 18: TypePointer Input 13(int) + 19(i): 18(ptr) Variable Input + 24: 8(int) Constant 3 + 25: TypeArray 7(fvec4) 24 + 26: TypePointer Input 25 + 27(input): 26(ptr) Variable Input + 28: 13(int) Constant 2 + 29: TypePointer Input 7(fvec4) + 37: 8(int) Constant 10 + 38: TypeArray 7(fvec4) 37 + 39: TypePointer Function 38 + 41: 13(int) Constant 5 + 48: 8(int) Constant 7 + 49: TypeArray 7(fvec4) 48 + 50: TypeStruct 49 + 51: 8(int) Constant 11 + 52: TypeArray 50(struct) 51 + 53: TypePointer Function 52 + 56: 13(int) Constant 0 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 12(a): 11(ptr) Variable Function + 40(b): 39(ptr) Variable Function + 54(s): 53(ptr) Variable Function + 16: 15(ptr) AccessChain 12(a) 14 + 17: 7(fvec4) Load 16 + 20: 13(int) Load 19(i) + 21: 15(ptr) AccessChain 12(a) 20 + 22: 7(fvec4) Load 21 + 23: 7(fvec4) FAdd 17 22 + 30: 29(ptr) AccessChain 27(input) 28 + 31: 7(fvec4) Load 30 + 32: 13(int) Load 19(i) + 33: 29(ptr) AccessChain 27(input) 32 + 34: 7(fvec4) Load 33 + 35: 7(fvec4) FAdd 31 34 + 36: 7(fvec4) FAdd 23 35 + 42: 15(ptr) AccessChain 40(b) 41 + 43: 7(fvec4) Load 42 + 44: 13(int) Load 19(i) + 45: 15(ptr) AccessChain 40(b) 44 + 46: 7(fvec4) Load 45 + 47: 7(fvec4) FAdd 43 46 + 55: 13(int) Load 19(i) + 57: 13(int) Load 19(i) + 58: 15(ptr) AccessChain 54(s) 55 56 57 + 59: 7(fvec4) Load 58 + 60: 7(fvec4) FAdd 47 59 + 61: 7(fvec4) FAdd 36 60 + ReturnValue 61 + FunctionEnd diff --git a/Test/hlsl.array.frag b/Test/hlsl.array.frag new file mode 100644 index 00000000..1abba89f --- /dev/null +++ b/Test/hlsl.array.frag @@ -0,0 +1,11 @@ +float4 a[4]; + +struct { + float4 m[7]; +} s[11]; + +float4 PixelShaderFunction(int i, float4 input[3]) : COLOR0 +{ + float4 b[10]; + return a[1] + a[i] + input[2] + input[i] + b[5] + b[i] + s[i].m[i]; +} \ No newline at end of file diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 46389624..22f48d76 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -72,6 +72,7 @@ TEST_P(HlslCompileTest, FromFile) INSTANTIATE_TEST_CASE_P( ToSpirv, HlslCompileTest, ::testing::ValuesIn(std::vector{ + {"hlsl.array.frag", "PixelShaderFunction"}, {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.cast.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index eb5a9aca..17ec8208 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -107,8 +107,7 @@ bool HlslGrammar::acceptCompilationUnit() // declaration // : SEMICOLON // : fully_specified_type SEMICOLON -// | fully_specified_type identifier post_decls SEMICOLON -// | fully_specified_type identifier post_decls = expression SEMICOLON +// | fully_specified_type identifier array_specifier post_decls (EQUAL expression)opt SEMICOLON // | fully_specified_type identifier function_parameters post_decls SEMICOLON // function prototype // | fully_specified_type identifier function_parameters post_decls compound_statement // function definition // @@ -127,8 +126,14 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // identifier HlslToken idToken; if (acceptIdentifier(idToken)) { + // array_specifier + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + + // post_decls acceptPostDecls(type); - // = expression + + // EQUAL expression TIntermTyped* expressionNode = nullptr; if (acceptTokenClass(EHTokAssign)) { if (! acceptExpression(expressionNode)) { @@ -139,7 +144,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // SEMICOLON if (acceptTokenClass(EHTokSemicolon)) { - node = parseContext.declareVariable(idToken.loc, *idToken.string, type, 0, expressionNode); + node = parseContext.declareVariable(idToken.loc, *idToken.string, type, arraySizes, expressionNode); return true; } @@ -711,7 +716,10 @@ bool HlslGrammar::acceptStructDeclarationList(TTypeList*& typeList) advanceToken(); // array_specifier - // TODO + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + if (arraySizes) + typeList->back().type->newArraySizes(*arraySizes); acceptPostDecls(*member.type); @@ -770,7 +778,7 @@ bool HlslGrammar::acceptFunctionParameters(TFunction& function) // parameter_declaration // : fully_specified_type post_decls -// | fully_specified_type identifier post_decls +// | fully_specified_type identifier array_specifier post_decls // bool HlslGrammar::acceptParameterDeclaration(TFunction& function) { @@ -783,6 +791,13 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) HlslToken idToken; acceptIdentifier(idToken); + // array_specifier + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + if (arraySizes) + type->newArraySizes(*arraySizes); + + // post_decls acceptPostDecls(*type); parseContext.paramFix(*type); @@ -1098,7 +1113,9 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) switch (postOp) { case EOpIndexDirectStruct: { - // includes swizzles + // DOT IDENTIFIER + // includes swizzles and struct members + // TODO: possibly includes "method" syntax HlslToken field; if (! acceptIdentifier(field)) { expected("swizzle or member"); @@ -1109,16 +1126,22 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) } case EOpIndexIndirect: { + // LEFT_BRACKET integer_expression RIGHT_BRACKET TIntermTyped* indexNode = nullptr; if (! acceptExpression(indexNode) || ! peekTokenClass(EHTokRightBracket)) { expected("expression followed by ']'"); return false; } - // todo: node = intermediate.addBinaryMath( + advanceToken(); + node = parseContext.handleBracketDereference(indexNode->getLoc(), node, indexNode); + break; } case EOpPostIncrement: + // INC_OP + // fall through case EOpPostDecrement: + // DEC_OP node = intermediate.addUnaryMath(postOp, node, loc); break; default: @@ -1629,6 +1652,34 @@ bool HlslGrammar::acceptCaseLabel(TIntermNode*& statement) return false; } +// array_specifier +// : LEFT_BRACKET integer_expression RGHT_BRACKET post_decls // optional +// +void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) +{ + arraySizes = nullptr; + + if (! acceptTokenClass(EHTokLeftBracket)) + return; + + TSourceLoc loc = token.loc; + TIntermTyped* sizeExpr; + if (! acceptAssignmentExpression(sizeExpr)) { + expected("array-sizing expression"); + return; + } + + if (! acceptTokenClass(EHTokRightBracket)) { + expected("]"); + return; + } + + TArraySize arraySize; + parseContext.arraySizeCheck(loc, sizeExpr, arraySize); + arraySizes = new TArraySizes; + arraySizes->addInnerSize(arraySize); +} + // post_decls // : COLON semantic // optional // COLON PACKOFFSET LEFT_PAREN ... RIGHT_PAREN // optional diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 97cea84a..b4a948f2 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -87,6 +87,7 @@ namespace glslang { bool acceptIterationStatement(TIntermNode*&); bool acceptJumpStatement(TIntermNode*&); bool acceptCaseLabel(TIntermNode*&); + void acceptArraySpecifier(TArraySizes*&); void acceptPostDecls(TType&); HlslParseContext& parseContext; // state of parsing and helper functions for building the intermediate diff --git a/hlsl/hlslOpMap.cpp b/hlsl/hlslOpMap.cpp index c31dd7cf..524e66a2 100755 --- a/hlsl/hlslOpMap.cpp +++ b/hlsl/hlslOpMap.cpp @@ -113,7 +113,7 @@ TOperator HlslOpMap::postUnary(EHlslTokenClass op) { switch (op) { case EHTokDot: return EOpIndexDirectStruct; - case EHTokLeftBracket: return EOpIndexIndirect; // may need to change later to EOpIndexDirect + case EHTokLeftBracket: return EOpIndexIndirect; case EHTokIncOp: return EOpPostIncrement; case EHTokDecOp: return EOpPostDecrement; From 6e72fddaa2a078d93a66ae423bcd5d61f73fa4b0 Mon Sep 17 00:00:00 2001 From: LoopDawg Date: Wed, 15 Jun 2016 09:50:24 -0600 Subject: [PATCH 48/48] Add HLSL memory barrier intrinsics, fix dst, add lit & EvaluateAttributeSnapped --- SPIRV/GlslangToSpv.cpp | 19 + .../hlsl.intrinsics.barriers.comp.out | 70 +++ .../hlsl.intrinsics.evalfns.frag.out | 160 ++++++ .../hlsl.intrinsics.f1632.frag.out | 129 +++++ Test/baseResults/hlsl.intrinsics.frag.out | 478 +++++++++--------- Test/baseResults/hlsl.intrinsics.lit.frag.out | 134 +++++ .../hlsl.intrinsics.negative.vert.out | 32 +- Test/baseResults/hlsl.intrinsics.vert.out | 412 +++++++-------- Test/hlsl.intrinsics.barriers.comp | 13 + Test/hlsl.intrinsics.evalfns.frag | 10 + Test/hlsl.intrinsics.f1632.frag | 34 ++ Test/hlsl.intrinsics.lit.frag | 4 + Test/hlsl.intrinsics.negative.vert | 12 +- glslang/Include/intermediate.h | 9 +- glslang/MachineIndependent/intermOut.cpp | 5 + gtests/Hlsl.FromFile.cpp | 4 + hlsl/hlslParseHelper.cpp | 85 ++++ hlsl/hlslParseables.cpp | 26 +- 18 files changed, 1170 insertions(+), 466 deletions(-) create mode 100644 Test/baseResults/hlsl.intrinsics.barriers.comp.out create mode 100644 Test/baseResults/hlsl.intrinsics.evalfns.frag.out create mode 100644 Test/baseResults/hlsl.intrinsics.f1632.frag.out create mode 100644 Test/baseResults/hlsl.intrinsics.lit.frag.out create mode 100644 Test/hlsl.intrinsics.barriers.comp create mode 100644 Test/hlsl.intrinsics.evalfns.frag create mode 100644 Test/hlsl.intrinsics.f1632.frag create mode 100644 Test/hlsl.intrinsics.lit.frag diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 03faf07a..ceea1e2b 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -1405,6 +1405,10 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpMemoryBarrierImage: case glslang::EOpMemoryBarrierShared: case glslang::EOpGroupMemoryBarrier: + case glslang::EOpAllMemoryBarrierWithGroupSync: + case glslang::EOpGroupMemoryBarrierWithGroupSync: + case glslang::EOpWorkgroupMemoryBarrier: + case glslang::EOpWorkgroupMemoryBarrierWithGroupSync: noReturnValue = true; // These all have 0 operands and will naturally finish up in the code below for 0 operands break; @@ -3986,6 +3990,21 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op) case glslang::EOpGroupMemoryBarrier: builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask); return 0; + case glslang::EOpAllMemoryBarrierWithGroupSync: + // Control barrier with non-"None" semantic is also a memory barrier. + builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsAllMemory); + return 0; + case glslang::EOpGroupMemoryBarrierWithGroupSync: + // Control barrier with non-"None" semantic is also a memory barrier. + builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsCrossWorkgroupMemoryMask); + return 0; + case glslang::EOpWorkgroupMemoryBarrier: + builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask); + return 0; + case glslang::EOpWorkgroupMemoryBarrierWithGroupSync: + // Control barrier with non-"None" semantic is also a memory barrier. + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask); + return 0; default: logger->missingFunctionality("unknown operation with no arguments"); return 0; diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out new file mode 100644 index 00000000..ba8a04b6 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -0,0 +1,70 @@ +hlsl.intrinsics.barriers.comp +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:14 Function Definition: ComputeShaderFunction( (temp float) +0:3 Function Parameters: +0:? Sequence +0:4 MemoryBarrier (global void) +0:5 AllMemoryBarrierWithGroupSync (global void) +0:6 GroupMemoryBarrier (global void) +0:7 GroupMemoryBarrierWithGroupSync (global void) +0:8 WorkgroupMemoryBarrier (global void) +0:9 WorkgroupMemoryBarrierWithGroupSync (global void) +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:? Linker Objects + + +Linked compute stage: + + +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:14 Function Definition: ComputeShaderFunction( (temp float) +0:3 Function Parameters: +0:? Sequence +0:4 MemoryBarrier (global void) +0:5 AllMemoryBarrierWithGroupSync (global void) +0:6 GroupMemoryBarrier (global void) +0:7 GroupMemoryBarrierWithGroupSync (global void) +0:8 WorkgroupMemoryBarrier (global void) +0:9 WorkgroupMemoryBarrierWithGroupSync (global void) +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 15 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "ComputeShaderFunction" + ExecutionMode 4 LocalSize 1 1 1 + Source HLSL 450 + Name 4 "ComputeShaderFunction" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) Constant 1 + 8: 6(int) Constant 4048 + 9: 6(int) Constant 512 + 10: 6(int) Constant 2 + 11: 6(int) Constant 256 + 12: TypeFloat 32 + 13: 12(float) Constant 0 +4(ComputeShaderFunction): 2 Function None 3 + 5: Label + MemoryBarrier 7 8 + ControlBarrier 7 7 8 + MemoryBarrier 7 9 + ControlBarrier 7 7 9 + MemoryBarrier 10 11 + ControlBarrier 10 10 11 + ReturnValue 13 + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out new file mode 100644 index 00000000..1c22b25a --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -0,0 +1,160 @@ +hlsl.intrinsics.evalfns.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) +0:3 Function Parameters: +0:3 'inF1' (in float) +0:3 'inF2' (in 2-component vector of float) +0:3 'inF3' (in 3-component vector of float) +0:3 'inF4' (in 4-component vector of float) +0:3 'inI2' (in 2-component vector of int) +0:? Sequence +0:4 interpolateAtOffset (temp float) +0:4 'inF1' (in float) +0:? Constant: +0:? -0.500000 +0:? -0.062500 +0:5 interpolateAtOffset (temp 2-component vector of float) +0:5 'inF2' (in 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.062500 +0:6 interpolateAtOffset (temp 3-component vector of float) +0:6 'inF3' (in 3-component vector of float) +0:? Constant: +0:? 0.187500 +0:? -0.375000 +0:7 interpolateAtOffset (temp 4-component vector of float) +0:7 'inF4' (in 4-component vector of float) +0:? Constant: +0:? 0.437500 +0:? -0.500000 +0:9 interpolateAtOffset (temp float) +0:9 'inF1' (in float) +0:9 vector-scale (temp 2-component vector of float) +0:9 Convert int to float (temp 2-component vector of float) +0:9 right-shift (temp 2-component vector of int) +0:9 left-shift (temp 2-component vector of int) +0:9 'inI2' (in 2-component vector of int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 0.062500 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) +0:3 Function Parameters: +0:3 'inF1' (in float) +0:3 'inF2' (in 2-component vector of float) +0:3 'inF3' (in 3-component vector of float) +0:3 'inF4' (in 4-component vector of float) +0:3 'inI2' (in 2-component vector of int) +0:? Sequence +0:4 interpolateAtOffset (temp float) +0:4 'inF1' (in float) +0:? Constant: +0:? -0.500000 +0:? -0.062500 +0:5 interpolateAtOffset (temp 2-component vector of float) +0:5 'inF2' (in 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.062500 +0:6 interpolateAtOffset (temp 3-component vector of float) +0:6 'inF3' (in 3-component vector of float) +0:? Constant: +0:? 0.187500 +0:? -0.375000 +0:7 interpolateAtOffset (temp 4-component vector of float) +0:7 'inF4' (in 4-component vector of float) +0:? Constant: +0:? 0.437500 +0:? -0.500000 +0:9 interpolateAtOffset (temp float) +0:9 'inF1' (in float) +0:9 vector-scale (temp 2-component vector of float) +0:9 Convert int to float (temp 2-component vector of float) +0:9 right-shift (temp 2-component vector of int) +0:9 left-shift (temp 2-component vector of int) +0:9 'inI2' (in 2-component vector of int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 28 (const int) +0:9 Constant: +0:9 0.062500 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 46 + + Capability Shader + Capability InterpolationFunction + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 8 15 22 29 36 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "main" + Name 8 "inF1" + Name 15 "inF2" + Name 22 "inF3" + Name 29 "inF4" + Name 36 "inI2" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Input 6(float) + 8(inF1): 7(ptr) Variable Input + 9: TypeVector 6(float) 2 + 10: 6(float) Constant 3204448256 + 11: 6(float) Constant 3179282432 + 12: 9(fvec2) ConstantComposite 10 11 + 14: TypePointer Input 9(fvec2) + 15(inF2): 14(ptr) Variable Input + 16: 6(float) Constant 0 + 17: 6(float) Constant 1031798784 + 18: 9(fvec2) ConstantComposite 16 17 + 20: TypeVector 6(float) 3 + 21: TypePointer Input 20(fvec3) + 22(inF3): 21(ptr) Variable Input + 23: 6(float) Constant 1044381696 + 24: 6(float) Constant 3200253952 + 25: 9(fvec2) ConstantComposite 23 24 + 27: TypeVector 6(float) 4 + 28: TypePointer Input 27(fvec4) + 29(inF4): 28(ptr) Variable Input + 30: 6(float) Constant 1054867456 + 31: 9(fvec2) ConstantComposite 30 10 + 33: TypeInt 32 1 + 34: TypeVector 33(int) 2 + 35: TypePointer Input 34(ivec2) + 36(inI2): 35(ptr) Variable Input + 38: 33(int) Constant 28 + 4(main): 2 Function None 3 + 5: Label + 13: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 12 + 19: 9(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 15(inF2) 18 + 26: 20(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 22(inF3) 25 + 32: 27(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 29(inF4) 31 + 37: 34(ivec2) Load 36(inI2) + 39: 34(ivec2) CompositeConstruct 38 38 + 40: 34(ivec2) ShiftLeftLogical 37 39 + 41: 34(ivec2) CompositeConstruct 38 38 + 42: 34(ivec2) ShiftRightArithmetic 40 41 + 43: 9(fvec2) ConvertSToF 42 + 44: 9(fvec2) VectorTimesScalar 43 17 + 45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 8(inF1) 44 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out new file mode 100644 index 00000000..a4930ec9 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -0,0 +1,129 @@ +hlsl.intrinsics.f1632.frag +ERROR: 0:3: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 0:16: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 0:23: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 0:30: 'f32tof16' : unimplemented intrinsic: handle natively +ERROR: 4 compilation errors. No code generated. + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:8 Function Definition: PixelShaderFunction(f1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (in float) +0:? Sequence +0:3 ERROR: Bad unary op + (global uint) +0:3 'inF0' (in float) +0:5 Branch: Return with expression +0:5 Constant: +0:5 0.000000 +0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float) +0:9 Function Parameters: +0:9 'inF0' (in 1-component vector of float) +0:? Sequence +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float) +0:15 Function Parameters: +0:15 'inF0' (in 2-component vector of float) +0:? Sequence +0:16 ERROR: Bad unary op + (global 2-component vector of uint) +0:16 'inF0' (in 2-component vector of float) +0:18 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float) +0:22 Function Parameters: +0:22 'inF0' (in 3-component vector of float) +0:? Sequence +0:23 ERROR: Bad unary op + (global 3-component vector of uint) +0:23 'inF0' (in 3-component vector of float) +0:25 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:29 Function Parameters: +0:29 'inF0' (in 4-component vector of float) +0:? Sequence +0:30 ERROR: Bad unary op + (global 4-component vector of uint) +0:30 'inF0' (in 4-component vector of float) +0:32 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +ERROR: node is still EOpNull! +0:8 Function Definition: PixelShaderFunction(f1; (temp float) +0:2 Function Parameters: +0:2 'inF0' (in float) +0:? Sequence +0:3 ERROR: Bad unary op + (global uint) +0:3 'inF0' (in float) +0:5 Branch: Return with expression +0:5 Constant: +0:5 0.000000 +0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float) +0:9 Function Parameters: +0:9 'inF0' (in 1-component vector of float) +0:? Sequence +0:11 Branch: Return with expression +0:11 Constant: +0:11 0.000000 +0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float) +0:15 Function Parameters: +0:15 'inF0' (in 2-component vector of float) +0:? Sequence +0:16 ERROR: Bad unary op + (global 2-component vector of uint) +0:16 'inF0' (in 2-component vector of float) +0:18 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float) +0:22 Function Parameters: +0:22 'inF0' (in 3-component vector of float) +0:? Sequence +0:23 ERROR: Bad unary op + (global 3-component vector of uint) +0:23 'inF0' (in 3-component vector of float) +0:25 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:29 Function Parameters: +0:29 'inF0' (in 4-component vector of float) +0:? Sequence +0:30 ERROR: Bad unary op + (global 4-component vector of uint) +0:30 'inF0' (in 4-component vector of float) +0:32 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? Linker Objects + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 1b886d10..c280bbde 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -638,7 +638,7 @@ gl_FragCoord origin is upper left 0:281 dot-product (global float) 0:281 'inF0' (in 4-component vector of float) 0:281 'inF1' (in 4-component vector of float) -0:282 Construct vec4 (temp float) +0:282 Construct vec4 (temp 4-component vector of float) 0:282 Constant: 0:282 1.000000 0:282 component-wise multiply (temp float) @@ -2088,7 +2088,7 @@ gl_FragCoord origin is upper left 0:281 dot-product (global float) 0:281 'inF0' (in 4-component vector of float) 0:281 'inF1' (in 4-component vector of float) -0:282 Construct vec4 (temp float) +0:282 Construct vec4 (temp 4-component vector of float) 0:282 Constant: 0:282 1.000000 0:282 component-wise multiply (temp float) @@ -2897,13 +2897,13 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1264 +// Id's are bound by 1265 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 48 67 73 80 195 213 219 226 366 384 390 397 539 557 563 570 718 732 747 856 870 885 997 1011 1026 + EntryPoint Fragment 4 "PixelShaderFunction" 48 67 73 80 195 213 219 226 366 384 390 397 539 557 563 570 719 733 748 857 871 886 998 1012 1027 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" @@ -2947,58 +2947,58 @@ gl_FragCoord origin is upper left Name 557 "inU0" Name 563 "inF1" Name 570 "inF2" - Name 634 "ResType" - Name 718 "inF0" - Name 732 "inF1" - Name 747 "inF2" - Name 790 "ResType" - Name 856 "inF0" - Name 870 "inF1" - Name 885 "inF2" - Name 931 "ResType" - Name 997 "inF0" - Name 1011 "inF1" - Name 1026 "inF2" - Name 1075 "ResType" - Name 1140 "r0" - Name 1144 "r1" - Name 1148 "r2" - Name 1152 "r3" - Name 1156 "r4" - Name 1160 "r5" - Name 1164 "r6" - Name 1168 "r7" - Name 1172 "r8" - Name 1176 "r0" - Name 1180 "r1" - Name 1184 "r2" - Name 1188 "r3" - Name 1192 "r4" - Name 1196 "r5" - Name 1200 "r6" - Name 1204 "r7" - Name 1208 "r8" - Name 1212 "r0" - Name 1216 "r1" - Name 1220 "r2" - Name 1224 "r3" - Name 1228 "r4" - Name 1232 "r5" - Name 1236 "r6" - Name 1240 "r7" - Name 1244 "r8" - Name 1249 "gs_ua" - Name 1250 "gs_ub" - Name 1251 "gs_uc" - Name 1253 "gs_ua2" - Name 1254 "gs_ub2" - Name 1255 "gs_uc2" - Name 1257 "gs_ua3" - Name 1258 "gs_ub3" - Name 1259 "gs_uc3" - Name 1261 "gs_ua4" - Name 1262 "gs_ub4" - Name 1263 "gs_uc4" + Name 635 "ResType" + Name 719 "inF0" + Name 733 "inF1" + Name 748 "inF2" + Name 791 "ResType" + Name 857 "inF0" + Name 871 "inF1" + Name 886 "inF2" + Name 932 "ResType" + Name 998 "inF0" + Name 1012 "inF1" + Name 1027 "inF2" + Name 1076 "ResType" + Name 1141 "r0" + Name 1145 "r1" + Name 1149 "r2" + Name 1153 "r3" + Name 1157 "r4" + Name 1161 "r5" + Name 1165 "r6" + Name 1169 "r7" + Name 1173 "r8" + Name 1177 "r0" + Name 1181 "r1" + Name 1185 "r2" + Name 1189 "r3" + Name 1193 "r4" + Name 1197 "r5" + Name 1201 "r6" + Name 1205 "r7" + Name 1209 "r8" + Name 1213 "r0" + Name 1217 "r1" + Name 1221 "r2" + Name 1225 "r3" + Name 1229 "r4" + Name 1233 "r5" + Name 1237 "r6" + Name 1241 "r7" + Name 1245 "r8" + Name 1250 "gs_ua" + Name 1251 "gs_ub" + Name 1252 "gs_uc" + Name 1254 "gs_ua2" + Name 1255 "gs_ub2" + Name 1256 "gs_uc2" + Name 1258 "gs_ua3" + Name 1259 "gs_ub3" + Name 1260 "gs_uc3" + Name 1262 "gs_ua4" + Name 1263 "gs_ub4" + Name 1264 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -3078,42 +3078,42 @@ gl_FragCoord origin is upper left 574: 34(fvec4) ConstantComposite 84 84 84 84 575: TypeVector 50(bool) 4 585: 554(ivec4) ConstantComposite 93 241 412 159 - 634(ResType): TypeStruct 34(fvec4) 551(ivec4) - 678: 64(int) Constant 4 - 679: 554(ivec4) ConstantComposite 327 159 241 678 - 714: 6(float) Constant 1082130432 - 715: 34(fvec4) ConstantComposite 156 325 535 714 - 717: TypePointer Input 10 - 718(inF0): 717(ptr) Variable Input - 732(inF1): 717(ptr) Variable Input - 738: 10 ConstantComposite 230 230 - 739: TypeMatrix 231(bvec2) 2 - 747(inF2): 717(ptr) Variable Input - 790(ResType): TypeStruct 10 207(ivec2) - 852: 8(fvec2) ConstantComposite 325 325 - 853: 10 ConstantComposite 852 852 - 855: TypePointer Input 23 - 856(inF0): 855(ptr) Variable Input - 870(inF1): 855(ptr) Variable Input - 876: 23 ConstantComposite 401 401 401 - 877: TypeMatrix 402(bvec3) 3 - 885(inF2): 855(ptr) Variable Input - 931(ResType): TypeStruct 23 378(ivec3) - 993: 21(fvec3) ConstantComposite 535 535 535 - 994: 23 ConstantComposite 993 993 993 - 996: TypePointer Input 36 - 997(inF0): 996(ptr) Variable Input - 1011(inF1): 996(ptr) Variable Input - 1017: 36 ConstantComposite 574 574 574 574 - 1018: TypeMatrix 575(bvec4) 4 - 1026(inF2): 996(ptr) Variable Input - 1075(ResType): TypeStruct 36 551(ivec4) - 1137: 34(fvec4) ConstantComposite 714 714 714 714 - 1138: 36 ConstantComposite 1137 1137 1137 1137 - 1248: TypePointer Function 64(int) - 1252: TypePointer Function 210(ivec2) - 1256: TypePointer Function 381(ivec3) - 1260: TypePointer Function 554(ivec4) + 635(ResType): TypeStruct 34(fvec4) 551(ivec4) + 679: 64(int) Constant 4 + 680: 554(ivec4) ConstantComposite 327 159 241 679 + 715: 6(float) Constant 1082130432 + 716: 34(fvec4) ConstantComposite 156 325 535 715 + 718: TypePointer Input 10 + 719(inF0): 718(ptr) Variable Input + 733(inF1): 718(ptr) Variable Input + 739: 10 ConstantComposite 230 230 + 740: TypeMatrix 231(bvec2) 2 + 748(inF2): 718(ptr) Variable Input + 791(ResType): TypeStruct 10 207(ivec2) + 853: 8(fvec2) ConstantComposite 325 325 + 854: 10 ConstantComposite 853 853 + 856: TypePointer Input 23 + 857(inF0): 856(ptr) Variable Input + 871(inF1): 856(ptr) Variable Input + 877: 23 ConstantComposite 401 401 401 + 878: TypeMatrix 402(bvec3) 3 + 886(inF2): 856(ptr) Variable Input + 932(ResType): TypeStruct 23 378(ivec3) + 994: 21(fvec3) ConstantComposite 535 535 535 + 995: 23 ConstantComposite 994 994 994 + 997: TypePointer Input 36 + 998(inF0): 997(ptr) Variable Input + 1012(inF1): 997(ptr) Variable Input + 1018: 36 ConstantComposite 574 574 574 574 + 1019: TypeMatrix 575(bvec4) 4 + 1027(inF2): 997(ptr) Variable Input + 1076(ResType): TypeStruct 36 551(ivec4) + 1138: 34(fvec4) ConstantComposite 715 715 715 715 + 1139: 36 ConstantComposite 1138 1138 1138 1138 + 1249: TypePointer Function 64(int) + 1253: TypePointer Function 210(ivec2) + 1257: TypePointer Function 381(ivec3) + 1261: TypePointer Function 554(ivec4) 4(PixelShaderFunction): 2 Function None 3 5: Label 49: 6(float) Load 48(inF0) @@ -3260,51 +3260,51 @@ gl_FragCoord origin is upper left 17(inFM0): 11(ptr) FunctionParameter 18(inFM1): 11(ptr) FunctionParameter 20: Label - 1140(r0): 7(ptr) Variable Function - 1144(r1): 9(ptr) Variable Function - 1148(r2): 9(ptr) Variable Function - 1152(r3): 7(ptr) Variable Function - 1156(r4): 9(ptr) Variable Function - 1160(r5): 9(ptr) Variable Function - 1164(r6): 11(ptr) Variable Function - 1168(r7): 11(ptr) Variable Function - 1172(r8): 11(ptr) Variable Function - 1141: 6(float) Load 13(inF0) - 1142: 6(float) Load 14(inF1) - 1143: 6(float) FMul 1141 1142 - Store 1140(r0) 1143 - 1145: 8(fvec2) Load 15(inFV0) - 1146: 6(float) Load 13(inF0) - 1147: 8(fvec2) VectorTimesScalar 1145 1146 - Store 1144(r1) 1147 - 1149: 6(float) Load 13(inF0) - 1150: 8(fvec2) Load 15(inFV0) - 1151: 8(fvec2) VectorTimesScalar 1150 1149 - Store 1148(r2) 1151 - 1153: 8(fvec2) Load 15(inFV0) - 1154: 8(fvec2) Load 16(inFV1) - 1155: 6(float) Dot 1153 1154 - Store 1152(r3) 1155 - 1157: 10 Load 17(inFM0) - 1158: 8(fvec2) Load 15(inFV0) - 1159: 8(fvec2) MatrixTimesVector 1157 1158 - Store 1156(r4) 1159 - 1161: 8(fvec2) Load 15(inFV0) - 1162: 10 Load 17(inFM0) - 1163: 8(fvec2) VectorTimesMatrix 1161 1162 - Store 1160(r5) 1163 - 1165: 10 Load 17(inFM0) - 1166: 6(float) Load 13(inF0) - 1167: 10 MatrixTimesScalar 1165 1166 - Store 1164(r6) 1167 - 1169: 6(float) Load 13(inF0) - 1170: 10 Load 17(inFM0) - 1171: 10 MatrixTimesScalar 1170 1169 - Store 1168(r7) 1171 - 1173: 10 Load 17(inFM0) - 1174: 10 Load 18(inFM1) - 1175: 10 MatrixTimesMatrix 1173 1174 - Store 1172(r8) 1175 + 1141(r0): 7(ptr) Variable Function + 1145(r1): 9(ptr) Variable Function + 1149(r2): 9(ptr) Variable Function + 1153(r3): 7(ptr) Variable Function + 1157(r4): 9(ptr) Variable Function + 1161(r5): 9(ptr) Variable Function + 1165(r6): 11(ptr) Variable Function + 1169(r7): 11(ptr) Variable Function + 1173(r8): 11(ptr) Variable Function + 1142: 6(float) Load 13(inF0) + 1143: 6(float) Load 14(inF1) + 1144: 6(float) FMul 1142 1143 + Store 1141(r0) 1144 + 1146: 8(fvec2) Load 15(inFV0) + 1147: 6(float) Load 13(inF0) + 1148: 8(fvec2) VectorTimesScalar 1146 1147 + Store 1145(r1) 1148 + 1150: 6(float) Load 13(inF0) + 1151: 8(fvec2) Load 15(inFV0) + 1152: 8(fvec2) VectorTimesScalar 1151 1150 + Store 1149(r2) 1152 + 1154: 8(fvec2) Load 15(inFV0) + 1155: 8(fvec2) Load 16(inFV1) + 1156: 6(float) Dot 1154 1155 + Store 1153(r3) 1156 + 1158: 10 Load 17(inFM0) + 1159: 8(fvec2) Load 15(inFV0) + 1160: 8(fvec2) MatrixTimesVector 1158 1159 + Store 1157(r4) 1160 + 1162: 8(fvec2) Load 15(inFV0) + 1163: 10 Load 17(inFM0) + 1164: 8(fvec2) VectorTimesMatrix 1162 1163 + Store 1161(r5) 1164 + 1166: 10 Load 17(inFM0) + 1167: 6(float) Load 13(inF0) + 1168: 10 MatrixTimesScalar 1166 1167 + Store 1165(r6) 1168 + 1170: 6(float) Load 13(inF0) + 1171: 10 Load 17(inFM0) + 1172: 10 MatrixTimesScalar 1171 1170 + Store 1169(r7) 1172 + 1174: 10 Load 17(inFM0) + 1175: 10 Load 18(inFM1) + 1176: 10 MatrixTimesMatrix 1174 1175 + Store 1173(r8) 1176 Return FunctionEnd 32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 @@ -3315,51 +3315,51 @@ gl_FragCoord origin is upper left 30(inFM0): 24(ptr) FunctionParameter 31(inFM1): 24(ptr) FunctionParameter 33: Label - 1176(r0): 7(ptr) Variable Function - 1180(r1): 22(ptr) Variable Function - 1184(r2): 22(ptr) Variable Function - 1188(r3): 7(ptr) Variable Function - 1192(r4): 22(ptr) Variable Function - 1196(r5): 22(ptr) Variable Function - 1200(r6): 24(ptr) Variable Function - 1204(r7): 24(ptr) Variable Function - 1208(r8): 24(ptr) Variable Function - 1177: 6(float) Load 26(inF0) - 1178: 6(float) Load 27(inF1) - 1179: 6(float) FMul 1177 1178 - Store 1176(r0) 1179 - 1181: 21(fvec3) Load 28(inFV0) - 1182: 6(float) Load 26(inF0) - 1183: 21(fvec3) VectorTimesScalar 1181 1182 - Store 1180(r1) 1183 - 1185: 6(float) Load 26(inF0) - 1186: 21(fvec3) Load 28(inFV0) - 1187: 21(fvec3) VectorTimesScalar 1186 1185 - Store 1184(r2) 1187 - 1189: 21(fvec3) Load 28(inFV0) - 1190: 21(fvec3) Load 29(inFV1) - 1191: 6(float) Dot 1189 1190 - Store 1188(r3) 1191 - 1193: 23 Load 30(inFM0) - 1194: 21(fvec3) Load 28(inFV0) - 1195: 21(fvec3) MatrixTimesVector 1193 1194 - Store 1192(r4) 1195 - 1197: 21(fvec3) Load 28(inFV0) - 1198: 23 Load 30(inFM0) - 1199: 21(fvec3) VectorTimesMatrix 1197 1198 - Store 1196(r5) 1199 - 1201: 23 Load 30(inFM0) - 1202: 6(float) Load 26(inF0) - 1203: 23 MatrixTimesScalar 1201 1202 - Store 1200(r6) 1203 - 1205: 6(float) Load 26(inF0) - 1206: 23 Load 30(inFM0) - 1207: 23 MatrixTimesScalar 1206 1205 - Store 1204(r7) 1207 - 1209: 23 Load 30(inFM0) - 1210: 23 Load 31(inFM1) - 1211: 23 MatrixTimesMatrix 1209 1210 - Store 1208(r8) 1211 + 1177(r0): 7(ptr) Variable Function + 1181(r1): 22(ptr) Variable Function + 1185(r2): 22(ptr) Variable Function + 1189(r3): 7(ptr) Variable Function + 1193(r4): 22(ptr) Variable Function + 1197(r5): 22(ptr) Variable Function + 1201(r6): 24(ptr) Variable Function + 1205(r7): 24(ptr) Variable Function + 1209(r8): 24(ptr) Variable Function + 1178: 6(float) Load 26(inF0) + 1179: 6(float) Load 27(inF1) + 1180: 6(float) FMul 1178 1179 + Store 1177(r0) 1180 + 1182: 21(fvec3) Load 28(inFV0) + 1183: 6(float) Load 26(inF0) + 1184: 21(fvec3) VectorTimesScalar 1182 1183 + Store 1181(r1) 1184 + 1186: 6(float) Load 26(inF0) + 1187: 21(fvec3) Load 28(inFV0) + 1188: 21(fvec3) VectorTimesScalar 1187 1186 + Store 1185(r2) 1188 + 1190: 21(fvec3) Load 28(inFV0) + 1191: 21(fvec3) Load 29(inFV1) + 1192: 6(float) Dot 1190 1191 + Store 1189(r3) 1192 + 1194: 23 Load 30(inFM0) + 1195: 21(fvec3) Load 28(inFV0) + 1196: 21(fvec3) MatrixTimesVector 1194 1195 + Store 1193(r4) 1196 + 1198: 21(fvec3) Load 28(inFV0) + 1199: 23 Load 30(inFM0) + 1200: 21(fvec3) VectorTimesMatrix 1198 1199 + Store 1197(r5) 1200 + 1202: 23 Load 30(inFM0) + 1203: 6(float) Load 26(inF0) + 1204: 23 MatrixTimesScalar 1202 1203 + Store 1201(r6) 1204 + 1206: 6(float) Load 26(inF0) + 1207: 23 Load 30(inFM0) + 1208: 23 MatrixTimesScalar 1207 1206 + Store 1205(r7) 1208 + 1210: 23 Load 30(inFM0) + 1211: 23 Load 31(inFM1) + 1212: 23 MatrixTimesMatrix 1210 1211 + Store 1209(r8) 1212 Return FunctionEnd 45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 @@ -3370,62 +3370,62 @@ gl_FragCoord origin is upper left 43(inFM0): 37(ptr) FunctionParameter 44(inFM1): 37(ptr) FunctionParameter 46: Label - 1212(r0): 7(ptr) Variable Function - 1216(r1): 35(ptr) Variable Function - 1220(r2): 35(ptr) Variable Function - 1224(r3): 7(ptr) Variable Function - 1228(r4): 35(ptr) Variable Function - 1232(r5): 35(ptr) Variable Function - 1236(r6): 37(ptr) Variable Function - 1240(r7): 37(ptr) Variable Function - 1244(r8): 37(ptr) Variable Function - 1249(gs_ua): 1248(ptr) Variable Function - 1250(gs_ub): 1248(ptr) Variable Function - 1251(gs_uc): 1248(ptr) Variable Function - 1253(gs_ua2): 1252(ptr) Variable Function - 1254(gs_ub2): 1252(ptr) Variable Function - 1255(gs_uc2): 1252(ptr) Variable Function - 1257(gs_ua3): 1256(ptr) Variable Function - 1258(gs_ub3): 1256(ptr) Variable Function - 1259(gs_uc3): 1256(ptr) Variable Function - 1261(gs_ua4): 1260(ptr) Variable Function - 1262(gs_ub4): 1260(ptr) Variable Function - 1263(gs_uc4): 1260(ptr) Variable Function - 1213: 6(float) Load 39(inF0) - 1214: 6(float) Load 40(inF1) - 1215: 6(float) FMul 1213 1214 - Store 1212(r0) 1215 - 1217: 34(fvec4) Load 41(inFV0) - 1218: 6(float) Load 39(inF0) - 1219: 34(fvec4) VectorTimesScalar 1217 1218 - Store 1216(r1) 1219 - 1221: 6(float) Load 39(inF0) - 1222: 34(fvec4) Load 41(inFV0) - 1223: 34(fvec4) VectorTimesScalar 1222 1221 - Store 1220(r2) 1223 - 1225: 34(fvec4) Load 41(inFV0) - 1226: 34(fvec4) Load 42(inFV1) - 1227: 6(float) Dot 1225 1226 - Store 1224(r3) 1227 - 1229: 36 Load 43(inFM0) - 1230: 34(fvec4) Load 41(inFV0) - 1231: 34(fvec4) MatrixTimesVector 1229 1230 - Store 1228(r4) 1231 - 1233: 34(fvec4) Load 41(inFV0) - 1234: 36 Load 43(inFM0) - 1235: 34(fvec4) VectorTimesMatrix 1233 1234 - Store 1232(r5) 1235 - 1237: 36 Load 43(inFM0) - 1238: 6(float) Load 39(inF0) - 1239: 36 MatrixTimesScalar 1237 1238 - Store 1236(r6) 1239 - 1241: 6(float) Load 39(inF0) - 1242: 36 Load 43(inFM0) - 1243: 36 MatrixTimesScalar 1242 1241 - Store 1240(r7) 1243 - 1245: 36 Load 43(inFM0) - 1246: 36 Load 44(inFM1) - 1247: 36 MatrixTimesMatrix 1245 1246 - Store 1244(r8) 1247 + 1213(r0): 7(ptr) Variable Function + 1217(r1): 35(ptr) Variable Function + 1221(r2): 35(ptr) Variable Function + 1225(r3): 7(ptr) Variable Function + 1229(r4): 35(ptr) Variable Function + 1233(r5): 35(ptr) Variable Function + 1237(r6): 37(ptr) Variable Function + 1241(r7): 37(ptr) Variable Function + 1245(r8): 37(ptr) Variable Function + 1250(gs_ua): 1249(ptr) Variable Function + 1251(gs_ub): 1249(ptr) Variable Function + 1252(gs_uc): 1249(ptr) Variable Function + 1254(gs_ua2): 1253(ptr) Variable Function + 1255(gs_ub2): 1253(ptr) Variable Function + 1256(gs_uc2): 1253(ptr) Variable Function + 1258(gs_ua3): 1257(ptr) Variable Function + 1259(gs_ub3): 1257(ptr) Variable Function + 1260(gs_uc3): 1257(ptr) Variable Function + 1262(gs_ua4): 1261(ptr) Variable Function + 1263(gs_ub4): 1261(ptr) Variable Function + 1264(gs_uc4): 1261(ptr) Variable Function + 1214: 6(float) Load 39(inF0) + 1215: 6(float) Load 40(inF1) + 1216: 6(float) FMul 1214 1215 + Store 1213(r0) 1216 + 1218: 34(fvec4) Load 41(inFV0) + 1219: 6(float) Load 39(inF0) + 1220: 34(fvec4) VectorTimesScalar 1218 1219 + Store 1217(r1) 1220 + 1222: 6(float) Load 39(inF0) + 1223: 34(fvec4) Load 41(inFV0) + 1224: 34(fvec4) VectorTimesScalar 1223 1222 + Store 1221(r2) 1224 + 1226: 34(fvec4) Load 41(inFV0) + 1227: 34(fvec4) Load 42(inFV1) + 1228: 6(float) Dot 1226 1227 + Store 1225(r3) 1228 + 1230: 36 Load 43(inFM0) + 1231: 34(fvec4) Load 41(inFV0) + 1232: 34(fvec4) MatrixTimesVector 1230 1231 + Store 1229(r4) 1232 + 1234: 34(fvec4) Load 41(inFV0) + 1235: 36 Load 43(inFM0) + 1236: 34(fvec4) VectorTimesMatrix 1234 1235 + Store 1233(r5) 1236 + 1238: 36 Load 43(inFM0) + 1239: 6(float) Load 39(inF0) + 1240: 36 MatrixTimesScalar 1238 1239 + Store 1237(r6) 1240 + 1242: 6(float) Load 39(inF0) + 1243: 36 Load 43(inFM0) + 1244: 36 MatrixTimesScalar 1243 1242 + Store 1241(r7) 1244 + 1246: 36 Load 43(inFM0) + 1247: 36 Load 44(inFM1) + 1248: 36 MatrixTimesMatrix 1246 1247 + Store 1245(r8) 1248 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out new file mode 100644 index 00000000..3a6becfa --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -0,0 +1,134 @@ +hlsl.intrinsics.lit.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) +0:2 Function Parameters: +0:2 'n_dot_l' (in float) +0:2 'n_dot_h' (in float) +0:2 'm' (in float) +0:? Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:3 'r0' (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) +0:3 Constant: +0:3 1.000000 +0:3 max (temp float) +0:3 'n_dot_l' (in float) +0:3 Constant: +0:3 0.000000 +0:3 Test condition and select (temp float) +0:3 Condition +0:3 Compare Less Than (temp bool) +0:3 min (temp float) +0:3 'n_dot_l' (in float) +0:3 'n_dot_h' (in float) +0:3 Constant: +0:3 0.000000 +0:3 true case +0:3 Constant: +0:3 0.000000 +0:3 false case +0:3 component-wise multiply (temp float) +0:3 'n_dot_h' (in float) +0:3 'm' (in float) +0:3 Constant: +0:3 1.000000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) +0:2 Function Parameters: +0:2 'n_dot_l' (in float) +0:2 'n_dot_h' (in float) +0:2 'm' (in float) +0:? Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:3 'r0' (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) +0:3 Constant: +0:3 1.000000 +0:3 max (temp float) +0:3 'n_dot_l' (in float) +0:3 Constant: +0:3 0.000000 +0:3 Test condition and select (temp float) +0:3 Condition +0:3 Compare Less Than (temp bool) +0:3 min (temp float) +0:3 'n_dot_l' (in float) +0:3 'n_dot_h' (in float) +0:3 Constant: +0:3 0.000000 +0:3 true case +0:3 Constant: +0:3 0.000000 +0:3 false case +0:3 component-wise multiply (temp float) +0:3 'n_dot_h' (in float) +0:3 'm' (in float) +0:3 Constant: +0:3 1.000000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 33 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 12 19 28 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 9 "r0" + Name 12 "n_dot_l" + Name 19 "n_dot_h" + Name 28 "m" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: TypePointer Input 6(float) + 12(n_dot_l): 11(ptr) Variable Input + 14: 6(float) Constant 0 + 16: TypePointer Function 6(float) + 19(n_dot_h): 11(ptr) Variable Input + 22: TypeBool + 28(m): 11(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 9(r0): 8(ptr) Variable Function + 17: 16(ptr) Variable Function + 13: 6(float) Load 12(n_dot_l) + 15: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 13 14 + 18: 6(float) Load 12(n_dot_l) + 20: 6(float) Load 19(n_dot_h) + 21: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 18 20 + 23: 22(bool) FOrdLessThan 21 14 + SelectionMerge 25 None + BranchConditional 23 24 26 + 24: Label + Store 17 14 + Branch 25 + 26: Label + 27: 6(float) Load 19(n_dot_h) + 29: 6(float) Load 28(m) + 30: 6(float) FMul 27 29 + Store 17 30 + Branch 25 + 25: Label + 31: 6(float) Load 17 + 32: 7(fvec4) CompositeConstruct 10 15 31 10 + Store 9(r0) 32 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index 23e4b245..b24ef698 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -1,4 +1,6 @@ hlsl.intrinsics.negative.vert +ERROR: 0:18: 'AllMemoryBarrier' : no matching overloaded function found +ERROR: 0:19: 'AllMemoryBarrierWithGroupSync' : no matching overloaded function found ERROR: 0:20: 'asdouble' : no matching overloaded function found ERROR: 0:21: 'CheckAccessFullyMapped' : no matching overloaded function found ERROR: 0:22: 'CheckAccessFullyMapped' : no matching overloaded function found @@ -6,6 +8,8 @@ ERROR: 0:23: 'clip' : no matching overloaded function found ERROR: 0:24: 'countbits' : no matching overloaded function found ERROR: 0:25: 'cross' : no matching overloaded function found ERROR: 0:26: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:27: 'DeviceMemoryBarrier' : no matching overloaded function found +ERROR: 0:28: 'DeviceMemoryBarrierWithGroupSync' : no matching overloaded function found ERROR: 0:29: 'ddx' : no matching overloaded function found ERROR: 0:30: 'ddx_coarse' : no matching overloaded function found ERROR: 0:31: 'ddx_fine' : no matching overloaded function found @@ -35,6 +39,8 @@ ERROR: 0:54: 'InterlockedOr' : no matching overloaded function found ERROR: 0:55: 'InterlockedOr' : no matching overloaded function found ERROR: 0:56: 'InterlockedXor' : no matching overloaded function found ERROR: 0:57: 'InterlockedXor' : no matching overloaded function found +ERROR: 0:58: 'GroupMemoryBarrier' : no matching overloaded function found +ERROR: 0:59: 'GroupMemoryBarrierWithGroupSync' : no matching overloaded function found ERROR: 0:60: 'length' : no matching overloaded function found ERROR: 0:61: 'msad4' : no matching overloaded function found ERROR: 0:62: 'normalize' : no matching overloaded function found @@ -226,7 +232,7 @@ ERROR: 0:270: 'normalize' : no matching overloaded function found ERROR: 0:270: 'reflect' : no matching overloaded function found ERROR: 0:270: 'refract' : no matching overloaded function found ERROR: 0:270: 'reversebits' : no matching overloaded function found -ERROR: 227 compilation errors. No code generated. +ERROR: 233 compilation errors. No code generated. Shader version: 450 @@ -238,6 +244,10 @@ ERROR: node is still EOpNull! 0:15 'inF2' (in float) 0:15 'inI0' (in int) 0:? Sequence +0:18 Constant: +0:18 0.000000 +0:19 Constant: +0:19 0.000000 0:20 Constant: 0:20 0.000000 0:21 Constant: @@ -252,6 +262,10 @@ ERROR: node is still EOpNull! 0:25 0.000000 0:26 Constant: 0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:28 Constant: +0:28 0.000000 0:29 Constant: 0:29 0.000000 0:30 Constant: @@ -310,6 +324,10 @@ ERROR: node is still EOpNull! 0:56 0.000000 0:57 Constant: 0:57 0.000000 +0:58 Constant: +0:58 0.000000 +0:59 Constant: +0:59 0.000000 0:60 Constant: 0:60 0.000000 0:61 Constant: @@ -821,6 +839,10 @@ ERROR: node is still EOpNull! 0:15 'inF2' (in float) 0:15 'inI0' (in int) 0:? Sequence +0:18 Constant: +0:18 0.000000 +0:19 Constant: +0:19 0.000000 0:20 Constant: 0:20 0.000000 0:21 Constant: @@ -835,6 +857,10 @@ ERROR: node is still EOpNull! 0:25 0.000000 0:26 Constant: 0:26 0.000000 +0:27 Constant: +0:27 0.000000 +0:28 Constant: +0:28 0.000000 0:29 Constant: 0:29 0.000000 0:30 Constant: @@ -893,6 +919,10 @@ ERROR: node is still EOpNull! 0:56 0.000000 0:57 Constant: 0:57 0.000000 +0:58 Constant: +0:58 0.000000 +0:59 Constant: +0:59 0.000000 0:60 Constant: 0:60 0.000000 0:61 Constant: diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index ee99b6b8..d4c9706d 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -530,7 +530,7 @@ Shader version: 450 0:227 dot-product (global float) 0:227 'inF0' (in 4-component vector of float) 0:227 'inF1' (in 4-component vector of float) -0:228 Construct vec4 (temp float) +0:228 Construct vec4 (temp 4-component vector of float) 0:228 Constant: 0:228 1.000000 0:228 component-wise multiply (temp float) @@ -1759,7 +1759,7 @@ Shader version: 450 0:227 dot-product (global float) 0:227 'inF0' (in 4-component vector of float) 0:227 'inF1' (in 4-component vector of float) -0:228 Construct vec4 (temp float) +0:228 Construct vec4 (temp 4-component vector of float) 0:228 Constant: 0:228 1.000000 0:228 component-wise multiply (temp float) @@ -2455,12 +2455,12 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1089 +// Id's are bound by 1090 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" 48 67 73 80 174 192 198 205 321 339 345 352 470 488 494 501 625 639 646 741 755 762 860 874 881 + EntryPoint Vertex 4 "VertexShaderFunction" 48 67 73 80 174 192 198 205 321 339 345 352 470 488 494 501 626 640 647 742 756 763 861 875 882 Source HLSL 450 Name 4 "VertexShaderFunction" Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;" @@ -2503,46 +2503,46 @@ Shader version: 450 Name 488 "inU0" Name 494 "inF1" Name 501 "inF2" - Name 545 "ResType" - Name 625 "inF0" - Name 639 "inF1" - Name 646 "inF2" - Name 677 "ResType" - Name 741 "inF0" - Name 755 "inF1" - Name 762 "inF2" - Name 796 "ResType" - Name 860 "inF0" - Name 874 "inF1" - Name 881 "inF2" - Name 918 "ResType" - Name 981 "r0" - Name 985 "r1" - Name 989 "r2" - Name 993 "r3" - Name 997 "r4" - Name 1001 "r5" - Name 1005 "r6" - Name 1009 "r7" - Name 1013 "r8" - Name 1017 "r0" - Name 1021 "r1" - Name 1025 "r2" - Name 1029 "r3" - Name 1033 "r4" - Name 1037 "r5" - Name 1041 "r6" - Name 1045 "r7" - Name 1049 "r8" - Name 1053 "r0" - Name 1057 "r1" - Name 1061 "r2" - Name 1065 "r3" - Name 1069 "r4" - Name 1073 "r5" - Name 1077 "r6" - Name 1081 "r7" - Name 1085 "r8" + Name 546 "ResType" + Name 626 "inF0" + Name 640 "inF1" + Name 647 "inF2" + Name 678 "ResType" + Name 742 "inF0" + Name 756 "inF1" + Name 763 "inF2" + Name 797 "ResType" + Name 861 "inF0" + Name 875 "inF1" + Name 882 "inF2" + Name 919 "ResType" + Name 982 "r0" + Name 986 "r1" + Name 990 "r2" + Name 994 "r3" + Name 998 "r4" + Name 1002 "r5" + Name 1006 "r6" + Name 1010 "r7" + Name 1014 "r8" + Name 1018 "r0" + Name 1022 "r1" + Name 1026 "r2" + Name 1030 "r3" + Name 1034 "r4" + Name 1038 "r5" + Name 1042 "r6" + Name 1046 "r7" + Name 1050 "r8" + Name 1054 "r0" + Name 1058 "r1" + Name 1062 "r2" + Name 1066 "r3" + Name 1070 "r4" + Name 1074 "r5" + Name 1078 "r6" + Name 1082 "r7" + Name 1086 "r8" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -2618,33 +2618,33 @@ Shader version: 450 494(inF1): 469(ptr) Variable Input 501(inF2): 469(ptr) Variable Input 508: 485(ivec4) ConstantComposite 87 212 359 136 - 545(ResType): TypeStruct 34(fvec4) 482(ivec4) - 550: TypeVector 50(bool) 4 - 585: 64(int) Constant 4 - 586: 485(ivec4) ConstantComposite 282 136 212 585 - 621: 6(float) Constant 1082130432 - 622: 34(fvec4) ConstantComposite 144 280 466 621 - 624: TypePointer Input 10 - 625(inF0): 624(ptr) Variable Input - 639(inF1): 624(ptr) Variable Input - 646(inF2): 624(ptr) Variable Input - 677(ResType): TypeStruct 10 186(ivec2) - 737: 8(fvec2) ConstantComposite 280 280 - 738: 10 ConstantComposite 737 737 - 740: TypePointer Input 23 - 741(inF0): 740(ptr) Variable Input - 755(inF1): 740(ptr) Variable Input - 762(inF2): 740(ptr) Variable Input - 796(ResType): TypeStruct 23 333(ivec3) - 856: 21(fvec3) ConstantComposite 466 466 466 - 857: 23 ConstantComposite 856 856 856 - 859: TypePointer Input 36 - 860(inF0): 859(ptr) Variable Input - 874(inF1): 859(ptr) Variable Input - 881(inF2): 859(ptr) Variable Input - 918(ResType): TypeStruct 36 482(ivec4) - 978: 34(fvec4) ConstantComposite 621 621 621 621 - 979: 36 ConstantComposite 978 978 978 978 + 546(ResType): TypeStruct 34(fvec4) 482(ivec4) + 551: TypeVector 50(bool) 4 + 586: 64(int) Constant 4 + 587: 485(ivec4) ConstantComposite 282 136 212 586 + 622: 6(float) Constant 1082130432 + 623: 34(fvec4) ConstantComposite 144 280 466 622 + 625: TypePointer Input 10 + 626(inF0): 625(ptr) Variable Input + 640(inF1): 625(ptr) Variable Input + 647(inF2): 625(ptr) Variable Input + 678(ResType): TypeStruct 10 186(ivec2) + 738: 8(fvec2) ConstantComposite 280 280 + 739: 10 ConstantComposite 738 738 + 741: TypePointer Input 23 + 742(inF0): 741(ptr) Variable Input + 756(inF1): 741(ptr) Variable Input + 763(inF2): 741(ptr) Variable Input + 797(ResType): TypeStruct 23 333(ivec3) + 857: 21(fvec3) ConstantComposite 466 466 466 + 858: 23 ConstantComposite 857 857 857 + 860: TypePointer Input 36 + 861(inF0): 860(ptr) Variable Input + 875(inF1): 860(ptr) Variable Input + 882(inF2): 860(ptr) Variable Input + 919(ResType): TypeStruct 36 482(ivec4) + 979: 34(fvec4) ConstantComposite 622 622 622 622 + 980: 36 ConstantComposite 979 979 979 979 4(VertexShaderFunction): 2 Function None 3 5: Label 49: 6(float) Load 48(inF0) @@ -2768,51 +2768,51 @@ Shader version: 450 17(inFM0): 11(ptr) FunctionParameter 18(inFM1): 11(ptr) FunctionParameter 20: Label - 981(r0): 7(ptr) Variable Function - 985(r1): 9(ptr) Variable Function - 989(r2): 9(ptr) Variable Function - 993(r3): 7(ptr) Variable Function - 997(r4): 9(ptr) Variable Function - 1001(r5): 9(ptr) Variable Function - 1005(r6): 11(ptr) Variable Function - 1009(r7): 11(ptr) Variable Function - 1013(r8): 11(ptr) Variable Function - 982: 6(float) Load 13(inF0) - 983: 6(float) Load 14(inF1) - 984: 6(float) FMul 982 983 - Store 981(r0) 984 - 986: 8(fvec2) Load 15(inFV0) - 987: 6(float) Load 13(inF0) - 988: 8(fvec2) VectorTimesScalar 986 987 - Store 985(r1) 988 - 990: 6(float) Load 13(inF0) - 991: 8(fvec2) Load 15(inFV0) - 992: 8(fvec2) VectorTimesScalar 991 990 - Store 989(r2) 992 - 994: 8(fvec2) Load 15(inFV0) - 995: 8(fvec2) Load 16(inFV1) - 996: 6(float) Dot 994 995 - Store 993(r3) 996 - 998: 10 Load 17(inFM0) - 999: 8(fvec2) Load 15(inFV0) - 1000: 8(fvec2) MatrixTimesVector 998 999 - Store 997(r4) 1000 - 1002: 8(fvec2) Load 15(inFV0) - 1003: 10 Load 17(inFM0) - 1004: 8(fvec2) VectorTimesMatrix 1002 1003 - Store 1001(r5) 1004 - 1006: 10 Load 17(inFM0) - 1007: 6(float) Load 13(inF0) - 1008: 10 MatrixTimesScalar 1006 1007 - Store 1005(r6) 1008 - 1010: 6(float) Load 13(inF0) - 1011: 10 Load 17(inFM0) - 1012: 10 MatrixTimesScalar 1011 1010 - Store 1009(r7) 1012 - 1014: 10 Load 17(inFM0) - 1015: 10 Load 18(inFM1) - 1016: 10 MatrixTimesMatrix 1014 1015 - Store 1013(r8) 1016 + 982(r0): 7(ptr) Variable Function + 986(r1): 9(ptr) Variable Function + 990(r2): 9(ptr) Variable Function + 994(r3): 7(ptr) Variable Function + 998(r4): 9(ptr) Variable Function + 1002(r5): 9(ptr) Variable Function + 1006(r6): 11(ptr) Variable Function + 1010(r7): 11(ptr) Variable Function + 1014(r8): 11(ptr) Variable Function + 983: 6(float) Load 13(inF0) + 984: 6(float) Load 14(inF1) + 985: 6(float) FMul 983 984 + Store 982(r0) 985 + 987: 8(fvec2) Load 15(inFV0) + 988: 6(float) Load 13(inF0) + 989: 8(fvec2) VectorTimesScalar 987 988 + Store 986(r1) 989 + 991: 6(float) Load 13(inF0) + 992: 8(fvec2) Load 15(inFV0) + 993: 8(fvec2) VectorTimesScalar 992 991 + Store 990(r2) 993 + 995: 8(fvec2) Load 15(inFV0) + 996: 8(fvec2) Load 16(inFV1) + 997: 6(float) Dot 995 996 + Store 994(r3) 997 + 999: 10 Load 17(inFM0) + 1000: 8(fvec2) Load 15(inFV0) + 1001: 8(fvec2) MatrixTimesVector 999 1000 + Store 998(r4) 1001 + 1003: 8(fvec2) Load 15(inFV0) + 1004: 10 Load 17(inFM0) + 1005: 8(fvec2) VectorTimesMatrix 1003 1004 + Store 1002(r5) 1005 + 1007: 10 Load 17(inFM0) + 1008: 6(float) Load 13(inF0) + 1009: 10 MatrixTimesScalar 1007 1008 + Store 1006(r6) 1009 + 1011: 6(float) Load 13(inF0) + 1012: 10 Load 17(inFM0) + 1013: 10 MatrixTimesScalar 1012 1011 + Store 1010(r7) 1013 + 1015: 10 Load 17(inFM0) + 1016: 10 Load 18(inFM1) + 1017: 10 MatrixTimesMatrix 1015 1016 + Store 1014(r8) 1017 Return FunctionEnd 32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 @@ -2823,51 +2823,51 @@ Shader version: 450 30(inFM0): 24(ptr) FunctionParameter 31(inFM1): 24(ptr) FunctionParameter 33: Label - 1017(r0): 7(ptr) Variable Function - 1021(r1): 22(ptr) Variable Function - 1025(r2): 22(ptr) Variable Function - 1029(r3): 7(ptr) Variable Function - 1033(r4): 22(ptr) Variable Function - 1037(r5): 22(ptr) Variable Function - 1041(r6): 24(ptr) Variable Function - 1045(r7): 24(ptr) Variable Function - 1049(r8): 24(ptr) Variable Function - 1018: 6(float) Load 26(inF0) - 1019: 6(float) Load 27(inF1) - 1020: 6(float) FMul 1018 1019 - Store 1017(r0) 1020 - 1022: 21(fvec3) Load 28(inFV0) - 1023: 6(float) Load 26(inF0) - 1024: 21(fvec3) VectorTimesScalar 1022 1023 - Store 1021(r1) 1024 - 1026: 6(float) Load 26(inF0) - 1027: 21(fvec3) Load 28(inFV0) - 1028: 21(fvec3) VectorTimesScalar 1027 1026 - Store 1025(r2) 1028 - 1030: 21(fvec3) Load 28(inFV0) - 1031: 21(fvec3) Load 29(inFV1) - 1032: 6(float) Dot 1030 1031 - Store 1029(r3) 1032 - 1034: 23 Load 30(inFM0) - 1035: 21(fvec3) Load 28(inFV0) - 1036: 21(fvec3) MatrixTimesVector 1034 1035 - Store 1033(r4) 1036 - 1038: 21(fvec3) Load 28(inFV0) - 1039: 23 Load 30(inFM0) - 1040: 21(fvec3) VectorTimesMatrix 1038 1039 - Store 1037(r5) 1040 - 1042: 23 Load 30(inFM0) - 1043: 6(float) Load 26(inF0) - 1044: 23 MatrixTimesScalar 1042 1043 - Store 1041(r6) 1044 - 1046: 6(float) Load 26(inF0) - 1047: 23 Load 30(inFM0) - 1048: 23 MatrixTimesScalar 1047 1046 - Store 1045(r7) 1048 - 1050: 23 Load 30(inFM0) - 1051: 23 Load 31(inFM1) - 1052: 23 MatrixTimesMatrix 1050 1051 - Store 1049(r8) 1052 + 1018(r0): 7(ptr) Variable Function + 1022(r1): 22(ptr) Variable Function + 1026(r2): 22(ptr) Variable Function + 1030(r3): 7(ptr) Variable Function + 1034(r4): 22(ptr) Variable Function + 1038(r5): 22(ptr) Variable Function + 1042(r6): 24(ptr) Variable Function + 1046(r7): 24(ptr) Variable Function + 1050(r8): 24(ptr) Variable Function + 1019: 6(float) Load 26(inF0) + 1020: 6(float) Load 27(inF1) + 1021: 6(float) FMul 1019 1020 + Store 1018(r0) 1021 + 1023: 21(fvec3) Load 28(inFV0) + 1024: 6(float) Load 26(inF0) + 1025: 21(fvec3) VectorTimesScalar 1023 1024 + Store 1022(r1) 1025 + 1027: 6(float) Load 26(inF0) + 1028: 21(fvec3) Load 28(inFV0) + 1029: 21(fvec3) VectorTimesScalar 1028 1027 + Store 1026(r2) 1029 + 1031: 21(fvec3) Load 28(inFV0) + 1032: 21(fvec3) Load 29(inFV1) + 1033: 6(float) Dot 1031 1032 + Store 1030(r3) 1033 + 1035: 23 Load 30(inFM0) + 1036: 21(fvec3) Load 28(inFV0) + 1037: 21(fvec3) MatrixTimesVector 1035 1036 + Store 1034(r4) 1037 + 1039: 21(fvec3) Load 28(inFV0) + 1040: 23 Load 30(inFM0) + 1041: 21(fvec3) VectorTimesMatrix 1039 1040 + Store 1038(r5) 1041 + 1043: 23 Load 30(inFM0) + 1044: 6(float) Load 26(inF0) + 1045: 23 MatrixTimesScalar 1043 1044 + Store 1042(r6) 1045 + 1047: 6(float) Load 26(inF0) + 1048: 23 Load 30(inFM0) + 1049: 23 MatrixTimesScalar 1048 1047 + Store 1046(r7) 1049 + 1051: 23 Load 30(inFM0) + 1052: 23 Load 31(inFM1) + 1053: 23 MatrixTimesMatrix 1051 1052 + Store 1050(r8) 1053 Return FunctionEnd 45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 @@ -2878,50 +2878,50 @@ Shader version: 450 43(inFM0): 37(ptr) FunctionParameter 44(inFM1): 37(ptr) FunctionParameter 46: Label - 1053(r0): 7(ptr) Variable Function - 1057(r1): 35(ptr) Variable Function - 1061(r2): 35(ptr) Variable Function - 1065(r3): 7(ptr) Variable Function - 1069(r4): 35(ptr) Variable Function - 1073(r5): 35(ptr) Variable Function - 1077(r6): 37(ptr) Variable Function - 1081(r7): 37(ptr) Variable Function - 1085(r8): 37(ptr) Variable Function - 1054: 6(float) Load 39(inF0) - 1055: 6(float) Load 40(inF1) - 1056: 6(float) FMul 1054 1055 - Store 1053(r0) 1056 - 1058: 34(fvec4) Load 41(inFV0) - 1059: 6(float) Load 39(inF0) - 1060: 34(fvec4) VectorTimesScalar 1058 1059 - Store 1057(r1) 1060 - 1062: 6(float) Load 39(inF0) - 1063: 34(fvec4) Load 41(inFV0) - 1064: 34(fvec4) VectorTimesScalar 1063 1062 - Store 1061(r2) 1064 - 1066: 34(fvec4) Load 41(inFV0) - 1067: 34(fvec4) Load 42(inFV1) - 1068: 6(float) Dot 1066 1067 - Store 1065(r3) 1068 - 1070: 36 Load 43(inFM0) - 1071: 34(fvec4) Load 41(inFV0) - 1072: 34(fvec4) MatrixTimesVector 1070 1071 - Store 1069(r4) 1072 - 1074: 34(fvec4) Load 41(inFV0) - 1075: 36 Load 43(inFM0) - 1076: 34(fvec4) VectorTimesMatrix 1074 1075 - Store 1073(r5) 1076 - 1078: 36 Load 43(inFM0) - 1079: 6(float) Load 39(inF0) - 1080: 36 MatrixTimesScalar 1078 1079 - Store 1077(r6) 1080 - 1082: 6(float) Load 39(inF0) - 1083: 36 Load 43(inFM0) - 1084: 36 MatrixTimesScalar 1083 1082 - Store 1081(r7) 1084 - 1086: 36 Load 43(inFM0) - 1087: 36 Load 44(inFM1) - 1088: 36 MatrixTimesMatrix 1086 1087 - Store 1085(r8) 1088 + 1054(r0): 7(ptr) Variable Function + 1058(r1): 35(ptr) Variable Function + 1062(r2): 35(ptr) Variable Function + 1066(r3): 7(ptr) Variable Function + 1070(r4): 35(ptr) Variable Function + 1074(r5): 35(ptr) Variable Function + 1078(r6): 37(ptr) Variable Function + 1082(r7): 37(ptr) Variable Function + 1086(r8): 37(ptr) Variable Function + 1055: 6(float) Load 39(inF0) + 1056: 6(float) Load 40(inF1) + 1057: 6(float) FMul 1055 1056 + Store 1054(r0) 1057 + 1059: 34(fvec4) Load 41(inFV0) + 1060: 6(float) Load 39(inF0) + 1061: 34(fvec4) VectorTimesScalar 1059 1060 + Store 1058(r1) 1061 + 1063: 6(float) Load 39(inF0) + 1064: 34(fvec4) Load 41(inFV0) + 1065: 34(fvec4) VectorTimesScalar 1064 1063 + Store 1062(r2) 1065 + 1067: 34(fvec4) Load 41(inFV0) + 1068: 34(fvec4) Load 42(inFV1) + 1069: 6(float) Dot 1067 1068 + Store 1066(r3) 1069 + 1071: 36 Load 43(inFM0) + 1072: 34(fvec4) Load 41(inFV0) + 1073: 34(fvec4) MatrixTimesVector 1071 1072 + Store 1070(r4) 1073 + 1075: 34(fvec4) Load 41(inFV0) + 1076: 36 Load 43(inFM0) + 1077: 34(fvec4) VectorTimesMatrix 1075 1076 + Store 1074(r5) 1077 + 1079: 36 Load 43(inFM0) + 1080: 6(float) Load 39(inF0) + 1081: 36 MatrixTimesScalar 1079 1080 + Store 1078(r6) 1081 + 1083: 6(float) Load 39(inF0) + 1084: 36 Load 43(inFM0) + 1085: 36 MatrixTimesScalar 1084 1083 + Store 1082(r7) 1085 + 1087: 36 Load 43(inFM0) + 1088: 36 Load 44(inFM1) + 1089: 36 MatrixTimesMatrix 1087 1088 + Store 1086(r8) 1089 Return FunctionEnd diff --git a/Test/hlsl.intrinsics.barriers.comp b/Test/hlsl.intrinsics.barriers.comp new file mode 100644 index 00000000..c9f6a8d7 --- /dev/null +++ b/Test/hlsl.intrinsics.barriers.comp @@ -0,0 +1,13 @@ + +float ComputeShaderFunction() +{ + AllMemoryBarrier(); + AllMemoryBarrierWithGroupSync(); + DeviceMemoryBarrier(); + DeviceMemoryBarrierWithGroupSync(); + GroupMemoryBarrier(); + GroupMemoryBarrierWithGroupSync(); + + return 0.0; +} + diff --git a/Test/hlsl.intrinsics.evalfns.frag b/Test/hlsl.intrinsics.evalfns.frag new file mode 100644 index 00000000..96387068 --- /dev/null +++ b/Test/hlsl.intrinsics.evalfns.frag @@ -0,0 +1,10 @@ + +void main(float inF1, float2 inF2, float3 inF3, float4 inF4, int2 inI2) : COLOR +{ + EvaluateAttributeSnapped(inF1, int2(8,15)); + EvaluateAttributeSnapped(inF2, int2(0,1)); + EvaluateAttributeSnapped(inF3, int2(3,10)); + EvaluateAttributeSnapped(inF4, int2(7,8)); + + EvaluateAttributeSnapped(inF1, inI2); +} diff --git a/Test/hlsl.intrinsics.f1632.frag b/Test/hlsl.intrinsics.f1632.frag new file mode 100644 index 00000000..4a68a67d --- /dev/null +++ b/Test/hlsl.intrinsics.f1632.frag @@ -0,0 +1,34 @@ +float PixelShaderFunction(float inF0) +{ + f32tof16(inF0); + + return 0.0; +} + +float1 PixelShaderFunction(float1 inF0) +{ + // TODO: ... add when float1 prototypes are generated + return 0.0; +} + +float2 PixelShaderFunction(float2 inF0) +{ + f32tof16(inF0); + + return float2(1,2); +} + +float3 PixelShaderFunction(float3 inF0) +{ + f32tof16(inF0); + + return float3(1,2,3); +} + +float4 PixelShaderFunction(float4 inF0) +{ + f32tof16(inF0); + + return float4(1,2,3,4); +} + diff --git a/Test/hlsl.intrinsics.lit.frag b/Test/hlsl.intrinsics.lit.frag new file mode 100644 index 00000000..bf4069a8 --- /dev/null +++ b/Test/hlsl.intrinsics.lit.frag @@ -0,0 +1,4 @@ +void PixelShaderFunction(float n_dot_l, float n_dot_h, float m) +{ + float4 r0 = lit(n_dot_l, n_dot_h, m); +} diff --git a/Test/hlsl.intrinsics.negative.vert b/Test/hlsl.intrinsics.negative.vert index c37d8bc6..e716c688 100644 --- a/Test/hlsl.intrinsics.negative.vert +++ b/Test/hlsl.intrinsics.negative.vert @@ -15,8 +15,8 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) { uint out_u1; - // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list - // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list + AllMemoryBarrier(); // expected error: only valid in compute stage + AllMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage asdouble(inF0, inF1); // expected error: only integer inputs CheckAccessFullyMapped(3.0); // expected error: only valid on integers CheckAccessFullyMapped(3); // expected error: only valid in pixel & compute stages @@ -24,8 +24,8 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) countbits(inF0); // expected error: only integer inputs cross(inF0, inF1); // expected error: only on float3 inputs D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs - // DeviceMemoryBarrier(); // TODO: expected error: only valid in pixel & compute stages - // DeviceMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage + DeviceMemoryBarrier(); // expected error: only valid in pixel & compute stages + DeviceMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage ddx(inF0); // expected error: only valid in pixel stage ddx_coarse(inF0); // expected error: only valid in pixel stage ddx_fine(inF0); // expected error: only valid in pixel stage @@ -55,8 +55,8 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage - // GroupMemoryBarrier(); // TODO: expected error: only valid in compute stage - // GroupMemoryBarrierWithGroupSync(); // TODO: expected error: only valid in compute stage + GroupMemoryBarrier(); // expected error: only valid in compute stage + GroupMemoryBarrierWithGroupSync(); // expected error: only valid in compute stage length(inF0); // expect error: invalid on scalars msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs normalize(inF0); // expect error: invalid on scalars diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 95363d55..1dee257f 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -515,7 +515,14 @@ enum TOperator { EOpInterlockedMin, // ... EOpInterlockedOr, // ... EOpInterlockedXor, // ... - + EOpAllMemoryBarrierWithGroupSync, // memory barriers without non-hlsl AST equivalents + EOpGroupMemoryBarrierWithGroupSync, // ... + EOpWorkgroupMemoryBarrier, // ... + EOpWorkgroupMemoryBarrierWithGroupSync, // ... + EOpEvaluateAttributeSnapped, // InterpolateAtOffset with int position on 16x16 grid + EOpF32tof16, // HLSL conversion: half of a PackHalf2x16 + EOpF16tof32, // HLSL conversion: half of an UnpackHalf2x16 + EOpLit, // HLSL lighting coefficient vector }; class TIntermTraverser; diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index a5a6f2ce..03519bc9 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -543,6 +543,11 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpSinCos: out.debug << "sincos"; break; case EOpGenMul: out.debug << "mul"; break; + case EOpAllMemoryBarrierWithGroupSync: out.debug << "AllMemoryBarrierWithGroupSync"; break; + case EOpGroupMemoryBarrierWithGroupSync: out.debug << "GroupMemoryBarrierWithGroupSync"; break; + case EOpWorkgroupMemoryBarrier: out.debug << "WorkgroupMemoryBarrier"; break; + case EOpWorkgroupMemoryBarrierWithGroupSync: out.debug << "WorkgroupMemoryBarrierWithGroupSync"; break; + default: out.debug.message(EPrefixError, "Bad aggregation op"); } diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 22f48d76..51be6f71 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -81,8 +81,12 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, {"hlsl.if.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.comp", "ComputeShaderFunction"}, + {"hlsl.intrinsics.evalfns.frag", "main"}, + {"hlsl.intrinsics.f1632.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.frag", "PixelShaderFunction"}, + {"hlsl.intrinsics.lit.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 4d463149..228ac4ff 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -967,6 +967,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& dst->getSequence().push_back(handleBinaryMath(loc, "mul", EOpMul, src0y, src1y)); dst->getSequence().push_back(src0z); dst->getSequence().push_back(src1w); + dst->setType(TType(EbtFloat, EvqTemporary, 4)); dst->setLoc(loc); node = dst; @@ -1028,6 +1029,90 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& break; } + case EOpEvaluateAttributeSnapped: + { + // SPIR-V InterpolateAtOffset uses float vec2 offset in pixels + // HLSL uses int2 offset on a 16x16 grid in [-8..7] on x & y: + // iU = (iU<<28)>>28 + // fU = ((float)iU)/16 + // Targets might handle this natively, in which case they can disable + // decompositions. + + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // value + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // offset + + TIntermTyped* i28 = intermediate.addConstantUnion(28, loc, true); + TIntermTyped* iU = handleBinaryMath(loc, ">>", EOpRightShift, + handleBinaryMath(loc, "<<", EOpLeftShift, arg1, i28), + i28); + + TIntermTyped* recip16 = intermediate.addConstantUnion((1.0/16.0), EbtFloat, loc, true); + TIntermTyped* floatOffset = handleBinaryMath(loc, "mul", EOpMul, + intermediate.addConversion(EOpConstructFloat, + TType(EbtFloat, EvqTemporary, 2), iU), + recip16); + + TIntermAggregate* interp = new TIntermAggregate(EOpInterpolateAtOffset); + interp->getSequence().push_back(arg0); + interp->getSequence().push_back(floatOffset); + interp->setLoc(loc); + interp->setType(arg0->getType()); + interp->getWritableType().getQualifier().makeTemporary(); + + node = interp; + + break; + } + + case EOpLit: + { + TIntermTyped* n_dot_l = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* n_dot_h = argAggregate->getSequence()[1]->getAsTyped(); + TIntermTyped* m = argAggregate->getSequence()[2]->getAsTyped(); + + TIntermAggregate* dst = new TIntermAggregate(EOpConstructVec4); + + // Ambient + dst->getSequence().push_back(intermediate.addConstantUnion(1.0, EbtFloat, loc, true)); + + // Diffuse: + TIntermTyped* zero = intermediate.addConstantUnion(0.0, EbtFloat, loc, true); + TIntermAggregate* diffuse = new TIntermAggregate(EOpMax); + diffuse->getSequence().push_back(n_dot_l); + diffuse->getSequence().push_back(zero); + diffuse->setLoc(loc); + diffuse->setType(TType(EbtFloat)); + dst->getSequence().push_back(diffuse); + + // Specular: + TIntermAggregate* min_ndot = new TIntermAggregate(EOpMin); + min_ndot->getSequence().push_back(n_dot_l); + min_ndot->getSequence().push_back(n_dot_h); + min_ndot->setLoc(loc); + min_ndot->setType(TType(EbtFloat)); + + TIntermTyped* compare = handleBinaryMath(loc, "<", EOpLessThan, min_ndot, zero); + TIntermTyped* n_dot_h_m = handleBinaryMath(loc, "mul", EOpMul, n_dot_h, m); // n_dot_h * m + + dst->getSequence().push_back(intermediate.addSelection(compare, zero, n_dot_h_m, loc)); + + // One: + dst->getSequence().push_back(intermediate.addConstantUnion(1.0, EbtFloat, loc, true)); + + dst->setLoc(loc); + dst->setType(TType(EbtFloat, EvqTemporary, 4)); + node = dst; + break; + } + + case EOpF16tof32: + case EOpF32tof16: + { + // Temporary until decomposition is available. + error(loc, "unimplemented intrinsic: handle natively", "f32tof16", ""); + break; + } + default: break; // most pass through unchanged } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 1137bebb..cf8574ca 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -283,7 +283,7 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const Spv // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask }, { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask }, - { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,F", EShLangFragmentMask }, + { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask }, { "exp", nullptr, nullptr, "SVM", "F", EShLangAll }, { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll }, { "f16tof32", nullptr, "F", "SV", "U", EShLangAll }, @@ -519,8 +519,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con symbolTable.relateToOperator("abs", EOpAbs); symbolTable.relateToOperator("acos", EOpAcos); symbolTable.relateToOperator("all", EOpAll); - // symbolTable.relateToOperator("AllMemoryBarrier"); - // symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync"); + symbolTable.relateToOperator("AllMemoryBarrier", EOpMemoryBarrier); + symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync", EOpAllMemoryBarrierWithGroupSync); symbolTable.relateToOperator("any", EOpAny); symbolTable.relateToOperator("asdouble", EOpUint64BitsToDouble); symbolTable.relateToOperator("asfloat", EOpIntBitsToFloat); @@ -546,19 +546,19 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con symbolTable.relateToOperator("ddy_fine", EOpDPdyFine); symbolTable.relateToOperator("degrees", EOpDegrees); symbolTable.relateToOperator("determinant", EOpDeterminant); - // symbolTable.relateToOperator("DeviceMemoryBarrier"); - // symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync"); + symbolTable.relateToOperator("DeviceMemoryBarrier", EOpGroupMemoryBarrier); // == ScopeDevice+CrossWorkGroup + symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync", EOpGroupMemoryBarrierWithGroupSync); // ... symbolTable.relateToOperator("distance", EOpDistance); symbolTable.relateToOperator("dot", EOpDot); symbolTable.relateToOperator("dst", EOpDst); - // symbolTable.relateToOperator("errorf"); + // symbolTable.relateToOperator("errorf", EOpErrorf); symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid); symbolTable.relateToOperator("EvaluateAttributeAtSample", EOpInterpolateAtSample); - // symbolTable.relateToOperator("EvaluateAttributeSnapped"); // TODO: hsnflr positions. new op? + symbolTable.relateToOperator("EvaluateAttributeSnapped", EOpEvaluateAttributeSnapped); symbolTable.relateToOperator("exp", EOpExp); symbolTable.relateToOperator("exp2", EOpExp2); - // symbolTable.relateToOperator("f16tof32"); - // symbolTable.relateToOperator("f32tof16"); + symbolTable.relateToOperator("f16tof32", EOpF16tof32); + symbolTable.relateToOperator("f32tof16", EOpF32tof16); symbolTable.relateToOperator("faceforward", EOpFaceForward); symbolTable.relateToOperator("firstbithigh", EOpFindMSB); symbolTable.relateToOperator("firstbitlow", EOpFindLSB); @@ -570,8 +570,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con symbolTable.relateToOperator("fwidth", EOpFwidth); // symbolTable.relateToOperator("GetRenderTargetSampleCount"); // symbolTable.relateToOperator("GetRenderTargetSamplePosition"); - // symbolTable.relateToOperator("GroupMemoryBarrier"); - // symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync"); + symbolTable.relateToOperator("GroupMemoryBarrier", EOpWorkgroupMemoryBarrier); + symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync", EOpWorkgroupMemoryBarrierWithGroupSync); symbolTable.relateToOperator("InterlockedAdd", EOpInterlockedAdd); symbolTable.relateToOperator("InterlockedAnd", EOpInterlockedAnd); symbolTable.relateToOperator("InterlockedCompareExchange", EOpInterlockedCompareExchange); @@ -586,7 +586,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con symbolTable.relateToOperator("isnan", EOpIsNan); symbolTable.relateToOperator("ldexp", EOpLdexp); symbolTable.relateToOperator("length", EOpLength); - // symbolTable.relateToOperator("lit"); + symbolTable.relateToOperator("lit", EOpLit); symbolTable.relateToOperator("log", EOpLog); symbolTable.relateToOperator("log10", EOpLog10); symbolTable.relateToOperator("log2", EOpLog2); @@ -599,7 +599,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con // symbolTable.relateToOperator("noise", EOpNoise); // TODO: check return type symbolTable.relateToOperator("normalize", EOpNormalize); symbolTable.relateToOperator("pow", EOpPow); - // symbolTable.relateToOperator("printf"); + // symbolTable.relateToOperator("printf", EOpPrintf); // symbolTable.relateToOperator("Process2DQuadTessFactorsAvg"); // symbolTable.relateToOperator("Process2DQuadTessFactorsMax"); // symbolTable.relateToOperator("Process2DQuadTessFactorsMin");